tensorflow报InvalidArgumentError (see above for traceback): Conv2DSlowBackpropInput
在使用TensorFlow求解转置卷积(反卷积)的时候,我们需要调用tf.nn.conv2d_transpose方法,在计算反卷积的时候,报了如下错误
InvalidArgumentError (see above for traceback): Conv2DSlowBackpropInput: Size of out_backprop doesn't match computed: actual = 3, computed = 5spatial_dim: 1 input: 5 filter: 3 output: 3 stride: 1 dilation: 1
报错代码如下:
if __name__ == "__main__":x1 = tf.constant([i*0.1 for i in range(9)],shape=[1,3,3,1],dtype=tf.float32)dev_con1 = tf.ones(shape=[3,3,1,1],dtype=tf.float32)y1 = tf.nn.conv2d_transpose(x1,dev_con1,output_shape=[1,5,5,1],strides=[1,1,1,1],padding="SAME")sess = tf.InteractiveSession()tf.global_variables_initializer()y1 = sess.run(y1)print(y1)
原因分析:
从错误的原因来看是因为输入矩阵与输出矩阵大小不匹配导致的,在使用tf.nn.conv2d_transpose方法的时候,TensorFlow 会根据output_shape、strides、padding、kernel的参数来求解输入的shape,如果不匹配就会报错。下面介绍几个公式,如何根据这些参数来计算输入和输出:
- o:表示卷积的输出矩阵的尺寸
- s:表示卷积的步长
- i:表示卷积的输入矩阵的尺寸
- p:表示padding的大小
- k:表示卷积核的大小
计算卷积的输出尺寸,已知卷积输入矩阵的大小i,以及s、p、k等参数,求解o
计算反卷积的输出尺寸,反卷积就是卷积的逆过程,对于反卷积而言,卷积的输入就是反卷积的输出,根据上式求得i
除了上面求解输入输出尺寸的方法之外,还可以根据padding为SAME还是VALID来求解卷积的:输出
当padding为SAME时:
当padding为VALID时:
ceil函数表示,向上去整
修改方法:
根据padding为SAME时的公式,当不改变步长s的时候,已知输出的矩阵尺寸为5,所以输入的矩阵尺寸应该也为5,修正后的代码如下:
if __name__ == "__main__":x1 = tf.constant([i*0.1 for i in range(25)],shape=[1,5,5,1],dtype=tf.float32)dev_con1 = tf.ones(shape=[3,3,1,1],dtype=tf.float32)y1 = tf.nn.conv2d_transpose(x1,dev_con1,output_shape=[1,5,5,1],strides=[1,1,1,1],padding="SAME")sess = tf.InteractiveSession()tf.global_variables_initializer()y1 = sess.run(y1)print(y1)
当不修输入尺寸的大小时,可以将步长修改为2,修正后的代码如下:
if __name__ == "__main__":x1 = tf.constant([i*0.1 for i in range(9)],shape=[1,3,3,1],dtype=tf.float32)dev_con1 = tf.ones(shape=[3,3,1,1],dtype=tf.float32)y1 = tf.nn.conv2d_transpose(x1,dev_con1,output_shape=[1,5,5,1],strides=[1,2,2,1],padding="SAME")sess = tf.InteractiveSession()tf.global_variables_initializer()y1 = sess.run(y1)print(y1)
tensorflow报InvalidArgumentError (see above for traceback): Conv2DSlowBackpropInput相关推荐
- 报错InvalidArgumentError (see above for traceback): Restoring from checkpoint failed
报错详情: 使用faster-rcnn训练自己的模型,下载使用别人的代码 这份代码 运行python tools/demo.py报错 如下: Traceback (most recent call l ...
- tensorflow错误:InvalidArgumentError (see above for traceback): Cannot assign a device for operation
一.错误 InvalidArgumentError (see above for traceback): Cannot assign a device for operation 'shuffle_b ...
- BUG InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'Pl
为了想看一段代买的Tensor,加入了 sess = tf.Session()print(sess.run(self.embedded_chars)) 然后就报错: InvalidArgumentEr ...
- anconda安装后命令行中安装tensorflow报错
现象 anconda安装后命令行中安装tensorflow报错 pip install --upgrade --ignore-installed tensorflow-gpu Building wh ...
- NVIDIA Jetson Xavier NX上导入tensorflow报错:AttributeError: module ‘wrapt‘ has no attribute ‘ObjectProxy‘
欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 在Jetson Xavier NX上导入tensorflow报错:AttributeError: module 'wra ...
- Python3.5 win10环境下导入kera/tensorflow报错的解决方法
这篇文章主要介绍了Python3.5 win10环境下导入keras/tensorflow报错的解决方法,较为详细的分析了Python3.5在win10环境下导入keras/tensorflow提示错 ...
- 解决tensorflow报错:AttributeError: module ‘tensorflow.keras.backend‘ has no attribute ‘get_session‘ 问题
欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 解决tensorflow报错:AttributeError: module 'tensorflow.keras.back ...
- 用pip安装tensorflow报错SyntaxError: invalid syntax
用pip安装tensorflow报错SyntaxError: invalid syntax 解决办法:直接在cmd中输入安装语句
- 服务器安装opencv报错--libSM.so.6: cannot open shared ...+tensorflow 报错libcusolver.so.8.0: can not...
1.安装opencv出现以下错误: pip install opencv-contrib-python apt-get install -y python-qt4 apt-get install tk ...
最新文章
- 在Yolov5 Yolov4 Yolov3 TensorRT 实现Implementation
- oracle 动态sql列转行_Oracle 行转列 动态出转换的列
- 数据库事务以及事务的隔离级别
- HTML5需要学html4吗,html5和html4的区别是什么
- zabbix配置邮箱报警
- 让 CefSharp.WinForms 应用程序同时支持32位(x86)和64位(x64)的解决方案
- mybatis_user_guide(7) SQL语句构建器类
- 软件工程---16.基于构件的软件工程
- C语言原码、反码、补码
- 【Java从0到架构师】git 核心原理和分支管理
- SQL Server插入geography、geometry和c_hierarchyid类型数据
- Linux调度器 - deadline调度器
- zabbix监控搭建以及客户端安装
- 打造金刚不坏之心的秘籍
- php 代码mysql 读写分离实例
- abaqus移动热源DFLUX
- SpreadJS V15.0 Update2 新特性一览
- ubuntu使用byzanz截取gif动态图
- 图扑软件数字孪生微电网,部署源网荷储一体化平台事半功倍
- 和风天气更新数据失败原因分析
热门文章
- oracle ora 00910,ORA-00910: 指定的长度对于数据类型而言过长
- python 携程_python爬取携程和蚂蜂窝的景点评论数据\python爬取携程评论数据\python旅游网站评论数...
- dolphin scheduler(一)
- 13.定时器/计数器
- 软件测试工程师涨薪攻略!3年如何达到30K!
- DAB-DETR: DYNAMIC ANCHOR BOXES ARE BETTER QUERIES FOR DETR翻译
- 股票查询小程序_以龙虎榜数据为例
- svn服务端删除版本库_删除SVN目录及从服务器端删除SVN版本库文件方法详解
- linux从视频中提取音乐,Linux下从电影(avi)中提取声音
- JSCharting JavaScript 3.3.X 12/17/2022 Crack