tf.nn.conv2d理解(带通道的卷积图片输出案例)
三篇参考:
1.https://blog.csdn.net/goodshot/article/details/79655915 TF-卷积函数 tf.nn.conv2d 介绍
2.https://blog.csdn.net/goodshot/article/details/79677758 tf.nn.conv2d理解(带通道的卷积图片输出案例)
3.https://blog.csdn.net/goodshot/article/details/79653742 tf.nn.conv2d是怎样实现卷积的?
文档解释
tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, data_format=None, name=None)
- 1
给定一个input的张量[batch, in_height, in_width, in_channels]
和一个过滤器 / 内核张量 [filter_height, filter_width, in_channels, out_channels]
后,执行以下操作:
- 展平filter为一个形状为
[filter_height * filter_width * in_channels, output_channels]
的二维矩阵。 - 从input中按照filter大小提取图片子集形成一个大小为
[batch, out_height, out_width, filter_height * filter_width * in_channels]
的虚拟张量。 - 循环每个图片子集,右乘filter矩阵。
举例
输入是[1,3,3,1],代表1个图像,大小2x2,1个通道
filter是[2,2,1,1],代表filter的大小是2x2,输入通道通道是1,与图片通道相同,输入通道也是1。
步长是1,padding是VALID
这种情况下,输出是1x2x2x1,其中2=(3-2)/1+1,即(图片大小-filter大小)/步长+1。
代码
input = tf.constant([[[[1],[2],[ 3]],[[4],[5],[6 ]],[[ 7],[8],[9]]]],dtype=tf.float32)
filter = tf.constant([[[[1]],[[2]]],[[[ 3]],[[4]]]],dtype=tf.float32)op = tf.nn.conv2d(input,filter,strides = [1,1,1,1],padding ='VALID')
with tf.Session() as sess:sess.run(init)result = sess.run(op)print(result)结果是
[[[[ 37.][ 47.]][[ 67.][ 77.]]]]
当padding=SAME时,输入与输出形状相同,如下面代码所示,输出形状输出是1x3x3x1。
input = tf.constant([[[[1],[2],[ 3]], [[4],[5],[6 ]],[[ 7],[8],[9]]]],dtype=tf.float32)
filter = tf.constant([[[[1]],[[2]]],[[[ 3]],[[4]]]],dtype=tf.float32)op = tf.nn.conv2d(input,filter,strides = [1,1,1,1],padding ='SAME')
with tf.Session() as sess:sess.run(init)result = sess.run(op)print(result)结果是
[[[[ 37.][ 47.][ 21.]][[ 67.][ 77.][ 33.]][[ 23.][ 26.][ 9.]]]]
填充方式如图所示:
如果是2x2的图像,过滤器是3x3,padding=SAME,填充方式如图:
对于多通道来说,输入是[1x3x3x2]是3x3图像有2个通道,过滤器是[2x2x2x1],步长是1,padding=VALID,输出是[1x2x2x1],如图:
tf.nn.conv2d理解(带通道的卷积图片输出案例)相关推荐
- 【TensorFlow】tf.nn.conv2d是怎样实现卷积的?
int height_col= (height + 2 * pad_h - kernel_h) / stride_h + 1; int width_col = (width + 2 * pad_w - ...
- tf.nn.conv2d()方法
tf.nn.conv2d是用来实现卷积的方法 tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, name=Non ...
- conv2d 公式_TF-卷积函数 tf.nn.conv2d 介绍
转自 http://www.cnblogs.com/welhzh/p/6607581.html 下面是这位博主自己的翻译加上测试心得 tf.nn.conv2d是TensorFlow里面实现卷积的函数, ...
- TF-卷积函数 tf.nn.conv2d 介绍
tf.nn.conv2d是TensorFlow里面实现卷积的函数,参考文档对它的介绍并不是很详细,实际上这是搭建卷积神经网络比较核心的一个方法,非常重要 tf.nn.conv2d(input, fil ...
- 【TensorFlow】TensorFlow函数精讲之tf.nn.conv2d()
博客之星评选,谢谢您的支持!微信.qq五连击投票(无需关注.无需登录) 人工智能博士(投票链接):http://m234140.nofollow.ax.mvote.cn/opage/4fddfa73- ...
- TensorFlow基础篇(七)——tf.nn.conv2d()
tf.nn.conv2d是TensorFlow里面实现卷积的函数,是搭建卷积神经网络比较核心的一个方法. 函数格式: tf.nn.conv2d(input, filter, strides, padd ...
- 通俗理解tf.nn.conv2d() tf.nn.conv3d( )参数的含义 pytorhc 卷积
20210609 例如(3,3,(3,7,7))表示的是输入图像的通道数是3,输出图像的通道数是3,(3,7,7)表示过滤器每次处理3帧图像,卷积核的大小是3 x 7 x 7. https://blo ...
- 【TensorFlow】理解tf.nn.conv2d方法 ( 附代码详解注释 )
最近在研究学习TensorFlow,在做识别手写数字的demo时,遇到了tf.nn.conv2d这个方法,查阅了官网的API 发现讲得比较简略,还是没理解.google了一下,参考了网上一些朋友写得博 ...
- TensorFlow tf.nn.conv2d是怎样实现卷积的?
[TensorFlow]tf.nn.conv2d是怎样实现卷积的? 原文:http://blog.csdn.net/mao_xiao_feng/article/details/78004522 实验环 ...
最新文章
- ATP - UI 自动化测试用例管理平台搭建
- flask貌似html文件里只能用flask指定的路径格式,css文件里则可用相对路径
- sql的加减乘除运算_实现四则运算的一条sql语句
- 陈旸:清华博士的模型信仰
- Python程序输入一个字符串并查找总数的大写和小写字母
- layui根据name获取对象_layui表格行合并;解决侧边固定栏合并
- 【SQL Server中SMO的简单使用】 (装载)
- android ffmpeg 优点_在Android中使用FFmpeg(android studio环境)
- cmk聪明客机器人餐厅_晒晒我家85平新房,餐厅装修的太漂亮了,儿童房飘窗更实用!...
- python软件_Python软件的下载与安装
- 基于simulink的16QAM仿真模型
- 微信小程序中图表可视化
- java校园门禁刷脸系统,学校人脸识别门禁系统打造智慧校园
- 美国零售数据不及预期,非美延续反弹
- pythonweb项目微服务_python web微服务器端
- 《股票魔法师》第3-5章读书分享
- Django中如何使用Mysql数据库
- IC卡与ID卡的区别
- 六安市高考成绩查询入口2021,六安高考成绩查询入口
- HTTP中的301重定向和302暂重定向重定