У меня есть модель keras, использующая API feature_column of tenorflow, я могу сохранить модель в расширении .h5, но при загрузке сохраненной модели получаю следующую ошибку в colab.
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-38-8a2d51a054f6> in <module>()
----> 1 new_model = tf.keras.models.load_model('model.h5')
13 frames
/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/keras/utils/generic_utils.py in deserialize_keras_object(identifier, module_objects, custom_objects, printable_module_name)
318 obj = _GLOBAL_CUSTOM_OBJECTS[object_name]
319 else:
--> 320 obj = module_objects.get(object_name)
321 if obj is None:
322 raise ValueError('Unknown ' + printable_module_name + ':' + object_name)
AttributeError: 'NoneType' object has no attribute 'get'
мой код и я использую Тензорлоу 2.1
import pandas as pd
import tensorflow as tf
import numpy as np
feature_layer = tf.keras.layers.DenseFeatures(feature_columns)
def model_builder():
tf.keras.backend.clear_session()
model = tf.keras.Sequential()
model.add(feature_layer)
model.add(tf.keras.layers.Dense(32, activation='relu'))
model.add(tf.keras.layers.Dense(32, activation='relu'))
model.add(tf.keras.layers.Dense(1))
model.compile(optimizer = tf.keras.optimizers.RMSprop(0.001),
loss=tf.keras.losses.Huber(),
metrics=['mae'])
return model
model = model_builder()
model.fit(train_ds , epochs=5,verbose=1)
model.save('model.h5')
new_model = tf.keras.models.load_model('model.h5')
Я получаю следующую ошибку при выполнении кода в локальной среде ie в среде conda с помощью ноутбук Юпитера. Но у местного env есть tf 2.0
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-23-fbbaf2c35e78> in <module>
----> 1 new_model = tf.keras.models.load_model('model1.h5')
~/anaconda3/envs/tf/lib/python3.7/site-packages/tensorflow_core/python/keras/saving/save.py in load_model(filepath, custom_objects, compile)
144 if (h5py is not None and (
145 isinstance(filepath, h5py.File) or h5py.is_hdf5(filepath))):
--> 146 return hdf5_format.load_model_from_hdf5(filepath, custom_objects, compile)
147
148 if isinstance(filepath, six.string_types):
~/anaconda3/envs/tf/lib/python3.7/site-packages/tensorflow_core/python/keras/saving/hdf5_format.py in load_model_from_hdf5(filepath, custom_objects, compile)
166 model_config = json.loads(model_config.decode('utf-8'))
167 model = model_config_lib.model_from_config(model_config,
--> 168 custom_objects=custom_objects)
169
170 # set weights
~/anaconda3/envs/tf/lib/python3.7/site-packages/tensorflow_core/python/keras/saving/model_config.py in model_from_config(config, custom_objects)
53 '`Sequential.from_config(config)`?')
54 from tensorflow.python.keras.layers import deserialize # pylint: disable=g-import-not-at-top
---> 55 return deserialize(config, custom_objects=custom_objects)
56
57
~/anaconda3/envs/tf/lib/python3.7/site-packages/tensorflow_core/python/keras/layers/serialization.py in deserialize(config, custom_objects)
100 module_objects=globs,
101 custom_objects=custom_objects,
--> 102 printable_module_name='layer')
~/anaconda3/envs/tf/lib/python3.7/site-packages/tensorflow_core/python/keras/utils/generic_utils.py in deserialize_keras_object(identifier, module_objects, custom_objects, printable_module_name)
189 custom_objects=dict(
190 list(_GLOBAL_CUSTOM_OBJECTS.items()) +
--> 191 list(custom_objects.items())))
192 with CustomObjectScope(custom_objects):
193 return cls.from_config(cls_config)
~/anaconda3/envs/tf/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/sequential.py in from_config(cls, config, custom_objects)
367 for layer_config in layer_configs:
368 layer = layer_module.deserialize(layer_config,
--> 369 custom_objects=custom_objects)
370 model.add(layer)
371 if not model.inputs and build_input_shape:
~/anaconda3/envs/tf/lib/python3.7/site-packages/tensorflow_core/python/keras/layers/serialization.py in deserialize(config, custom_objects)
100 module_objects=globs,
101 custom_objects=custom_objects,
--> 102 printable_module_name='layer')
~/anaconda3/envs/tf/lib/python3.7/site-packages/tensorflow_core/python/keras/utils/generic_utils.py in deserialize_keras_object(identifier, module_objects, custom_objects, printable_module_name)
189 custom_objects=dict(
190 list(_GLOBAL_CUSTOM_OBJECTS.items()) +
--> 191 list(custom_objects.items())))
192 with CustomObjectScope(custom_objects):
193 return cls.from_config(cls_config)
~/anaconda3/envs/tf/lib/python3.7/site-packages/tensorflow_core/python/feature_column/feature_column_v2.py in from_config(cls, config, custom_objects)
450 config_cp = config.copy()
451 config_cp['feature_columns'] = serialization.deserialize_feature_columns(
--> 452 config['feature_columns'], custom_objects=custom_objects)
453
454 return cls(**config_cp)
~/anaconda3/envs/tf/lib/python3.7/site-packages/tensorflow_core/python/feature_column/serialization.py in deserialize_feature_columns(configs, custom_objects)
188 return [
189 deserialize_feature_column(c, custom_objects, columns_by_name)
--> 190 for c in configs
191 ]
~/anaconda3/envs/tf/lib/python3.7/site-packages/tensorflow_core/python/feature_column/serialization.py in <listcomp>(.0)
188 return [
189 deserialize_feature_column(c, custom_objects, columns_by_name)
--> 190 for c in configs
191 ]
~/anaconda3/envs/tf/lib/python3.7/site-packages/tensorflow_core/python/feature_column/serialization.py in deserialize_feature_column(config, custom_objects, columns_by_name)
141 cls_config,
142 custom_objects=custom_objects,
--> 143 columns_by_name=columns_by_name)
144
145 # If the name already exists, re-use the column from columns_by_name,
~/anaconda3/envs/tf/lib/python3.7/site-packages/tensorflow_core/python/feature_column/feature_column_v2.py in _from_config(cls, config, custom_objects, columns_by_name)
2871 kwargs = _standardize_and_copy_config(config)
2872 kwargs['normalizer_fn'] = generic_utils.deserialize_keras_object(
-> 2873 config['normalizer_fn'], custom_objects=custom_objects)
2874 kwargs['dtype'] = dtypes.as_dtype(config['dtype'])
2875
~/anaconda3/envs/tf/lib/python3.7/site-packages/tensorflow_core/python/keras/utils/generic_utils.py in deserialize_keras_object(identifier, module_objects, custom_objects, printable_module_name)
206 obj = _GLOBAL_CUSTOM_OBJECTS[object_name]
207 else:
--> 208 obj = module_objects.get(object_name)
209 if obj is None:
210 raise ValueError('Unknown ' + printable_module_name + ':' + object_name)
AttributeError: 'NoneType' object has no attribute 'get'