tensorflow之神经网络层:AveragePooling2D、average_pooling2d、Conv2D和conv2d

微信公众号:数据挖掘与分析学习

1. tf.layers.Conv2D

Class Conv2D:2D卷积层,如图像上的空间卷积

该层创建卷积核,该卷积核与层的输入卷积(实际上是交叉相关)以产生输出张量。 如果use_bias为True(并且提供了bias_initializer),则会创建偏置向量并将其添加到输出。 最后,如果激活函数不是None,它也会应用于输出。

参数:

  • filters:整数,输出空间的维度。例如,卷积中filter的数量。
  • kernel_size:一个整数或一个两个整数的tuple/list,指定二维卷积窗口的高和宽。也可以是一个整数为所有的空间维度指定同样的值。
  • strides:一个整数或一个两个整数的tuple/list,指定沿着高和宽的卷积的步幅。也可以是一个整数为所有的空间维度指定同样的值。指定任何!=1的步幅值与指定任何dilation_rate值!=1不相容
  • padding:”valid”或者”same”
  • data_format:一个字符串,channels_last(默认)或channels_first中的一个,输入中维度的排序,channels_last对应于具有形状(batch,height, width, channels)的输入,而channels_first对应于具有形状(batch, channels, height,width)的输入。
  • dilation_rate:一个整数或一个两个整数的tuple/list,指定用于扩张的卷积的扩张率。也可以是一个整数为所有的空间维度指定同样的值。指定任何!=1的步幅值与指定任何dilation_rate值!=1不相容
  • activation:激活函数,将其设置为None则是线性函数
  • use_bias:Boolean,表示是否使用偏置
  • kernel_initializer:卷积核的初始化器
  • bias_initializer:偏置向量的初始化器,如果为None,则使用默认的初始化器
  • kernel_regularizer:用于卷积核的可选正则化器。
  • bias_regularizer:用于偏置向量的可选正则化器。
  • activity_regularizer:用于输出的可选正则化函数
  • kernel_constraint:在由优化器更新之后应用于内核的可选投影函数(例如,用于实现层权重的范数约束或值约束)。 该函数必须将未投影的变量作为输入,并且必须返回投影变量(必须具有相同的形状)。 在进行异步分布式训练时,使用约束是不安全的。
  • bias_constraint:可选的投影功能,在优化器进行更新后应用于偏差。
  • trainable:Boolean,如果为Ture将变量添加到图集合GraphKeys.TRAINABLE_VARIABLES中。
  • name:层的名称。

代码示例:

x=tf.Variable(tf.random_normal([10,28,28,3])) #[batch_szie,height,weight,channel]

conv2D=tf.layers.Conv2D(filters=64,kernel_size=[2,2],strides=1,padding='SAME')

print(conv2D(x))

conv2D=tf.layers.Conv2D(filters=64,kernel_size=[2,2],strides=2)

print(conv2D(x))

输出:

Tensor("conv2d_16/BiasAdd:0", shape=(10, 28, 28, 64), dtype=float32)

Tensor("conv2d_17/BiasAdd:0", shape=(10, 14, 14, 64), dtype=float32)

2. tf.layers.conv2d

参数和作用同Conv2D类。

tf.layers.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,

    kernel_constraint=None,

    bias_constraint=None,

    trainable=True,

    name=None,

    reuse=None

)

print(tf.layers.conv2d(x,filters=64,kernel_size=[2,2],strides=1,padding='SAME'))

3. tf.layers.AveragePooling2D

Class AveragePooling2D:针对2D输入的平均池化层

参数:

  • pool_size:一个整数或者2个整数的元组/列表:(pool_height,pool_width),指定池化窗口的大小。 可以是单个整数,以为所有空间维度指定相同值。
  • strides:一个整数或者2个整数的元组/列表,指定池操作的步幅。 可以是单个整数,以为所有空间维度指定相同值。
  • padding:字符串,“valid”或者”same”
  • data_format:一个字符串,channels_last(默认)或channels_first中的一个,输入中维度的排序,channels_last对应于具有形状(batch,height, width, channels)的输入,而channels_first对应于具有形状(batch, channels, height,width)的输入。
  • name:层的名称。

ave_pool2D=tf.layers.AveragePooling2D(pool_size=[2,2],strides=[2,1],padding='SAME')

print(ave_pool2D(x))

ave_pool2D=tf.layers.AveragePooling2D(pool_size=[2,2],strides=[2,2],padding='SAME')

print(ave_pool2D(x))

输出:

Tensor("average_pooling2d_4/AvgPool:0", shape=(10, 14, 28, 3), dtype=float32)

Tensor("average_pooling2d_5/AvgPool:0", shape=(10, 14, 14, 3), dtype=float32)

4. tf.layers.average_pooling2d

tf.layers.average_pooling2d(

    inputs,

    pool_size,

    strides,

    padding='valid',

    data_format='channels_last',

    name=None

)

参数:

inputs:输入的张量

其它参数同AveragePooling2D类。

作用与AveragePooling2D一样。

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值