我正在尝试对一些我嵌入的文本数据运行LSTM。
我的输入的形状为(training_set_size, paragraph_length, embedding_dimension)
输出是0到31之间的整数的矢量,表示32个可能的标签之一,每个单词都被标签。它的形状为(training_set_size, paragraph_length, 1)
在添加嵌入之前,需要进行一些细微调整。
那时,我输入的形状是(training_set_size, paragraph_length, 1)
,LSTM层的input_shape是(paragraph_length, 1)
我的问题是我遇到了两个错误之一,而解决一个错误似乎导致了另一个错误。
这是我的代码:
model = tf.keras.models.Sequential([
tf.keras.layers.LSTM(128, input_shape = (input_len, embedding_dim), return_sequences=True),
tf.keras.layers.TimeDistributed(tf.keras.layers.Dense(32))
])
model.compile('adam', 'sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test, y_test)
上面的代码产生以下错误:
ValueError:检查输入时出错:预期lstm_input具有3维,但数组的形状为(1000,100)
所以我试图更改LSTM输入的形状:
input_shape = (input_len, embedding_dim, 1)
这将产生以下不同的错误:
lstm_8层的输入0与该层不兼容:预期ndim = 3,找到的ndim = 4。收到完整图形:[None,1000,100,1]
编辑:training_set_size=17744
,paragraph_length=1000
和embedding_dim=100