我通过谷歌colab训练我的CNN(VGG)并生成.h5文件.现在的问题是,我可以通过谷歌colab成功预测我的输出,但是当我下载.h5训练模型文件并尝试预测我的笔记本电脑上的输出时,我在加载模型时遇到错误.
这是代码:
import tensorflow as tf
from tensorflow import keras
import h5py
# Initialization
loaded_model = keras.models.load_model('./train_personCount_model.h5')
Run Code Online (Sandbox Code Playgroud)
而错误:
ValueError: Unknown initializer: GlorotUniform
Run Code Online (Sandbox Code Playgroud) python machine-learning keras tensorflow google-colaboratory
我已经训练了一个 CNN 并相应地保存了它:
model = Sequential()
model.add(Flatten(input_shape=train_data.shape[1:]))
model.add(Dense(256, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='rmsprop',
loss='binary_crossentropy', metrics=['accuracy'])
model.fit(train_data, train_labels,
epochs=epochs,
batch_size=batch_size,
validation_data=(validation_data, validation_labels))
model.save('full_model.h5')
Run Code Online (Sandbox Code Playgroud)
我现在尝试使用以下命令在另一个 python 脚本中加载模型:
model = tf.keras.models.load_model('full_model.h5')
Run Code Online (Sandbox Code Playgroud)
并收到以下错误:
Traceback (most recent call last):
File "/media/spt/Data/tensorflow_server/get_model.py", line 12, in <module>
model = tf.keras.models.load_model('full_model.h5')
File "/home/spt/.conda/envs/dev_env/lib/python3.6/site-packages/tensorflow/python/keras/engine/saving.py", line 229, in load_model
model = model_from_config(model_config, custom_objects=custom_objects)
File "/home/spt/.conda/envs/dev_env/lib/python3.6/site-packages/tensorflow/python/keras/engine/saving.py", line 306, in model_from_config
return deserialize(config, custom_objects=custom_objects)
File "/home/spt/.conda/envs/dev_env/lib/python3.6/site-packages/tensorflow/python/keras/layers/serialization.py", line 64, in deserialize
printable_module_name='layer')
File "/home/spt/.conda/envs/dev_env/lib/python3.6/site-packages/tensorflow/python/keras/utils/generic_utils.py", line 173, in deserialize_keras_object
list(custom_objects.items())))
File "/home/spt/.conda/envs/dev_env/lib/python3.6/site-packages/tensorflow/python/keras/engine/sequential.py", line 286, …Run Code Online (Sandbox Code Playgroud) with open('2model.json','r') as f:
json = f.read()
model = model_from_json(json)
model.load_weights("color_tensorflow_real_mode.h5")
Run Code Online (Sandbox Code Playgroud)
我在Google Colab上训练了一个Keras模型。现在无法将其本地加载到我的系统上。收到此错误:ValueError:未知的初始值设定项:GlorotUniform
如何解决呢?每次我在colab上制作模型并尝试在本地加载时,我都无法这样做。收到此错误消息:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-17-c3ed162a8277> in <module>()
----> 1 model = model_from_json(json)
2 model.load_weights("color_tensorflow_real_mode.h5")
~\Anaconda3\lib\site-packages\tensorflow\python\keras\engine\saving.py in model_from_json(json_string, custom_objects)
349 config = json.loads(json_string)
350 from tensorflow.python.keras.layers import deserialize # pylint: disable=g-import-not-at-top
--> 351 return deserialize(config, custom_objects=custom_objects)
352
353
~\Anaconda3\lib\site-packages\tensorflow\python\keras\layers\serialization.py in deserialize(config, custom_objects)
62 module_objects=globs,
63 custom_objects=custom_objects,
---> 64 printable_module_name='layer')
~\Anaconda3\lib\site-packages\tensorflow\python\keras\utils\generic_utils.py in deserialize_keras_object(identifier, module_objects, custom_objects, printable_module_name)
171 custom_objects=dict(
172 list(_GLOBAL_CUSTOM_OBJECTS.items()) +
--> 173 list(custom_objects.items())))
174 …Run Code Online (Sandbox Code Playgroud)