mirror of
				https://github.com/explosion/spaCy.git
				synced 2025-10-31 16:07:41 +03:00 
			
		
		
		
	* Free pointers in ActivationsC * Restructure alloc/free for parser activations * Rewrite/restructure to have allocation and free in parallel functions in `_parser_model` rather than partially in `_parseC()` in `Parser`. * Remove `resize_activations` from `_parser_model.pxd`.
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Cython
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Cython
		
	
	
	
	
	
| from libc.string cimport memset, memcpy
 | |
| from libc.stdlib cimport calloc, free, realloc
 | |
| from thinc.typedefs cimport weight_t, class_t, hash_t
 | |
| 
 | |
| from ._state cimport StateC
 | |
| 
 | |
| 
 | |
| cdef struct SizesC:
 | |
|     int states
 | |
|     int classes
 | |
|     int hiddens
 | |
|     int pieces
 | |
|     int feats
 | |
|     int embed_width
 | |
| 
 | |
| 
 | |
| cdef struct WeightsC:
 | |
|     const float* feat_weights
 | |
|     const float* feat_bias
 | |
|     const float* hidden_bias
 | |
|     const float* hidden_weights
 | |
|     const float* seen_classes
 | |
| 
 | |
| 
 | |
| cdef struct ActivationsC:
 | |
|     int* token_ids
 | |
|     float* unmaxed
 | |
|     float* scores
 | |
|     float* hiddens
 | |
|     int* is_valid
 | |
|     int _curr_size
 | |
|     int _max_size
 | |
| 
 | |
| 
 | |
| cdef WeightsC get_c_weights(model) except *
 | |
| 
 | |
| cdef SizesC get_c_sizes(model, int batch_size) except *
 | |
| 
 | |
| cdef ActivationsC alloc_activations(SizesC n) nogil
 | |
| 
 | |
| cdef void free_activations(const ActivationsC* A) nogil
 | |
| 
 | |
| cdef void predict_states(ActivationsC* A, StateC** states,
 | |
|         const WeightsC* W, SizesC n) nogil
 | |
|  
 | |
| cdef int arg_max_if_valid(const weight_t* scores, const int* is_valid, int n) nogil
 | |
| 
 | |
| cdef void cpu_log_loss(float* d_scores,
 | |
|         const float* costs, const int* is_valid, const float* scores, int O) nogil
 | |
|  
 |