Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 卷积神经网络中的形状误差_Python_Machine Learning_Keras_Neural Network_Conv Neural Network - Fatal编程技术网

Python 卷积神经网络中的形状误差

Python 卷积神经网络中的形状误差,python,machine-learning,keras,neural-network,conv-neural-network,Python,Machine Learning,Keras,Neural Network,Conv Neural Network,我正在尝试训练一个具有以下结构的神经网络: model = Sequential() model.add(Conv1D(filters = 300, kernel_size = 5, activation='relu', input_shape=(4000, 1))) model.add(Conv1D(filters = 300, kernel_size = 5, activation='relu')) model.add(MaxPooling1D(3)) model.add(Conv1D(f

我正在尝试训练一个具有以下结构的神经网络:

model = Sequential()

model.add(Conv1D(filters = 300, kernel_size = 5, activation='relu', input_shape=(4000, 1)))
model.add(Conv1D(filters = 300, kernel_size = 5, activation='relu'))
model.add(MaxPooling1D(3))
model.add(Conv1D(filters = 320, kernel_size = 5, activation='relu'))
model.add(MaxPooling1D(3))
model.add(Dropout(0.5))

model.add(Dense(num_labels, activation='softmax'))

model.compile(loss='categorical_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])

return model
我得到一个错误:

expected dense_1 to have shape (442, 3) but got array with shape (3, 1)
我的输入是一组总共12501个短语,它们被标记为4000个最相关的单词,并且有3种可能的分类。因此,我的输入是train_x.shape=125014000。我将Conv1D层的形状改为125014000,1。现在,我的train_y.shape=12501,3,我把它改成12501,3,1

我使用的拟合函数如下所示:

model.fit(train_x, train_y, batch_size=32, epochs=10, verbose=1, validation_split=0.2, shuffle=True)

我做错了什么?

不需要转换标签形状进行分类。你可以看看你的网络结构

print(model.summary())
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv1d_1 (Conv1D)            (None, 3996, 300)         1800      
_________________________________________________________________
conv1d_2 (Conv1D)            (None, 3992, 300)         450300    
_________________________________________________________________
max_pooling1d_1 (MaxPooling1 (None, 1330, 300)         0         
_________________________________________________________________
conv1d_3 (Conv1D)            (None, 1326, 320)         480320    
_________________________________________________________________
max_pooling1d_2 (MaxPooling1 (None, 442, 320)          0         
_________________________________________________________________
dropout_1 (Dropout)          (None, 442, 320)          0         
_________________________________________________________________
dense_1 (Dense)              (None, 442, 3)            963       
=================================================================
Total params: 933,383
Trainable params: 933,383
Non-trainable params: 0
_________________________________________________________________
模型的最后一个输出为None,442,3,但标签的形状为None,3,1。最终应以全局池层GlobalMapooling1D或展平层展平结束,将三维输出转换为二维输出,用于分类或回归