我想加载之前训练过的模型。
我的代码就像波纹管一样。
top3_acc = functools.partial(tf.keras.metrics.top_k_categorical_accuracy, k=3)
top3_acc.__name__ = 'top3_acc'
modelName = "/root/workspace/cc_classifier/generatedModels/whole_model.pb"
sdi_model = keras.models.load_model(modelName, custom_objects={'top3_acc': top3_acc})
然后,我的喀拉拉邦返回一条错误消息,例如波纹管。
File "/root/workspace/cc_classifier/scripts/tester/modeltester.py", line 28, in <module>
sdi_model = keras.models.load_model(modelName, custom_objects={'top3_acc': top3_acc})
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 1075, in from_config
process_node(layer, node_data)
File "/usr/local/lib/python3.6/dist-packages/keras/engine/network.py", line 1025, in process_node
layer(unpack_singleton(input_tensors), **kwargs)
File "/usr/local/lib/python3.6/dist-packages/keras/engine/base_layer.py", line 506, in __call__
output_shape = self.compute_output_shape(input_shape)
File "/usr/local/lib/python3.6/dist-packages/keras/engine/network.py", line 612, in compute_output_shape
str(len(self._input_layers)) + ' tensor inputs.')
ValueError: Invalid input_shape argument [(None, 1500), (None, 400)]: model has 1 tensor inputs.
我不知道原因。 我该如何解决?
我使用multi-gpu选项训练了我的模型。
model = keras.utils.multi_gpu_model(model, gpus=[0,1,2,3])
此选项会导致此错误吗?
答案 0 :(得分:0)
对不起。这都是我的错。
我设计了两个输入层,音节和语素。
cnnModelInput = keras.layers.Input(shape=(self.lexicalMaxLength,), name="syllable_input")
posModelInput = keras.layers.Input(shape=(self.morphemeMaxLength,), name="morphemePos_input")
inputFormat = [cnnModelInput, posModelInput]
我在“ posMudelInput”的位置输入“ cnnModelInput”
在规范中,该模型具有两个输入层,但是该模型从未使用过“ posModelInput”。
因此出现了错误消息。
谢谢!!