mirror of
				https://github.com/explosion/spaCy.git
				synced 2025-10-31 07:57:35 +03:00 
			
		
		
		
	Remove cupy imports from parser, so it can work on CPU
This commit is contained in:
		
							parent
							
								
									613ba79e2e
								
							
						
					
					
						commit
						f8c02b4341
					
				|  | @ -6,9 +6,6 @@ from __future__ import unicode_literals, print_function | |||
| from collections import Counter | ||||
| import ujson | ||||
| 
 | ||||
| from cupy.cuda.stream import Stream | ||||
| import cupy | ||||
| 
 | ||||
| from libc.math cimport exp | ||||
| cimport cython | ||||
| cimport cython.parallel | ||||
|  | @ -36,7 +33,9 @@ from thinc.api import layerize, chain | |||
| from thinc.neural import BatchNorm, Model, Affine, ELU, ReLu, Maxout | ||||
| from thinc.neural.ops import NumpyOps | ||||
| 
 | ||||
| from ..util import get_cuda_stream | ||||
| from .._ml import zero_init, PrecomputableAffine, PrecomputableMaxouts | ||||
| 
 | ||||
| from . import _parse_features | ||||
| from ._parse_features cimport CONTEXT_SIZE | ||||
| from ._parse_features cimport fill_context | ||||
|  | @ -380,7 +379,7 @@ cdef class Parser: | |||
|             np.ndarray py_scores | ||||
|             int[500] is_valid # Hacks for now | ||||
| 
 | ||||
|         cuda_stream = Stream() | ||||
|         cuda_stream = get_cuda_stream() | ||||
|         docs, tokvecs = docs_tokvecs | ||||
|         lower_model = get_greedy_model_for_batch(len(docs), tokvecs, self.feature_maps, | ||||
|                                                  cuda_stream) | ||||
|  | @ -419,7 +418,7 @@ cdef class Parser: | |||
|             np.ndarray scores | ||||
| 
 | ||||
|         docs, tokvecs = docs_tokvecs | ||||
|         cuda_stream = Stream() | ||||
|         cuda_stream = get_cuda_stream() | ||||
|         lower_model = get_greedy_model_for_batch(len(docs), | ||||
|                         tokvecs, self.feature_maps, cuda_stream=cuda_stream, | ||||
|                         drop=drop) | ||||
|  | @ -445,6 +444,7 @@ cdef class Parser: | |||
|         loss = 0. | ||||
|         total = 1e-4 | ||||
|         follow_gold = False | ||||
|         cupy = self.feature_maps.ops.xp | ||||
|         while len(todo) >= 4: | ||||
|             states, offsets, golds = zip(*todo) | ||||
| 
 | ||||
|  |  | |||
|  | @ -47,6 +47,16 @@ def ensure_path(path): | |||
|         return path | ||||
| 
 | ||||
| 
 | ||||
| def get_cuda_stream(require=False): | ||||
|     # TODO: Error and tell to install chainer if not found | ||||
|     # Requires GPU | ||||
|     try: | ||||
|         from cupy.cuda.stream import Stream | ||||
|     except ImportError: | ||||
|         return None | ||||
|     return Stream() | ||||
| 
 | ||||
| 
 | ||||
| def read_regex(path): | ||||
|     path = ensure_path(path) | ||||
|     with path.open() as file_: | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user