首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >keras: ValueError:输入0与convolution2d_11层不兼容:预期的ndim=4,found ndim=2

keras: ValueError:输入0与convolution2d_11层不兼容:预期的ndim=4,found ndim=2
EN

Stack Overflow用户
提问于 2017-03-07 11:49:17
回答 1查看 4.7K关注 0票数 3
代码语言:javascript
运行
AI代码解释
复制
    model.add(Convolution2D(64, 3, 3, border_mode='same', input_shape=(32, 32, 3)))
    model.add(Activation('relu'))
    model.add(Convolution2D(32, 3, 3))
    model.add(Activation('relu'))
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Dropout(0.25))

    model.add(Convolution2D(64, 3, 3, border_mode='same'))
    model.add(Activation('relu'))
    model.add(Convolution2D(64, 3, 3))
    model.add(Activation('relu'))
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Dropout(0.25))

    model.add(Flatten())
    model.add(Dense(512))
    model.add(Activation('relu'))
    model.add(Dropout(0.5))
    model.add(Dense(10))
    model.add(Activation('softmax'))

这是错误

代码语言:javascript
运行
AI代码解释
复制
ValueError                                Traceback (most recent call last)
<ipython-input-21-a60216c72b54> in <module>()
----> 1 model.add(Convolution2D(64, 3, 3, border_mode='same', input_shape=(3, 32, 32)))
      2 model.add(Activation('relu'))
      3 model.add(Convolution2D(32, 3, 3))
      4 model.add(Activation('relu'))
      5 model.add(MaxPooling2D(pool_size=(2, 2)))

/home/pranshu_44/anaconda3/lib/python3.5/site-packages/keras/models.py in add(self, layer)
    330                  output_shapes=[self.outputs[0]._keras_shape])
    331         else:
--> 332             output_tensor = layer(self.outputs[0])
    333             if isinstance(output_tensor, list):
    334                 raise TypeError('All layers in a Sequential model '

/home/pranshu_44/anaconda3/lib/python3.5/site-packages/keras/engine/topology.py in __call__(self, x, mask)
    527             # Raise exceptions in case the input is not compatible
    528             # with the input_spec specified in the layer constructor.
--> 529             self.assert_input_compatibility(x)
    530 
    531             # Collect input shapes to build layer.

/home/pranshu_44/anaconda3/lib/python3.5/site-packages/keras/engine/topology.py in assert_input_compatibility(self, input)
    467                                          self.name + ': expected ndim=' +
    468                                          str(spec.ndim) + ', found ndim=' +
--> 469                                          str(K.ndim(x)))
    470             if spec.dtype is not None:
    471                 if K.dtype(x) != spec.dtype:

ValueError: Input 0 is incompatible with layer convolution2d_11: expected ndim=4, found ndim=2

