tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, name=None)

第一个参数input:指需要做卷积的输入图像,它要求是一个Tensor,具有[batch, in_height, in_width, in_channels]这样的shape,具体含义是[训练时一个batch的图片数量, 图片高度, 图片宽度, 图像通道数],注意这是一个4维的Tensor,要求类型为float32和float64其中之一,其中图像通道数:比如rgb24图像,通道数为3

第二个参数filter:相当于CNN中的卷积核,它要求是一个Tensor,具有[filter_height, filter_width, in_channels, out_channels]这样的shape,具体含义是[卷积核的高度,卷积核的宽度,图像通道数,卷积核个数],要求类型与参数input相同,有一个地方需要注意,第三维in_channels,就是参数input的第四维

第三个参数strides:卷积时在图像每一维的步长,这是一个一维的向量,长度4

第四个参数padding:string类型的量,只能是"SAME","VALID"其中之一,这个值决定了不同的卷积方式(后面会介绍)

第五个参数:use_cudnn_on_gpu:bool类型,是否使用cudnn加速,默认为true

结果返回一个Tensor,这个输出,就是我们常说的feature map,shape仍然是[batch, height, width, channels]这种形式。
---------------------
举个例子:

input = tf.Variable(tf.random_normal([1,10,10,5]))
filter = tf.Variable(tf.random_normal([3,3,5,1]))op = tf.nn.conv2d(input,filter,strides=[1,1,1,1],padding ='VALID')
print(op)

输出:

strides参数因为只有两维,通常strides取[1,stride,stride,1]

修改为2试一下效果

input = tf.Variable(tf.random_normal([1,10,10,5]))
filter = tf.Variable(tf.random_normal([3,3,5,1]))op = tf.nn.conv2d(input,filter,strides=[1,2,1,1],padding ='VALID')
print(op)

输出:

*****************************上一个完整的卷积池化的例子**********************

import tensorflow as tf
import os
import numpy as np
import sys
import io
import cv2 as cvos.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
input = tf.Variable(tf.random_normal([1,28,28,1]))
filter = tf.Variable(tf.random_normal([5,5,1,32]))
filter2 = tf.Variable(tf.random_normal([5,5,32,64]))
op = tf.nn.conv2d(input,filter,strides=[1,1,1,1],padding ='SAME')
print(op)
op = tf.nn.max_pool(op,ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1],padding ='SAME')
print(op)
op = tf.nn.conv2d(op,filter2,strides=[1,1,1,1],padding ='SAME')
print(op)
op = tf.nn.max_pool(op,ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1],padding ='SAME')
print(op)

输出如下:

tensorflow之conv2d相关推荐

  1. TensorFlow之conv2d函数解析

    TensorFlow中函数conv2d主要实现了输入张量与设定卷积核的卷积操作,其函数形式如下: tf.nn.conv2d(input,filter,strides,padding,use_cudnn ...

  2. 【TensorFlow】conv2d函数参数解释以及padding理解

    卷积conv2d CNN在深度学习中有着举足轻重的地位,主要用于特征提取.在TensorFlow中涉及的函数是tf.nn.conv2d. tf.nn.conv2d(input, filter, str ...

  3. 【tensorflow】conv2d/conv3d/maxpool2d/maxpool3d

    近来需要做一个3DCNN的网络模型,就把tensorflow中2d和3d的卷积和最大池化的API整理了一下,以便加深印象. 1.2d卷积 1.1 原理 首先,上图说明卷积是如何操作的: 在第一幅图中, ...

  4. Tensorflow 1.x 和 Pytorch 中 Conv2d Padding的区别

    Tensorflow 和 Pytorch 中 Conv2d Padding的区别 Pytorch中Conv2d的Padding 可以是整数,二元组,字符串三种形式. 整数(int).如果输入的padd ...

  5. 【pytorch】nn.conv2d的使用

    官方文档在这里. conv2d具体不做介绍了,本篇只做pytorch的API使用介绍. torch.nn.Conv2d(in_channels, out_channels, kernel_size, ...

  6. 基于tensorflow的MNIST手写字识别

    一.卷积神经网络模型知识要点卷积卷积 1.卷积 2.池化 3.全连接 4.梯度下降法 5.softmax 本次就是用最简单的方法给大家讲解这些概念,因为具体的各种论文网上都有,连推导都有,所以本文主要 ...

  7. 用TensorFlow和TensorBoard从零开始构建ConvNet(CNN)

    更多深度文章,请关注:https://yq.aliyun.com/cloud 首先了解TensorBoard是什么?解开你心中的疑惑! 在本教程中,我将介绍如何使用TensorFlow,从头开始构建卷 ...

  8. 基于tensorflow的MNIST手写字识别(一)--白话卷积神经网络模型

    一.卷积神经网络模型知识要点卷积卷积 1.卷积 2.池化 3.全连接 4.梯度下降法 5.softmax 本次就是用最简单的方法给大家讲解这些概念,因为具体的各种论文网上都有,连推导都有,所以本文主要 ...

  9. TensorFlow第九步CNN BP算法学习

    花了两天时间,基本明白了CNN BP的算法. 可把conv看成局部全连接的堆砌,以全连接BP的思路推导. https://www.cnblogs.com/tornadomeet/p/3468450.h ...

最新文章

  1. air什么意思中文_Air译中文是什么意思,the air中文是什么意思
  2. 什么叫基于web的网站_什么叫响应式网站?响应式网站模板教程
  3. 【机器视觉】dev_update_on和dev_update_off算子
  4. UML之用例图(use case)箭头方向
  5. 如何利用python语言实现对象数组
  6. Web前端行业普遍底薪20K,还有项目提成,你达到了么?教你这一招
  7. 喜欢去知乎炸鱼?用python吧
  8. beast php,windows php-beast 安装
  9. 记一次微信数据库解密过程
  10. liunx安装Lamp
  11. 阉割版BeagleBone Black从SD卡运行Debain操作系统
  12. 小米无线网卡linux驱动下载,Linux下安装MT7601U无线网卡驱动
  13. 巴特沃斯、切比雪夫、贝塞尔滤波器详解:(区别,特点,电路图)
  14. python毕业设计作品基于django框架外卖点餐系统毕设成品(7)中期检查报告
  15. 月度计划之2012年10月中旬—11.15
  16. UA MATH564 概率论 概率不等式
  17. 最快Android模拟器Genymotion的安装与使用完整教程(多图,慎点)
  18. 苹果组建新团队自研无线芯片,欲摆脱第三方束缚!
  19. java List取随机几个数据的方法实现
  20. 管理工具导入CSV文件,中文数据乱码的解决办法。

热门文章

  1. 写给JAVA入门书作者们的一封信
  2. 为什么用Java——一个来自Python阵营的程序员告诉你
  3. 创建你自己的AngularJS -- 第一部分 Scopes(一)
  4. 一个优秀的 Node.js 开发者
  5. clob和blob是不是可以进行模糊查询_SQL简单查询语、运算符学习和练习
  6. Oracle、MySql、SQLServer 数据库分页查询语句
  7. linux 上传下载工具有哪些,Linux上传下载工具
  8. pythonclass的使用详情_python 类class基础简明笔记
  9. mysql innodb 缓存设置_数据库分享一: MySQL的Innodb缓存相关优化
  10. turtle库的学习