efficientnet icon indicating copy to clipboard operation
efficientnet copied to clipboard

unable to load model -Unknown initializer: EfficientConv2DKernelInitializer

Open emoen opened this issue 5 years ago • 1 comments

I try to load a model I created about in june 2019, but it doesnt load. I suspect it has something to do with the refactoring done on efficientnet.

When creating the model i used: from efficientnet import EfficientNetB4

while in later work I have used: import efficientnet.keras as efn

so I guess there has been a refactoring inbetween. How do I load the old model?

The error message Im getting is:

sea_age_model = load_model('salmon_scale_efficientnetB4.046-0.29.hdf5') Traceback (most recent call last): File "", line 1, in File "/usr/local/lib/python3.6/dist-packages/keras/engine/saving.py", line 492, in load_wrapper return load_function(*args, **kwargs) File "/usr/local/lib/python3.6/dist-packages/keras/engine/saving.py", line 584, in load_model model = _deserialize_model(h5dict, custom_objects, compile) File "/usr/local/lib/python3.6/dist-packages/keras/engine/saving.py", line 274, in _deserialize_model model = model_from_config(model_config, custom_objects=custom_objects) File "/usr/local/lib/python3.6/dist-packages/keras/engine/saving.py", line 627, in model_from_config return deserialize(config, custom_objects=custom_objects) File "/usr/local/lib/python3.6/dist-packages/keras/layers/init.py", line 168, in deserialize printable_module_name='layer') File "/usr/local/lib/python3.6/dist-packages/keras/utils/generic_utils.py", line 147, in deserialize_keras_object list(custom_objects.items()))) File "/usr/local/lib/python3.6/dist-packages/keras/engine/network.py", line 1056, in from_config process_layer(layer_data) File "/usr/local/lib/python3.6/dist-packages/keras/engine/network.py", line 1042, in process_layer custom_objects=custom_objects) File "/usr/local/lib/python3.6/dist-packages/keras/layers/init.py", line 168, in deserialize printable_module_name='layer') File "/usr/local/lib/python3.6/dist-packages/keras/utils/generic_utils.py", line 149, in deserialize_keras_object return cls.from_config(config['config']) File "/usr/local/lib/python3.6/dist-packages/keras/engine/base_layer.py", line 1179, in from_config return cls(**config) File "/usr/local/lib/python3.6/dist-packages/keras/legacy/interfaces.py", line 91, in wrapper return func(*args, **kwargs) File "/usr/local/lib/python3.6/dist-packages/keras/layers/convolutional.py", line 484, in init **kwargs) File "/usr/local/lib/python3.6/dist-packages/keras/layers/convolutional.py", line 117, in init self.kernel_initializer = initializers.get(kernel_initializer) File "/usr/local/lib/python3.6/dist-packages/keras/initializers.py", line 515, in get return deserialize(identifier) File "/usr/local/lib/python3.6/dist-packages/keras/initializers.py", line 510, in deserialize printable_module_name='initializer') File "/usr/local/lib/python3.6/dist-packages/keras/utils/generic_utils.py", line 140, in deserialize_keras_object ': ' + class_name) ValueError: Unknown initializer: EfficientConv2DKernelInitializer

emoen avatar Apr 16 '20 11:04 emoen

Try installing an older version of the package, like ver. 0.0.2. You can install it with pip install efficientnet==0.0.2. Here's full version history https://pypi.org/project/efficientnet/1.1.1/#history

atamazian avatar Feb 15 '22 12:02 atamazian