【发布时间】:2022-02-02 17:57:16
【问题描述】:
我正在学习Deep Learning with Python
Book by François Chollet book chapter 10.2.5我使用tensorflow 2.4.1。
这是 LSTM 天气预报的代码:
inputs = keras.Input(shape=(sequence_length, raw_data.shape[-1]))
x = layers.LSTM(16)(inputs)
outputs = layers.Dense(1)(x)
model = keras.Model(inputs, outputs)
callbacks = [
keras.callbacks.ModelCheckpoint("jena_lstm.keras",
save_best_only=True)
]
model.compile(optimizer="rmsprop", loss="mse", metrics=["mae"])
history = model.fit(train_dataset,
epochs=10,
validation_data=val_dataset,
callbacks=callbacks)
model = keras.models.load_model("jena_lstm.keras")
print(f"Test MAE: {model.evaluate(test_dataset)[1]:.2f}")
当我尝试将输入传递给 LSTM 层时,我遇到以下错误:
--> 852 引发 NotImplementedError( 853 “无法将符号张量 ({}) 转换为 numpy 数组。” 854 "此错误可能表明您正在尝试将张量传递给"
NotImplementedError:无法转换符号张量 (lstm_6/strided_slice:0) 到一个 numpy 数组。此错误可能表明 您正在尝试将张量传递给 NumPy 调用,这不是 支持
我对 Dense 层或 conv2D 层没有任何问题,我无法通过 LSTM 层的输入。 任何想法为什么?
输入是来自 keras 的 jena_climate_2009_2016.csv.zip 数据集。像这样构建:
train_dataset = tf.keras.preprocessing.timeseries_dataset_from_array(
raw_data[:-delay],
targets=temperature[delay:],
sampling_rate=sampling_rate,
sequence_length=sequence_length,
shuffle=True,
batch_size=batch_size,
start_index=0,
end_index=num_train_samples)
【问题讨论】:
标签: tensorflow keras lstm tensorflow2.0 keras-layer