Keras 无法使用 CuDNNLSTM 将模型保存为 SavedModel



我最近遇到了Keras的一个问题。我的模型看起来像:

inputs = Input(shape=(max_sequence_len,))
# Embedding layer
embedding = Embedding(
input_length=max_sequence_len,
input_dim=len(word_idx),
output_dim=100,
weights=[embedding_matrix],
trainable=False
)(inputs)
# Recurrent layers
heart = Bidirectional(CuDNNLSTM(256))(embedding)
dense = Dense((n_of_stocks * stock_size * 4), activation='relu')(heart)
# Fully connected layer
preoutput = []
outputs = []
for i in range(n_of_stocks):
preoutput.append(Dense(stock_size * 4, activation='linear')(dense))
outputs.append(Reshape((stock_size, 4))(preoutput[i]))
# Compile the model
model = Model(inputs=inputs, outputs=outputs, name="the_model")
model.summary()
model.compile(optimizer='adam', loss='mse', metrics=['accuracy'])
model.save("mynetwork")

当我试图保存模型时,它失败了,并出现错误:

Traceback (most recent call last):
File "D:ProjectsProject Tneuralnetwork.py", line 95, in <module>
model.save("mynetwork")
File "C:UsersnkartAppDataLocalProgramsPythonPython310libsite-packageskerasutilstraceback_utils.py", line 67, in error_handler
raise e.with_traceback(filtered_tb) from None
File "C:UsersnkartAppDataLocalProgramsPythonPython310libsite-packageskeraslayersrnnbase_rnn.py", line 282, in _use_input_spec_as_call_signature
if self.unroll:
AttributeError: 'CuDNNLSTM' object has no attribute 'unroll'

我做错什么了吗?我应该试着把它保存为h5吗?

不要使用CuDNNLSTM,只使用带有默认参数的LSTM(更新的(,它将自动使用CuDNN,假设您正确安装了CuDNN。CCD_ 3用于Tensorflow<2.0.

heart = Bidirectional(LSTM(256))(embedding)

您可能需要使用tensorflow.keras.layers而不是keras.layers

最新更新