use*_*712 14 python neural-network keras
我的输入形状应该是100x100.它代表一句话.每个单词都是100维的向量,句子中最多有100个单词.
我向CNN提供八个句子.我不确定这是否意味着我的输入形状应该是100x100x8.
然后是以下几行
Convolution2D(10, 3, 3, border_mode='same',
input_shape=(100, 100))
Run Code Online (Sandbox Code Playgroud)
抱怨:
输入0与图层卷积2d_1不兼容:预期ndim = 4,发现ndim = 3
这对我来说没有意义,因为我的输入维度是2.我可以通过将input_shape更改为(100,100,8)来完成它.但是"预期的ndim = 4"位对我来说没有意义.
我也看不出为什么带有10个滤波器的3x3卷积层不接受100x100的输入.
即使我通过抱怨"预期的ndim = 4".我的激活层遇到了问题.有抱怨:
无法将softmax应用于非2D或3D的张量.这里,ndim = 4
任何人都可以解释这里发生了什么以及如何解决它?非常感谢.
Pri*_*moz 11
我有同样的问题,我解决了channel为input_shape参数添加一个维度.
我建议以下解决方案:
Convolution2D(10, 3, 3, border_mode='same', input_shape=(100, 100, 1))
Run Code Online (Sandbox Code Playgroud)
2D卷积层的缺失维度是"通道"维度.
对于图像数据,灰度图像的通道尺寸为1,彩色图像的通道尺寸为3.
在您的情况下,为了确保Keras不会抱怨,您可以使用1个通道的2D卷积,或100个通道的1D卷积.
参考:http://keras.io/layers/convolutional/#convolution2d
| 归档时间: |
|
| 查看次数: |
18222 次 |
| 最近记录: |