1.
tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
从截断的正态分布中输出随机值。
生成的值服从具有指定平均值和标准偏差的正态分布,如果生成的值大于平均值2个标准偏差的值则丢弃重新选择。
横轴区间(μ-σ,μ+σ)内的面积为68.268949%。
横轴区间(μ-2σ,μ+2σ)内的面积为95.449974%。
横轴区间(μ-3σ,μ+3σ)内的面积为99.730020%。
X落在(μ-3σ,μ+3σ)以外的概率小于千分之三,在实际问题中常认为相应的事件是不会发生的,基本上可以把区间(μ-3σ,μ+3σ)看作是随机变量X实际可能的取值区间,这称之为正态分布的“3σ”原则。
在tf.truncated_normal中如果x的取值在区间(μ-2σ,μ+2σ)之外则重新进行选择。这样保证了生成的值都在均值附近。
参数:
- shape: 一维的张量,也是输出的张量。
- mean: 正态分布的均值。
- stddev: 正态分布的标准差。
- dtype: 输出的类型。
- seed: 一个整数,当设置之后,每次生成的随机数都一样。
- name: 操作的名字。
2.
tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, data_format=None, name=None)
给定四维的input
和filter
tensor,计算一个二维卷积
参数:
input
: ATensor
. type必须是以下几种类型之一:half
,float32
,float64
.
filter
: ATensor
. type和input
必须相同
strides
: A list ofints
.一维,长度4, 在input
上切片采样时,每个方向上的滑窗步长,必须和format指定的维度同阶
padding
: Astring
from:"SAME", "VALID"
. padding 算法的类型
use_cudnn_on_gpu
: An optionalbool
. Defaults toTrue
.
data_format
: An optionalstring
from:"NHWC", "NCHW"
, 默认为"NHWC"
。
- 指定输入输出数据格式,默认格式为"NHWC", 数据按这样的顺序存储:
[batch, in_height, in_width, in_channels]
- 也可以用这种方式:"NCHW", 数据按这样的顺序存储:
[batch, in_channels, in_height, in_width]
name
: 操作名,可选.
3.
tf.nn.max_pool(value, ksize, strides, padding, name=None)
Args | Annotation |
---|---|
第一个参数value | 需要池化的输入,一般池化层接在卷积层后面,所以输入通常是feature map,依然是[batch, height, width, channels]这样的shape |
第二个参数ksize | 池化窗口的大小,取一个四维向量,一般是[1, height, width, 1],因为我们不想在batch和channels上做池化,所以这两个维度设为了1 |
第三个参数strides | 和卷积类似,窗口在每一个维度上滑动的步长,一般也是[1, stride,stride, 1] |
第四个参数padding | 和卷积类似,可以取’VALID’ 或者’SAME’. 返回一个Tensor,类型不变,shape仍然是[batch, height, width, channels]这种形式. padding=’VALID’时,无自动填充。padding=’SAME’时,自动填充,池化后保持shape不变。 |