我正在学习TensorFlow,并且在按照一个演示教程进行学习(https://www.tensorflow.org/tutorials/keras/basic_text_classification)
错误报告告诉我
“检查目标时出错:期望dense_1的形状为(1,),但得到的数组形状为(256,)”
有人能解释一下为什么这不起作用吗?
train_data = keras.preprocessing.sequence.pad_sequences(train_data, value=word_index["<PAD>"], padding='post', maxlen=256) #最大长度test_data = keras.preprocessing.sequence.pad_sequences(test_data, value=word_index["<PAD>"], padding='post', maxlen=256)vocal_size = 10000model = keras.Sequential()model.add(keras.layers.Embedding(vocal_size,16))model.add(keras.layers.GlobalAveragePooling1D())model.add(keras.layers.Dense(16,activation=tf.nn.relu))model.add(keras.layers.Dense(1,activation=tf.nn.sigmoid))model.compile(optimizer=tf.train.AdamOptimizer(), loss='binary_crossentropy', metrics=['accuracy'])x_val = train_data[:10000]partial_x_train = train_data[10000:]y_val = train_data[:10000]partial_y_train = train_data[10000:]history = model.fit(partial_x_train, partial_y_train, epochs=40, batch_size=512, validation_data=(x_val, y_val), verbose=1)
回答:
错误出现在这些行中
y_val = train_data[:10000]partial_y_train = train_data[10000:]
但教程中说应该是
y_val = train_labels[:10000]partial_y_train = train_labels[10000:]
train_data
代表每个书面评论,而train_labels
代表评论是正面还是负面。你希望你的模型学会判断一个书面评论是正面还是负面的。