我建立了一个神经网络,该网络应该将Tweets分为四个类别之一。但是我的输入形状似乎有问题。 train_features的形状也为(3817,4),train_label_onehot的形状也为(3817,4)。 Test_features的形状为(784,4)和test_label_onehot(784,4)。 Train_label_oehot和test_label_onehot是onehot编码的目标列表。这是我的代码:
# Start neural network
network = models.Sequential()
# Add fully connected layer with a ReLU activation function
network.add(layers.Dense(200, activation='relu', input_shape=(3817,)))
# Add fully connected layer with a ReLU activation function
network.add(layers.Dense(100, activation='relu'))
# Add fully connected layer with a softmax activation function for multiclass problems
network.add(layers.Dense(4, activation='softmax'))
network.summary()
# Compile neural network
network.compile(loss='sparse_categorical_crossentropy', # Cross-entropy
optimizer='adam', # Root Mean Square Propagation
# Accuracy performance metric
metrics=['accuracy'])
# Train neural network
history = network.fit(train_features, # Features
train_label_onehot, # Target vector, shape(3817, 4)
epochs=10,
verbose=4,
batch_size=100, # Number of observations per batch
validation_data=(test_features, test_label_onehot)) # Data for evaluation # test_label_onehot shape(784, 4)
network.summary()给了我这个:
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_775 (Dense) (None, 200) 763600
_________________________________________________________________
dense_776 (Dense) (None, 100) 20100
_________________________________________________________________
dense_777 (Dense) (None, 4) 404
=================================================================
Total params: 784,104
Trainable params: 784,104
Non-trainable params: 0
错误提示:
ValueError: Error when checking input: expected dense_775_input to have shape (3817,) but got array with shape (4,)
有人可以帮我吗?
答案 0 :(得分:0)
更改第一层的输入形状以匹配其中一个数据
# Add fully connected layer with a ReLU activation function
network.add(layers.Dense(200, activation='relu', input_shape=(4,)))
或更明确
# Add fully connected layer with a ReLU activation function
network.add(layers.Dense(200, activation='relu', input_dim=4))
或更笼统
# Add fully connected layer with a ReLU activation function
network.add(layers.Dense(200, activation='relu', input_dim=train_features.shape[1]))