Tensorflow中2D卷积API使用
TF中用于2D卷积操作的api是tf.nn.conv_2d,源码位置位于tensorflow/python/ops/gen_nn_ops.py
接口定义为:
conv2d(input, filter, strides,padding, use_cudnn_on_gpu=True, data_format=‘NHWC’,name='None')
其中
input的shape是[batch, in_height, in_width, in_channels]
filter的shape是[filter_height, filter_width, in_channels, out_channels]
strides在的通常要写成[1, stride, stride, 1],也就是说第0个参数和第三个参数都是固定1,中间分别是x方向和y方向的步长,通常是一样的。
padding是一个字符串类型,有SAME和VALID两个取值。
返回的同样是一个tensor。
再说一下tf.nn.bias.add这个api
接口定义是:
bias_add(value, bias, data_format=None, name = None)
value是一个tensor,可以是float的,double,int32等等类型的,value可以是任意维度的tensor,但是value的最后一维的size要和bias相同,类型可以不一样,可以转化就可以例如int转double等。
例如在下面的代码中经过卷积操作之后,输入是28*28*1的单通道图像,输出编程了24*24*32的特征图,偏置也是32维的tensor,特征图i对应+bias[i],输出还是24*24*32。同一个特征图共享了卷积核的5*5个参数和1个bias参数,也就是说这里一共有(5*5+1)*32个参数。
#从mnist数据集中读数据,定义一个占位符先
x = tf.placeholder(tf.float32, [None, 28*28])
#将x reshape成一个4D的tensor, 分别是batch size, height, width,channel
x = x.reshape(x, shape=[-1, 28,28,1])
#这个变量是卷积核,卷积核大小是5*5,通道数1,卷积核格式32个
weight = tf.Variable(tf.random_normal([5,5,1,32]))
bias = tf.Variable(tf.random_normal([32]))
stride = 1
x = tf.nn.conv2d(x, weight, strides = [1, stride, stride, 1], padding= 'SAME')
#再加上偏置量
x = tf.nn.bias_add(x, bias)
通过上面的代码应该就可以很清楚的明白tensorflow中是如何做2维卷积的了。
另外一个用于实现2D卷积的API是tf.layers.conv2d,实际上和上面的这个API并没有太大区别,只是参数更多一些,使用的时候二者都可以。
后续再说一说CNN中的转置卷积(deconvolutional network)在tf中的api的使用,以及计算方式。
转载于:https://www.cnblogs.com/hellozlh/p/8251850.html
Tensorflow中2D卷积API使用相关推荐
- 【Tensorflow】Tensorflow中的卷积函数(conv2d、slim.conv2d、depthwise_conv2d、conv2d_transpose)
[fishing-pan:https://blog.csdn.net/u013921430 转载请注明出处] 前言 卷积是卷积神经网络中最主要.最重要的运算.想必大家最早接触卷积的概念就是在初高中 ...
- 如何使用TensorFlow中的Dataset API
翻译 | AI科技大本营 参与 | zzq 审校 | reason_W 本文已更新至TensorFlow1.5版本 我们知道,在TensorFlow中可以使用feed-dict的方式输入数据信息,但是 ...
- TensorFlow中padding卷积的两种方式“SAME”和“VALID”
最近在用tensorflow搭建卷积神经网络,遇到了一个比较棘手的问题,我一直理解的padding有两个值,一个是SAME,一个是VALID,如果padding设置为SAME,则说明输入图片大小和输出 ...
- 通过图+代码来理解tensorflow中反卷积
反卷积这个东西老是容易忘,而且很多文章理论讲的很详细,但反卷积实际怎么操作的却没有概念,因此想以自己喜欢的方式(直接上图和代码)写一篇,以便随时翻阅. 卷积 tf中的padding方式有两种,SAME ...
- tensorflow中转置卷积运算例子
import tensorflow as tf import numpy as np import tensorflow as keras from tensorflow.keras import l ...
- TensorFlow 中的 Conv2DOp
TensorFlow 中的2D 卷积主要依赖外部库,如 cuDNN.cuBLAS.ROCm 和 hfp/libxsmm,仅 DeepConv2D<CPUDevice, T> 为源码实现. ...
- Tensorflow中部分API弃用(tf.sub/tf.mul/tf.neg)
Tensorflow中废弃的API及替代 tf.mul , tf.sub , tf.neg 已经废弃 分别可用tf.multiply , tf.subtract , tf.negative ...
- CNN中的卷积核及TensorFlow中卷积的各种实现
声明: 1. 我和每一个应该看这篇博文的人一样,都是初学者,都是小菜鸟,我发布博文只是希望加深学习印象并与大家讨论. 2. 我不确定的地方用了"应该"二字 首先,通俗说一下,CNN ...
- Tensorflow中卷积的padding操作
上海站 | 高性能计算之GPU CUDA培训 4月13-15日 三天密集式学习 快速带你晋级 阅读全文 > 正文共975字,2张图,预计阅读时间3分钟. 之前一直对tensorflow的pad ...
最新文章
- redis java切片_jedis 单点配置
- Bootstrap 基本模板
- 【经典书】图论,322页pdf
- bzoj 2457 [BeiJing2011]双端队列 模拟+贪心
- Spring IOC之依赖
- c语言cin改scanf,我的代码用scanf输入wa了,改成cin就ac了 ?
- C++与QML信号交互(非Q_PROPERTY法)
- MUI组件:弹出层组件 - 案例篇
- java长时间_什么导致Java中长时间的旋转和同步时间?
- 两个一样的图像相除会怎么样_【壮凌自动化分析】一种动力电池生产中基于图像运动模糊的速度检测方法...
- 前端 CSS 变量简介及基本使用方法
- 微分比例控制与测速反馈控制
- 【Android安全】ActivityManager.isUserAMonkey API
- [转载] 之前碰过的木马分析
- html中搜索框提示语,请输入您要搜索的内容(自定义Win10搜索框提示语的技巧)...
- 2021中国医疗机器人产业创新大会参会指南
- 微信朋友圈内测版-无视权限
- 智学.com查成绩 html,智学.com查分数
- 为泰泽铺路, Intel宣布32nm Atom正式出货 规格详解
- 2021404209陈聪blog
热门文章
- centos非root用户创建用户_CentOS中用户和用户组管理
- ECharts的点击事件
- oracle书写高质量sql,干货!SQL性能优化,书写高质量SQL语句
- asp.net javascrip获取session的值_一篇文章搞定 Django Cookie 与 Session
- java框架ssm整合_SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)
- linux哪个命令可以切换工作目录?如何显示当前所在的目录,Linux cd命令:切换目录...
- python虚拟环境中文件分部_Python之虚拟环境管理
- win8.1 php mysql,win8.1(64位) apache2.4.3+php5.6.3+mysql5.6安装
- golang中文文档_Golang开发环境搭建
- ppp chap 加密摘要_“网络工程师培训”基础教程:一文读懂PPP协议