Skip to content

Mismatching dimensions when predicting with multitask models #26

Closed
@ivyleavedtoadflax

Description

@ivyleavedtoadflax

This issue occurs in #25. When running predict via the split_parse command, the following error results:

(virtualenv)  $ python -m deep_reference_parser split_parse "Upson MA (2019). This is a reference. In a journal. 16(1) 1-23"
Using TensorFlow backend.
ℹ Using config file:
/home/matthew/Documents/wellcome/deep_reference_parser/deep_reference_parser/configs/2020.3.18_multitask.ini
ℹ Attempting to download model artefacts if they are not found locally
in models/multitask/2020.3.18_multitask/. This may take some time...
✔ Found models/multitask/2020.3.18_multitask/indices.pickle
✔ Found models/multitask/2020.3.18_multitask/weights.h5
✔ Found embeddings/2020.1.1-wellcome-embeddings-300.txt
Traceback (most recent call last):
  File "/home/matthew/Documents/wellcome/deep_reference_parser/build/virtualenv/lib/python3.7/site-packages/tensorflow_core/python/framework/ops.py", line 1607, in _create_c_op
    c_op = c_api.TF_FinishOperation(op_desc)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Dimension 0 in both shapes must be equal, but are 347 and 324. Shapes are [347,100] and [324,100]. for 'Assign' (op: 'Assign') with input shapes: [347,100], [324,100].

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/matthew/.pyenv/versions/3.7.2/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/matthew/.pyenv/versions/3.7.2/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/matthew/Documents/wellcome/deep_reference_parser/deep_reference_parser/__main__.py", line 30, in <module>
    plac.call(commands[command], sys.argv[1:])
  File "/home/matthew/Documents/wellcome/deep_reference_parser/build/virtualenv/lib/python3.7/site-packages/plac_core.py", line 328, in call
    cmd, result = parser.consume(arglist)
  File "/home/matthew/Documents/wellcome/deep_reference_parser/build/virtualenv/lib/python3.7/site-packages/plac_core.py", line 207, in consume
    return cmd, self.func(*(args + varargs + extraopts), **kwargs)
  File "/home/matthew/Documents/wellcome/deep_reference_parser/deep_reference_parser/split_parse.py", line 198, in split_parse
    out = mt.split_parse(text, return_tokens=tokens, verbose=True)
  File "/home/matthew/Documents/wellcome/deep_reference_parser/deep_reference_parser/split_parse.py", line 116, in split_parse
    preds = self.drp.predict(tokens, load_weights=True)
  File "/home/matthew/Documents/wellcome/deep_reference_parser/deep_reference_parser/deep_reference_parser.py", line 1026, in predict
    self.load_weights()
  File "/home/matthew/Documents/wellcome/deep_reference_parser/deep_reference_parser/deep_reference_parser.py", line 997, in load_weights
    self.model, self.weights_path, include_optimizer=False
  File "/home/matthew/Documents/wellcome/deep_reference_parser/build/virtualenv/lib/python3.7/site-packages/keras_contrib/utils/save_load_utils.py", line 97, in load_all_weights
    saving.load_weights_from_hdf5_group(f['model_weights'], model.layers)
  File "/home/matthew/Documents/wellcome/deep_reference_parser/build/virtualenv/lib/python3.7/site-packages/keras/engine/saving.py", line 1199, in load_weights_from_hdf5_group
    K.batch_set_value(weight_value_tuples)
  File "/home/matthew/Documents/wellcome/deep_reference_parser/build/virtualenv/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py", line 2727, in batch_set_value
    assign_op = x.assign(assign_placeholder)
  File "/home/matthew/Documents/wellcome/deep_reference_parser/build/virtualenv/lib/python3.7/site-packages/tensorflow_core/python/ops/variables.py", line 2067, in assign
    self._variable, value, use_locking=use_locking, name=name)
  File "/home/matthew/Documents/wellcome/deep_reference_parser/build/virtualenv/lib/python3.7/site-packages/tensorflow_core/python/ops/state_ops.py", line 227, in assign
    validate_shape=validate_shape)
  File "/home/matthew/Documents/wellcome/deep_reference_parser/build/virtualenv/lib/python3.7/site-packages/tensorflow_core/python/ops/gen_state_ops.py", line 66, in assign
    use_locking=use_locking, name=name)
  File "/home/matthew/Documents/wellcome/deep_reference_parser/build/virtualenv/lib/python3.7/site-packages/tensorflow_core/python/framework/op_def_library.py", line 794, in _apply_op_helper
    op_def=op_def)
  File "/home/matthew/Documents/wellcome/deep_reference_parser/build/virtualenv/lib/python3.7/site-packages/tensorflow_core/python/util/deprecation.py", line 507, in new_func
    return func(*args, **kwargs)
  File "/home/matthew/Documents/wellcome/deep_reference_parser/build/virtualenv/lib/python3.7/site-packages/tensorflow_core/python/framework/ops.py", line 3357, in create_op
    attrs, op_def, compute_device)
  File "/home/matthew/Documents/wellcome/deep_reference_parser/build/virtualenv/lib/python3.7/site-packages/tensorflow_core/python/framework/ops.py", line 3426, in _create_op_internal
    op_def=op_def)
  File "/home/matthew/Documents/wellcome/deep_reference_parser/build/virtualenv/lib/python3.7/site-packages/tensorflow_core/python/framework/ops.py", line 1770, in __init__
    control_input_ops)
  File "/home/matthew/Documents/wellcome/deep_reference_parser/build/virtualenv/lib/python3.7/site-packages/tensorflow_core/python/framework/ops.py", line 1610, in _create_c_op
    raise ValueError(str(e))
ValueError: Dimension 0 in both shapes must be equal, but are 347 and 324. Shapes are [347,100] and [324,100]. for 'Assign' (op: 'Assign') with input shapes: [347,100], [324,100].

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions