Simple-QA-EMNLP-2018
Simple-QA-EMNLP-2018 copied to clipboard
TypeError: ArrayField.empty_field: return type `None` is not a `allennlp.data.fields.field.Field`.
When I ran the third code cell in notebooks/Simple QA End-To-End/Step 1 - Predict Subject Name.ipynb, I got the following error.
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-3-ab905cab6d01> in <module>
1 import importlib
2 import lib.import_notebook
----> 3 from allennlp.models.archival import load_archive
4 from allennlp.service.predictors import Predictor
5
~/anaconda3/envs/emnlp/lib/python3.6/site-packages/allennlp/models/__init__.py in <module>
4 """
5
----> 6 from allennlp.models.archival import archive_model, load_archive
7 from allennlp.models.crf_tagger import CrfTagger
8 from allennlp.models.decomposable_attention import DecomposableAttention
~/anaconda3/envs/emnlp/lib/python3.6/site-packages/allennlp/models/archival.py in <module>
15 from allennlp.common import Params
16 from allennlp.common.file_utils import cached_path
---> 17 from allennlp.models.model import Model, _DEFAULT_WEIGHTS
18
19 logger = logging.getLogger(__name__) # pylint: disable=invalid-name
~/anaconda3/envs/emnlp/lib/python3.6/site-packages/allennlp/models/model.py in <module>
13 from allennlp.common.params import Params
14 from allennlp.common.registrable import Registrable
---> 15 from allennlp.data import Instance, Vocabulary, Dataset
16 from allennlp.nn import util
17 from allennlp.nn.regularizers import RegularizerApplicator
~/anaconda3/envs/emnlp/lib/python3.6/site-packages/allennlp/data/__init__.py in <module>
----> 1 from allennlp.data.dataset import Dataset
2 from allennlp.data.dataset_readers.dataset_reader import DatasetReader
3 from allennlp.data.fields.field import DataArray, Field
4 from allennlp.data.instance import Instance
5 from allennlp.data.iterators.data_iterator import DataIterator
~/anaconda3/envs/emnlp/lib/python3.6/site-packages/allennlp/data/dataset.py in <module>
11 import tqdm
12
---> 13 from allennlp.data.instance import Instance
14 from allennlp.data.vocabulary import Vocabulary
15 from allennlp.common.checks import ConfigurationError
~/anaconda3/envs/emnlp/lib/python3.6/site-packages/allennlp/data/instance.py in <module>
1 from typing import Dict
2
----> 3 from allennlp.data.fields.field import DataArray, Field
4 from allennlp.data.vocabulary import Vocabulary
5
~/anaconda3/envs/emnlp/lib/python3.6/site-packages/allennlp/data/fields/__init__.py in <module>
5
6 from allennlp.data.fields.field import Field
----> 7 from allennlp.data.fields.array_field import ArrayField
8 from allennlp.data.fields.index_field import IndexField
9 from allennlp.data.fields.label_field import LabelField
~/anaconda3/envs/emnlp/lib/python3.6/site-packages/allennlp/data/fields/array_field.py in <module>
9
10
---> 11 class ArrayField(Field[numpy.ndarray]):
12 """
13 A class representing an array, which could have arbitrary dimensions.
~/anaconda3/envs/emnlp/lib/python3.6/site-packages/allennlp/data/fields/array_field.py in ArrayField()
44 return tensor if cuda_device == -1 else tensor.cuda(cuda_device)
45
---> 46 @overrides
47 def empty_field(self): # pylint: disable=no-self-use
48 return ArrayField(numpy.array([], dtype="float32"))
~/anaconda3/envs/emnlp/lib/python3.6/site-packages/overrides/overrides.py in overrides(method, check_signature, check_at_runtime)
86 """
87 if method is not None:
---> 88 return _overrides(method, check_signature, check_at_runtime)
89 else:
90 return functools.partial(
~/anaconda3/envs/emnlp/lib/python3.6/site-packages/overrides/overrides.py in _overrides(method, check_signature, check_at_runtime)
112 return wrapper # type: ignore
113 else:
--> 114 _validate_method(method, super_class, check_signature)
115 return method
116 raise TypeError(f"{method.__qualname__}: No super class method found")
~/anaconda3/envs/emnlp/lib/python3.6/site-packages/overrides/overrides.py in _validate_method(method, super_class, check_signature)
133 and not isinstance(super_method, property)
134 ):
--> 135 ensure_signature_is_compatible(super_method, method, is_static)
136
137
~/anaconda3/envs/emnlp/lib/python3.6/site-packages/overrides/signature.py in ensure_signature_is_compatible(super_callable, sub_callable, is_static)
91
92 if super_type_hints is not None and sub_type_hints is not None:
---> 93 ensure_return_type_compatibility(super_type_hints, sub_type_hints, method_name)
94 ensure_all_kwargs_defined_in_sub(
95 super_sig, sub_sig, super_type_hints, sub_type_hints, is_static, method_name
~/anaconda3/envs/emnlp/lib/python3.6/site-packages/overrides/signature.py in ensure_return_type_compatibility(super_type_hints, sub_type_hints, method_name)
286 if not _issubtype(sub_return, super_return) and super_return is not None:
287 raise TypeError(
--> 288 f"{method_name}: return type `{sub_return}` is not a `{super_return}`."
289 )
TypeError: ArrayField.empty_field: return type `None` is not a `allennlp.data.fields.field.Field`.
I think it is due to the latest overrides package as discussed in here. If acceptable to you, I would be most grateful if you fix this error.