TensorFlow SimpleRNN 模型搭建错误:ValueError: Input 0 of layer sequential is incompatible with the layer: expected ndim=3, found ndim=2. 解决方法
模型搭建
在使用 TensorFlow 中的 SimpleRNN 层搭建模型时,可能会遇到以下错误:
model = tf.keras.Sequential([
tf.keras.layers.SimpleRNN(32,activation='tanh',input_shape=train_dataset.shape[-2:]),
tf.keras.layers.Dense(16,activation='tanh'),
tf.keras.layers.Dense(32,activation='leaky_relu'),
tf.keras.layers.Dense(16,activation='leaky_relu'),
tf.keras.layers.Dense(8,activation='tanh'),
tf.keras.layers.Dense(3,activation='linear')
])
报错信息:
ValueError: Input 0 of layer sequential is incompatible with the layer: expected ndim=3, found ndim=2. Full shape received: (None, 10)
解决方法:
根据报错信息,发现输入的维度不匹配。在模型的输入层之前,需要添加一个展平层(Flatten layer),将输入数据的维度从二维变为三维。修改后的代码如下所示:
model = tf.keras.Sequential([
tf.keras.layers.Flatten(input_shape=train_dataset.shape[-2:]),
tf.keras.layers.SimpleRNN(32, activation='tanh'),
tf.keras.layers.Dense(16, activation='tanh'),
tf.keras.layers.Dense(32, activation='leaky_relu'),
tf.keras.layers.Dense(16, activation='leaky_relu'),
tf.keras.layers.Dense(8, activation='tanh'),
tf.keras.layers.Dense(3, activation='linear')
])
这样修改后,输入数据的维度将符合模型的要求。
原文地址: https://www.cveoy.top/t/topic/pe8j 著作权归作者所有。请勿转载和采集!