bmcfee / crema

convolutional and recurrent estimators for music analysis
BSD 2-Clause "Simplified" License
84 stars 22 forks source link

Error loading chord model with Python 3.7 #23

Closed hpx7 closed 5 years ago

hpx7 commented 5 years ago
Traceback (most recent call last):
  File "/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/usr/local/lib/python3.7/site-packages/crema/analyze.py", line 102, in <module>
    main()
  File "/usr/local/lib/python3.7/site-packages/crema/analyze.py", line 88, in main
    jam = analyze(params.filename)
  File "/usr/local/lib/python3.7/site-packages/crema/analyze.py", line 56, in analyze
    _load_models()
  File "/usr/local/lib/python3.7/site-packages/crema/analyze.py", line 98, in _load_models
    __MODELS__.append(models.chord.ChordModel())
  File "/usr/local/lib/python3.7/site-packages/crema/models/chord.py", line 19, in __init__
    self._instantiate('chord')
  File "/usr/local/lib/python3.7/site-packages/crema/models/base.py", line 104, in _instantiate
    self.model = keras.models.model_from_config(spec)
  File "/usr/local/lib/python3.7/site-packages/keras/models.py", line 313, in model_from_config
    return layer_module.deserialize(config, custom_objects=custom_objects)
  File "/usr/local/lib/python3.7/site-packages/keras/layers/__init__.py", line 54, in deserialize
    printable_module_name='layer')
  File "/usr/local/lib/python3.7/site-packages/keras/utils/generic_utils.py", line 139, in deserialize_keras_object
    list(custom_objects.items())))
  File "/usr/local/lib/python3.7/site-packages/keras/engine/topology.py", line 2497, in from_config
    process_node(layer, node_data)
  File "/usr/local/lib/python3.7/site-packages/keras/engine/topology.py", line 2454, in process_node
    layer(input_tensors[0], **kwargs)
  File "/usr/local/lib/python3.7/site-packages/keras/engine/topology.py", line 602, in __call__
    output = self.call(inputs, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/keras/layers/core.py", line 650, in call
    return self.function(inputs, **arguments)
  File "./02-train.py", line 162, in _squeeze
SystemError: unknown opcode
bmcfee commented 5 years ago

Yeah, this is a known problem. It's due to using a lambda function layer inside the convnet, and there's a binary incompatibility between the version it was trained on (python 3.5) and the one you're trying to run on (3.7). I'm preparing a new release to fix this, among other problems, but in the meantime your best option is to run in a python 3.5 environment.

bmcfee commented 5 years ago

fixed by merging #26