我正在尝试对cifar 10进行图像分类,但是根据do docs [https://keras.io/layers/convolutional/][1],我得到了这个错误,我的答案是正确的,但我不知道为什么会有这个错误

  • 我应该使用(无,32,32,3)维数吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-11 05:44:14

Conv2D层需要一个4维的输入,但是很明显,你只提供了2,但我相信你已经注意到了这一点。

根据冒险机器学习的说法:

提供的数据格式为i,j,k,l,其中i是训练样本数,j是图像的高度,k是权重,l是信道数。

我不熟悉您正在使用的数据,但是l(通道号)的值应该是:

对于灰度图像,l总是等于1(如果我们有一个RGB图像,它将等于3)

所以基本上你只需要:

代码语言:javascript
运行
AI代码解释
复制
import tensorflow as tf
tf.reshape(your_image_tensor, [-1, 28, 28, 1]) #For a grayscale image
tf.reshape(your_image_tensor, [-1, 28, 28, 3]) #For a RGB image

对自己的代码进行适当的更改。如果您不想使用tensorflow,我建议您阅读

Update:您还可以使用numpy.reshape()重新构造数组以获得更多信息:https://docs.scipy.org/doc/numpy/reference/generated/numpy.reshape.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42657049

复制
相关文章
【tensorflow】shape与ndim
获取shape import tensorflow as tf tensor = tf.placeholder(dtype=tf.float32, shape=[200, 200, 3]) print('\n=========== get shape ============') print('tensor : ', tensor) print('tensor.shape : ', tensor.shape) print('tensor.get
JNingWei
2020/03/31
1.5K0
Numpy中ndim、shape、dtype、astype的用法
本文介绍numpy数组中这四个方法的区别ndim、shape、dtype、astype。
狼啸风云
2019/11/27
1.9K0
Numpy中的stack,轴,广播以及CNN介绍
在神经网络学习之Ndarray对象和CNN入门 中,主要介绍了Ndarray维度的概念和CNN的大体流程图,本文基于此介绍Ndarray中比较重要的一个函数stack函数的使用以及numpy中的广播, 简单介绍下CNN。
无情剑客
2021/04/07
1.1K0
keras系列︱图像多分类训练与利用bottleneck features进行微调(三)
该文摘要总结:利用卷积神经网络来对图像进行特征提取和分类,使用预训练的VGG16网络作为基础网络,通过修改网络结构以适应自己的数据集,并使用合成数据集进行训练。在训练过程中,使用了数据增强技术,包括旋转、翻转和水平翻转等,以提高模型的性能。最终,该模型在测试集上获得了85.43%的准确率,表现良好。
悟乙己
2018/01/02
4.4K0
keras系列︱图像多分类训练与利用bottleneck features进行微调(三)
[Deep-Learning-with-Python]神经网络的数学基础
理解深度学习需要熟悉一些简单的数学概念:Tensors(张量)、Tensor operations 张量操作、differentiation微分、gradient descent 梯度下降等等。
用户1631856
2018/08/01
1.3K1
python-Numpy学习之(一)ndim、shape、dtype、astype的用法
参考网址:https://blog.csdn.net/Da_wan/article/details/80518725
全栈程序员站长
2022/07/01
8920
python-Numpy学习之(一)ndim、shape、dtype、astype的用法
python d用法_Python numpy.dsplit() 使用实例
The following are code examples for showing how to use . They are extracted from open source Python projects. You can vote up the examples you like or vote down the exmaples you don’t like. You can also save this page to your account.
用户7886150
2021/01/06
6190
Python3-array和matrix
在相关聚类算法的实现过程中,用python语言实现,会经常出现array和matrix的混淆,这里做个总结。
py3study
2020/01/06
6190
使用netron对mnist网络结构分析「建议收藏」
基于libonnx环境简要分析一下mnist网络算子结构,关于环境搭建可以参考前面两篇文章:
全栈程序员站长
2022/11/01
9310
使用netron对mnist网络结构分析「建议收藏」
剖析源码讲解Numpy模块中的tile函数
tile函数的功能是重复某个数组。比如tile(A, reps),它的作用就是把A重复reps次,这也可以理解为什么参数reps不能是float、string以及matrix类型 ,对于参数reps不能为float和string类型很好理解,这里不再赘述,后面将介绍为什么参数reps不能是matrix类型。
触摸壹缕阳光
2020/04/08
1.4K0
剖析源码讲解Numpy模块中的tile函数
机器学习入门 3-5 Numpy数组(和矩阵)的基本操作
shape 属性查看数组的维度,返回值是一个元组,元组中对应位置的值为数组中对应维度的元素个数。
触摸壹缕阳光
2022/05/25
4930
机器学习入门 3-5 Numpy数组(和矩阵)的基本操作
vmware不可恢复的vcpu-0_vmware与device不兼容
2022年04月11日更新 MacOS的安装目录,找到macOS 10.13.vmx文件(我的版本是10.13,其它版本应该也是同样情况),使用记事本打开
全栈程序员站长
2022/11/10
2.1K0
vmware不可恢复的vcpu-0_vmware与device不兼容
使用注意力机制建模 - 标准化日期格式
文章目录 1. 概述 2. 数据 3. 模型 4. 训练 5. 测试 参考 基于深度学习的自然语言处理 本文使用attention机制的模型,将各种格式的日期转化成标准格式的日期 1.
Michael阿明
2021/02/19
8990
使用注意力机制建模 - 标准化日期格式
点击加载更多

相似问题

Keras: ValueError: sequential_1层的输入0与层:预期的ndim=3,found ndim=2不兼容

11

the : ValueError:层顺序的输入0与图层不兼容: ndim=3,found ndim=2

12

ValueError: sequential_9层的输入0与该层不兼容:预期的ndim=3,found ndim=2

18

ValueError:输入0与lstm_1层不兼容:预期的ndim=3,找到ndim=2 [keras]

10

扁平层ValueError:输入0与flatten_5层不兼容:预期的min_ndim=3,found ndim=2

15
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文