ValueError:bidirectional_16层的输入0与该层不兼容:预期ndim = 3,找到的ndim = 2。收到完整的图形:[无,64]

时间:2020-05-23 04:27:53

标签: tensorflow machine-learning keras recurrent-neural-network sentiment-analysis

model=tf.keras.Sequential([tf.keras.layers.Embedding(encoder.vocab_size,64),
                      tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(64, return_sequences=True)),
                      tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(32)),
                      tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(16)), 
                      tf.keras.layers.Dense(64,activation='relu'),
                      tf.keras.layers.Dropout(0.5), 
                      tf.keras.layers.Dense(1,activation='sigmoid')])
model.compile(loss='binary_crossentropy',optimizer=tf.keras.optimizers.Adam(1e-6),
            metrics=['accuracy'])

history = model.fit(train_dataset,epochs = 5,validation_data = test_dataset,validation_steps = 30)

我试图使用tensorflow的内置数据集制作情感分析程序。但是在添加了这一层之后

tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(16))

我开始遇到此特定错误。否则,程序将正常运行。会是什么呢? 我不知道输入的形状,因此没有提及。

ValueError: Input 0 of layer bidirectional_16 is incompatible with the layer: expected ndim=3, found ndim=2. Full shape received: [None, 64]

解决了! 添加更多图层会提高模型的准确性,而仅训练5个纪元时是否有超调的可能?

0 个答案:

没有答案