小编Jeb*_*bus的帖子

InvalidArgumentError:计算的输出大小将为负数

我正在创建一个用于 2 类文本分类的小型 CNN。我能够使用单个卷积层创建并(成功)运行 CNN,但当我尝试添加第二个卷积层时,出现无法解决的错误。错误出现在第二个转换的输出上。

神经网络编译并开始拟合,但随后失败并出现错误。

我尝试删除第一个 conv 和 maxpool 层,一切正常。

关于做什么的建议将不胜感激。


kerCNN2 = keras.Sequential()
kerCNN2.add(keras.layers.Embedding(len(dictChck), 32))
kerCNN2.add(keras.layers.Conv1D(24,5,activation=tf.nn.relu))
kerCNN2.add(keras.layers.MaxPooling1D(5))
kerCNN2.add(keras.layers.Conv1D(16,5,activation=tf.nn.relu))
kerCNN2.add(keras.layers.GlobalAveragePooling1D())
kerCNN2.add(keras.layers.Dense(16, activation=tf.nn.relu))
kerCNN2.add(keras.layers.Dense(1, activation=tf.nn.sigmoid))
kerCNN2.summary()

kerCNN2.compile(optimizer="adam", loss="binary_crossentropy", metrics=["acc"])

trainHistCNN2 = kerCNN2.fit(encTrain, trainYPartial, epochs = 1, batch_size = 128, validation_data=(encTrainEval, trainYEval), verbose=1)

Run Code Online (Sandbox Code Playgroud)

编译结果:

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
embedding_23 (Embedding)     (None, None, 32)          76915776  
_________________________________________________________________
conv1d_32 (Conv1D)           (None, None, 24)          3864      
_________________________________________________________________
max_pooling1d_13 (MaxPooling (None, None, 24)          0         
_________________________________________________________________
conv1d_33 (Conv1D)           (None, None, 16)          1936      
_________________________________________________________________
global_average_pooling1d_3 …
Run Code Online (Sandbox Code Playgroud)

python conv-neural-network keras tensorflow

5
推荐指数
1
解决办法
4884
查看次数

标签 统计

conv-neural-network ×1

keras ×1

python ×1

tensorflow ×1