TensorFlow 添加卷积层

简介: TensorFlow 添加卷积层
+关注继续查看

Tensorflow中提供了tf.nn.conv2dtf.layers.conv2d用于添加卷积层,两者功能类似,后者为更高一级的api,和keras.layer类似。前者的激活函数需要另外代码,后者的激活函数是一个参数,不需要另外代码。

1. tf.nn.conv2d

tf.nn.conv2d(
    input,
    filter,
    strides,
    padding,
    use_cudnn_on_gpu=True,
    data_format='NHWC',
    dilations=[1, 1, 1, 1],
    name=None
)
  • input: 指需要做卷积的输入图像(tensor),具有[batch,in_height,in_width,in_channels]这样的4维shape,分别是图片数量、图片高度、图片宽度、图片通道数,数据类型为float32或float64。
  • filter: 相当于CNN中的卷积核,它是一个tensor,shape是[filter_height,filter_width,in_channels,out_channels]:滤波器高度、宽度、图像通道数、滤波器个数,数据类型和input相同。
  • strides: 卷积在每一维的步长,一般为一个一维向量,长度为4,一般为[1,stride,stride,1],第一个stride为行步长,第二个为列步长。
  • padding:定义元素边框和元素内容之间的空间,只能是‘SAME’(边缘填充)或者‘VALID’(边缘不填充)。

返回Tensor.


2. 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=<tensorflow.python.ops.init_ops.Zeros object at 0x000002596A1FD898>, 
    kernel_regularizer=None,
    bias_regularizer=None, 
    activity_regularizer=None, 
    kernel_constraint=None, 
    bias_constraint=None, 
    trainable=True, 
    name=None,
    reuse=None)
  • inputs:Tensor 输入
  • filters:整数,表示输出空间的维数(即卷积过滤器的数量)
  • kernel_size:一个整数,或者包含了两个整数的元组/队列,表示卷积窗的高和宽。如果是一个整数,则宽高相等。
  • strides:一个整数,或者包含了两个整数的元组/队列,表示卷积的纵向和横向的步长。如果是一个整数,则横纵步长相等。另外, strides 不等于1 和 dilation_rate 不等于1 这两种情况不能同时存在。
  • padding:“valid” 或者 “same”(不区分大小写)
  • data_format:channels_last 或者 channels_first,表示输入维度的排序。
  • dilation_rate:一个整数,或者包含了两个整数的元组/队列,表示使用扩张卷积时的扩张率。如果是一个整数,则所有方向的扩张率相等。另外, strides 不等于1 和 dilation_rate 不等于1 这两种情况不能同时存在。
  • activation:激活函数。如果是None则为线性函数。
  • use_bias:Boolean类型,表示是否使用偏差向量。
  • kernel_initializer:卷积核的初始化。
  • bias_initializer:偏差向量的初始化。如果是None,则使用默认的初始值。
  • kernel_regularizer:卷积核的正则项
  • bias_regularizer:偏差向量的正则项
  • activity_regularizer:输出的正则函数
  • kernel_constraint:映射函数,当核被Optimizer更新后应用到核上。Optimizer 用来实现对权重矩阵的范数约束或者值约束。映射函数必须将未被影射的变量作为输入,且一定输出映射后的变量(有相同的大小)。做异步的分布式训练时,使用约束可能是不安全的。
  • bias_constraint:映射函数,当偏差向量被Optimizer更新后应用到偏差向量上。
  • trainable:Boolean类型。
  • name:字符串,层的名字。
  • reuse:Boolean类型,表示是否可以重复使用具有相同名字的前一层的权重。

返回Tensor.

相关文章
|
2月前
|
机器学习/深度学习 PyTorch TensorFlow
深度学习框架教程:介绍一些流行的深度学习框架 (如TensorFlow、PyTorch等)
深度学习框架教程:介绍一些流行的深度学习框架 (如TensorFlow、PyTorch等)
34 0
|
2月前
|
机器学习/深度学习 人工智能 TensorFlow
《深度学习初探:使用TensorFlow和Keras构建你的第一个神经网络》
《深度学习初探:使用TensorFlow和Keras构建你的第一个神经网络》
47 0
|
2月前
|
机器学习/深度学习 算法 TensorFlow
【深度学习】实验14 使用CNN完成MNIST手写体识别(TensorFlow)
【深度学习】实验14 使用CNN完成MNIST手写体识别(TensorFlow)
39 0
|
6月前
|
机器学习/深度学习 数据可视化 TensorFlow
TensorFlow利用卷积实现图像可视化
TensorFlow利用卷积实现图像可视化
58 0
|
7月前
|
TensorFlow 算法框架/工具
Tensorflow中常用的卷积函数
Tensorflow中常用的卷积函数
Tensorflow中常用的卷积函数
|
12月前
|
人工智能 TensorFlow 算法框架/工具
Tensorflow反卷积(DeConv)实现原理+手写python代码实现反卷积(DeConv)
Tensorflow反卷积(DeConv)实现原理+手写python代码实现反卷积(DeConv)
|
12月前
|
人工智能 移动开发 TensorFlow
Tensorflow卷积实现原理+手写python代码实现卷积
Tensorflow卷积实现原理+手写python代码实现卷积
|
机器学习/深度学习 TensorFlow 算法框架/工具
Tensorflow快餐教程(9) - 卷积
卷积的计算方法
2742 0
|
机器学习/深度学习 TensorFlow 算法框架/工具
卷积的发展历程,原理和基于 TensorFlow 的实现
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习、深度学习的知识! 稀疏交互 在生物学家休博尔和维瑟尔早期关于猫视觉皮层的研究中发现,视觉皮层中存在一些细胞对输入空间也就是图像中的子区域非常敏感,我们称为感受野。
1103 0
|
机器学习/深度学习 TensorFlow 算法框架/工具
tensorflow CNN 卷积神经网络中的卷积层和池化层的代码和效果图
tensorflow CNN 卷积神经网络中的卷积层和池化层的代码和效果图 因为很多 demo 都比较复杂,专门抽出这两个函数,写的 demo。
1024 0
热门文章
最新文章
相关产品
机器翻译
推荐文章
更多