1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
{{py:
"""
Dataset abstractions for sequential data access.
Template file for easily generate fused types consistent code using Tempita
(https://github.com/cython/cython/blob/master/Cython/Tempita/_tempita.py).
Generated file: _seq_dataset.pxd
Each class is duplicated for all dtypes (float and double). The keywords
between double braces are substituted in setup.py.
"""
# name_suffix, c_type
dtypes = [('64', 'double'),
('32', 'float')]
}}
{{for name_suffix, c_type in dtypes}}
#------------------------------------------------------------------------------
"""
Dataset abstractions for sequential data access.
WARNING: Do not edit .pxd file directly, it is generated from .pxd.tp
"""
cimport numpy as cnp
# SequentialDataset and its two concrete subclasses are (optionally randomized)
# iterators over the rows of a matrix X and corresponding target values y.
cdef class SequentialDataset{{name_suffix}}:
cdef int current_index
cdef cnp.ndarray index
cdef int *index_data_ptr
cdef Py_ssize_t n_samples
cdef cnp.uint32_t seed
cdef void shuffle(self, cnp.uint32_t seed) nogil
cdef int _get_next_index(self) nogil
cdef int _get_random_index(self) nogil
cdef void _sample(self, {{c_type}} **x_data_ptr, int **x_ind_ptr,
int *nnz, {{c_type}} *y, {{c_type}} *sample_weight,
int current_index) nogil
cdef void next(self, {{c_type}} **x_data_ptr, int **x_ind_ptr,
int *nnz, {{c_type}} *y, {{c_type}} *sample_weight) nogil
cdef int random(self, {{c_type}} **x_data_ptr, int **x_ind_ptr,
int *nnz, {{c_type}} *y, {{c_type}} *sample_weight) nogil
cdef class ArrayDataset{{name_suffix}}(SequentialDataset{{name_suffix}}):
cdef cnp.ndarray X
cdef cnp.ndarray Y
cdef cnp.ndarray sample_weights
cdef Py_ssize_t n_features
cdef cnp.npy_intp X_stride
cdef {{c_type}} *X_data_ptr
cdef {{c_type}} *Y_data_ptr
cdef cnp.ndarray feature_indices
cdef int *feature_indices_ptr
cdef {{c_type}} *sample_weight_data
cdef class CSRDataset{{name_suffix}}(SequentialDataset{{name_suffix}}):
cdef cnp.ndarray X_data
cdef cnp.ndarray X_indptr
cdef cnp.ndarray X_indices
cdef cnp.ndarray Y
cdef cnp.ndarray sample_weights
cdef {{c_type}} *X_data_ptr
cdef int *X_indptr_ptr
cdef int *X_indices_ptr
cdef {{c_type}} *Y_data_ptr
cdef {{c_type}} *sample_weight_data
{{endfor}}
|