machine_learning_examples icon indicating copy to clipboard operation
machine_learning_examples copied to clipboard

ValueError: Unknown activation function:softmax_over_time

Open rafaleo opened this issue 4 years ago • 1 comments

I try to run attention.py and it seems it's not possible to fit into memory for me. So I try do some tricks. One is to clean up and read arrays from disk only needed to use model.fit, but in the line model = load_model("large_files/model.h5") I get following error:

Traceback (most recent call last):
  File "AT_translate.py", line 32, in <module>
    model = load_model("large_files/"+MODE+"-model.h5")
  File "C:\Users\cp\Anaconda3\lib\site-packages\keras\engine\saving.py", line 492, in load_wrapper
    return load_function(*args, **kwargs)
  File "C:\Users\cp\Anaconda3\lib\site-packages\keras\engine\saving.py", line 584, in load_model
    model = _deserialize_model(h5dict, custom_objects, compile)
  File "C:\Users\cp\Anaconda3\lib\site-packages\keras\engine\saving.py", line 274, in _deserialize_model
    model = model_from_config(model_config, custom_objects=custom_objects)
  File "C:\Users\cp\Anaconda3\lib\site-packages\keras\engine\saving.py", line 627, in model_from_config
    return deserialize(config, custom_objects=custom_objects)
  File "C:\Users\cp\Anaconda3\lib\site-packages\keras\layers\__init__.py", line 168, in deserialize
    printable_module_name='layer')
  File "C:\Users\cp\Anaconda3\lib\site-packages\keras\utils\generic_utils.py", line 147, in deserialize_keras_object
    list(custom_objects.items())))
  File "C:\Users\cp\Anaconda3\lib\site-packages\keras\engine\network.py", line 1056, in from_config
    process_layer(layer_data)
  File "C:\Users\cp\Anaconda3\lib\site-packages\keras\engine\network.py", line 1042, in process_layer
    custom_objects=custom_objects)
  File "C:\Users\cp\Anaconda3\lib\site-packages\keras\layers\__init__.py", line 168, in deserialize
    printable_module_name='layer')
  File "C:\Users\cp\Anaconda3\lib\site-packages\keras\utils\generic_utils.py", line 149, in deserialize_keras_object
    return cls.from_config(config['config'])
  File "C:\Users\cp\Anaconda3\lib\site-packages\keras\engine\base_layer.py", line 1179, in from_config
    return cls(**config)
  File "C:\Users\cp\Anaconda3\lib\site-packages\keras\legacy\interfaces.py", line 91, in wrapper
    return func(*args, **kwargs)
  File "C:\Users\cp\Anaconda3\lib\site-packages\keras\layers\core.py", line 875, in __init__
    self.activation = activations.get(activation)
  File "C:\Users\cp\Anaconda3\lib\site-packages\keras\activations.py", line 227, in get
    return deserialize(identifier)
  File "C:\Users\cp\Anaconda3\lib\site-packages\keras\activations.py", line 208, in deserialize
    printable_module_name='activation function')
  File "C:\Users\cp\Anaconda3\lib\site-packages\keras\utils\generic_utils.py", line 167, in deserialize_keras_object
    ':' + function_name)
ValueError: Unknown activation function:softmax_over_time

Please give me a hint how can I avoid it?

rafaleo avatar Mar 07 '20 09:03 rafaleo

Found some way to walk around: model = load_model("large_files/model.h5", custom_objects = {"softmax_over_time": softmax_over_time, "t":t}) just passed variable and function which is custom but this throws another error:

ValueError: A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got inputs shapes: [(None, 1, 512), (None, 0, 100)]

I guess it's probably to re-write the function because it's not intended to use serialization.

rafaleo avatar Mar 07 '20 09:03 rafaleo