在使用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相关推荐

  1. 报错InvalidArgumentError (see above for traceback): Restoring from checkpoint failed

    报错详情: 使用faster-rcnn训练自己的模型,下载使用别人的代码 这份代码 运行python tools/demo.py报错 如下: Traceback (most recent call l ...

  2. 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 ...

  3. 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 ...

  4. anconda安装后命令行中安装tensorflow报错

    现象  anconda安装后命令行中安装tensorflow报错 pip install --upgrade --ignore-installed tensorflow-gpu Building wh ...

  5. NVIDIA Jetson Xavier NX上导入tensorflow报错:AttributeError: module ‘wrapt‘ has no attribute ‘ObjectProxy‘

    欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 在Jetson Xavier NX上导入tensorflow报错:AttributeError: module 'wra ...

  6. Python3.5 win10环境下导入kera/tensorflow报错的解决方法

    这篇文章主要介绍了Python3.5 win10环境下导入keras/tensorflow报错的解决方法,较为详细的分析了Python3.5在win10环境下导入keras/tensorflow提示错 ...

  7. 解决tensorflow报错:AttributeError: module ‘tensorflow.keras.backend‘ has no attribute ‘get_session‘ 问题

    欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 解决tensorflow报错:AttributeError: module 'tensorflow.keras.back ...

  8. 用pip安装tensorflow报错SyntaxError: invalid syntax

    用pip安装tensorflow报错SyntaxError: invalid syntax 解决办法:直接在cmd中输入安装语句

  9. 服务器安装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 ...

最新文章

  1. 在Yolov5 Yolov4 Yolov3 TensorRT 实现Implementation
  2. oracle 动态sql列转行_Oracle 行转列 动态出转换的列
  3. 数据库事务以及事务的隔离级别
  4. HTML5需要学html4吗,html5和html4的区别是什么
  5. zabbix配置邮箱报警
  6. 让 CefSharp.WinForms 应用程序同时支持32位(x86)和64位(x64)的解决方案
  7. mybatis_user_guide(7) SQL语句构建器类
  8. 软件工程---16.基于构件的软件工程
  9. C语言原码、反码、补码
  10. 【Java从0到架构师】git 核心原理和分支管理
  11. SQL Server插入geography、geometry和c_hierarchyid类型数据
  12. Linux调度器 - deadline调度器
  13. zabbix监控搭建以及客户端安装
  14. 打造金刚不坏之心的秘籍
  15. php 代码mysql 读写分离实例
  16. abaqus移动热源DFLUX
  17. SpreadJS V15.0 Update2 新特性一览
  18. ubuntu使用byzanz截取gif动态图
  19. 图扑软件数字孪生微电网,部署源网荷储一体化平台事半功倍
  20. 和风天气更新数据失败原因分析

热门文章

  1. oracle ora 00910,ORA-00910: 指定的长度对于数据类型而言过长
  2. python 携程_python爬取携程和蚂蜂窝的景点评论数据\python爬取携程评论数据\python旅游网站评论数...
  3. dolphin scheduler(一)
  4. 13.定时器/计数器
  5. 软件测试工程师涨薪攻略!3年如何达到30K!
  6. DAB-DETR: DYNAMIC ANCHOR BOXES ARE BETTER QUERIES FOR DETR翻译
  7. 股票查询小程序_以龙虎榜数据为例
  8. svn服务端删除版本库_删除SVN目录及从服务器端删除SVN版本库文件方法详解
  9. linux从视频中提取音乐,Linux下从电影(avi)中提取声音
  10. JSCharting JavaScript 3.3.X 12/17/2022 Crack