博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tensorflow学习笔记
阅读量:6817 次
发布时间:2019-06-26

本文共 2742 字,大约阅读时间需要 9 分钟。

 

在tf1.0中,对卷积层重新进行了封装,比原来版本的卷积层有了很大的简化。

一、旧版本(1.0以下)的卷积函数:tf.nn.conv2d

conv2d(    input,    filter,    strides,    padding,    use_cudnn_on_gpu=None,    data_format=None,    name=None)

该函数定义在tensorflow/python/ops/gen_nn_ops.py

参数:

  • input一个4维Tensor(N,H,W,C). 类型必须是以下几种类型之一: halffloat32float64.
  • filter卷积核. 类型和input必须相同,4维tensor, [filter_height, filter_width, in_channels, out_channels],如[5,5,3,32]
  • strides:  在input上切片采样时,每个方向上的滑窗步长,必须和format指定的维度同阶,如[1, 2, 2, 1]
  • padding: 指定边缘填充类型: "SAME", "VALID". SAME表示卷积后图片保持不变,VALID则会缩小。
  • use_cudnn_on_gpu: 可选项,bool型。表示是否在GPU上用cudnn进行加速,默认为True.
  • data_format: 可选项,指定输入数据的格式: "NHWC"或 "NCHW", 默认为"NHWC"
    NHWC格式指[batch, in_height, in_width, in_channels]
    NCHW格式指[batch, in_channels, in_height, in_width]
  • name: 操作名,可选.
示例:
conv1=tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')

 

二、1.0版本中的卷积函数:tf.layers.conv2d

conv2d(    inputs,    filters,    kernel_size,    strides=(1, 1),    padding='valid',    data_format='channels_last',    dilation_rate=(1, 1),    activation=None,    use_bias=True,    kernel_initializer=None,    bias_initializer=tf.zeros_initializer(),    kernel_regularizer=None,    bias_regularizer=None,    activity_regularizer=None,    trainable=True,    name=None,    reuse=None)

定义在.

参数多了很多,但实际用起来,却更简单。

  • inputs: 输入数据,4维tensor.
  • filters: 卷积核个数。
  • kernel_size:卷积核大小,如【5,5】。如果长宽相等,也可以直接设置为一个数,如kernel_size=5
  • strides: 卷积过程中的滑动步长,默认为[1,1]. 也可以直接设置为一个数,如strides=2
  • padding: 边缘填充,'same' 和'valid‘选其一。默认为valid
  • data_format: 输入数据格式,默认为channels_last ,即 (batch, height, width, channels),也可以设置为channels_first 对应 (batch, channels, height, width).

  • dilation_rate: 微步长卷积,这个比较复杂一些,请百度.

  • activation: 激活函数.
  • use_bias: Boolean型,是否使用偏置项.
  • kernel_initializer: 卷积核的初始化器.
  • bias_initializer: 偏置项的初始化器,默认初始化为0.
  • kernel_regularizer: 卷积核化的正则化,可选.
  • bias_regularizer: 偏置项的正则化,可选.
  • activity_regularizer: 输出的正则化函数.
  • trainable: Boolean型,表明该层的参数是否参与训练。如果为真则变量加入到图集合中 GraphKeys.TRAINABLE_VARIABLES (see tf.Variable).
  • name: 层的名字.
  • reuse: Boolean型, 是否重复使用参数.
示例:
conv1=tf.layers.conv2d(      inputs=x,      filters=32,      kernel_size=5,      padding="same",      activation=tf.nn.relu,       kernel_initializer=tf.TruncatedNormal(stddev=0.01))

更复杂一点的:

conv1 = tf.layers.conv2d(batch_images,                          filters=64,                         kernel_size=7,                         strides=2,                         activation=tf.nn.relu,                         kernel_initializer=tf.TruncatedNormal(stddev=0.01)                         bias_initializer=tf.Constant(0.1),                         kernel_regularizer=tf.contrib.layers.l2_regularizer(0.003),                         bias_regularizer=tf.contrib.layers.l2_regularizer(0.003),                         name='conv1')

转载于:https://www.cnblogs.com/auvxx/p/9817106.html

你可能感兴趣的文章
Vbird的Linux私房菜学习笔记之正则表达式-特殊字符
查看>>
数据的作用域
查看>>
js中括号用于自执行测试
查看>>
ssh 公钥 密钥
查看>>
c#设计模式-单例模式
查看>>
Ehcache web cahce 缓存改良版
查看>>
F5集群配置公共irule,解决X-Frame-Options漏洞及host头漏洞
查看>>
mysql 创建日期列之timestamp
查看>>
VMM系列之使用VMM服务器构建 Hyper-V主机(4)
查看>>
详测 Generics Collections TList (7): Items、Contains
查看>>
配置FTP服务器(2) 本地用户下载和上传
查看>>
多线程编程(11) - 多线程同步之 Mutex (互斥对象)[续]
查看>>
【Java每日一题】20161214
查看>>
requireJs 模块化简陋版本
查看>>
我的友情链接
查看>>
How to upgrade vim to version 8 on CentOS 7
查看>>
xcode pod 报import 找不到 pods的支持问题解决方法之一
查看>>
nginx配置让任何文件在浏览器中显示文本text/plain
查看>>
思科路由器×××配置-- 动态 site-to-site ×××(上)
查看>>
Visual Studio统计有效代码行数
查看>>