学习Tensorflow对遇到的函数的总结:(不断更新中)
目录
tf.reduce_mean、tf.reduce_max函数
tf.global_variables_initializer函数
tf.truncated_normal函数
功能:从截断的正态分布中输出随机值。
tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
-
shape:生成张量的维度
-
mean:均值
- stddev:标准差
- dtype: 输出的类型。
- seed: 一个整数,当设置之后,每次生成的随机数都一样。
- name: 操作的名字。
只保留[mean-2*stddev,mean+2*stddev]范围内的随机数,和一般的正太分布的产生随机数据比起来,这个函数产生的随机数与均值的差距不会超过两倍的标准差
tf.Variable函数
功能:定义图变量
tf.Variable.init(initial_value, trainable=True, collections=None, validate_shape=True, name=None)
只有第一个参数是必须的
参数名称 | 参数类型 | 含义 |
---|---|---|
initial_value | 所有可以转换为Tensor的类型 | 变量的初始值 |
trainable | bool | 如果为True,会把它加入到GraphKeys.TRAINABLE_VARIABLES,才能对它使用Optimizer |
collections | list | 指定该图变量的类型、默认为[GraphKeys.GLOBAL_VARIABLES] |
validate_shape | bool | 如果为False,则不进行类型和维度检查 |
name | string | 变量的名称,如果没有指定则系统会自动分配一个唯一的值 |
tf.nn.conv2d函数
功能:二维卷积函数
tf.nn.conv2d(input,filter,strides,padding,use_cudnn_on_gpu=None,name=None)
input:指需要做卷积的输入图像,它要求是一个Tensor,具有[batch, in_height, in_width, in_channels]这样的shape,具体含义是[训练时一个batch的图片数量, 图片高度, 图片宽度, 图像通道数],注意
这是一个4维的Tensor,要求类型为float32和float64其中之一。
-
filter:相当于CNN中的卷积核,
它要求是一个Tensor,具有
[filter_height, filter_width, in_channels, out_channels]这样的shape
,具体含义是[卷积核的高度,
],要求类型与参数input相同,有一个地方需要注意,第三维卷积核的宽度,图像通道数,卷积核个数
,就是参数input的第四维in_channels
-
strides:卷积时在图像每一维的步长,这是一个一维的向量,长度4 [1,1,1,1]通常只修改第二第三个参数,代表横向和纵向上移动的补偿
-
padding:string类型的量,只能是"SAME","VALID"其中之一,这个值决定了不同的卷积方式。使用SAME边缘将会补0 步长为1的话卷积后图像尺寸不变。
-
use_cudnn_on_gpu:bool类型,是否使用cudnn加速,默认为true
结果返回一个Tensor,这个输出,就是我们常说的feature map,shape仍然是[batch, height, width, channels]
这种形式
tf.placeholder函数
此函数可以理解为形参,用于定义过程,在执行的时候再赋具体的值功能:
tf.placeholder(dtype,shape=None,name=None)
-
dtype:数据类型。常用的是tf.float32,tf.float64等数值类型
-
shape:数据形状。默认是None,就是一维值,也可以是多维,比如[2,3], [None, 3]表示列是3,行不定
- name:名称。
tf.nn.max_pool_2*2函数
功能:最大池化
tf.nn.max_pool(value,kszie,strides,padding,name=None)
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]
这种形式
tf.constant函数
功能:生成一个给定值的常量
tf.constant(value, dtype=None, shape=None, name='Const', verify_shape=False)
-
value:初始值,必填,必须是一个张量(1或[1,2,3]或[[1,2,3],[2,2,3]]或......)参数可以是一个常量值,或者一个dtype类型的值列表。如果value为一个列表,那么这个列表的长度必须小于或等于shape参数所指定的大小(如果设置shape的话)。当列表长度小于shape参数所指定的大小时,缺少的列表项会被填充为列表的最后一个参数。
-
dtype:数据类型,选填,默认为value的数据类型,传入参数为tensorflow下的枚举值(float32,float64.......)
-
shape:数据形状,选填,默认为value的shape,设置时不得比value小,可以比value阶数、维度更高,超过部分按value提供最后一个数字填充
-
name:常量名,选填,默认值不重复,根据创建顺序为(Const,Const_1,Const_2.......)
-
verify_shape:是否验证value的shape和指定shape相符,若设为True则进行验证,不相符时会抛出异常
tf.nn.relu函数
功能:relu激活函数
tf.nn.relu(features, name=None)
-
features:特征图
- name:常量名,选填
tf.matmul()函数
功能:将矩阵a 乘于 矩阵b(矩阵乘法)
tf.matmul(a, b, transpose_a=False, transpose_b=False, adjoint_a=False, adjoint_b=False, a_is_sparse=False, b_is_sparse=False, name=None)
-
a: 一个类型为 float16, float32, float64, int32, complex64, complex128 且张量秩 > 1 的张量。
- b: 一个类型跟张量a相同的张量。
- transpose_a: 如果为真, a则在进行乘法计算前进行转置。
- transpose_b: 如果为真, b则在进行乘法计算前进行转置。
- adjoint_a: 如果为真, a则在进行乘法计算前进行共轭和转置。
- adjoint_b: 如果为真, b则在进行乘法计算前进行共轭和转置。
- a_is_sparse: 如果为真, a会被处理为稀疏矩阵。
- b_is_sparse: 如果为真, b会被处理为稀疏矩阵。
- name: 操作的名字(可选参数)
返回值:
一个跟张量a和张量b类型一样的张量且最内部矩阵是a和b中的相应矩阵的乘积。如果所有的转置或adjoint参数都为假,则公式为output[..., :, :] = a[..., :, :] * b[..., :, :]
tf.multiply函数
功能:矩阵点乘
tf.multiply(x, y, name=None)
- x:点乘的矩阵
- y:点乘的矩阵,要跟x的shape一样
- name:名称
tf.nn.dropout函数
功能:训练时随机丢弃一部分数据来减轻过拟合
dropout(x, keep_prob, noise_shape=None, seed=None, name=None)
-
x:输入的数据
- keep_prob:dropout概率
tf.nn.softmax函数
功能:Softmax回归,将logistic的预测二分类的概率的问题推广到了n分类的概率的问题。
(一种归一化的方式)
tf.nn.softmax(logits,axis=None,name=None, dim=None)
-
logits:一个非空张量,必须是以下类型之一:half, float32, float64
- axis:将被执行的softmax维度,默认值是-1,表示最后一个维度。
- name:操作的名称(可选)。
tf.reduce_mean、tf.reduce_max函数
功能:在tensor的某一维度上求和求最大值
tf.reduce_max(input_tensor, reduction_indices=None, keep_dims=False, name=None)
tf.reduce_mean(input_tensor, reduction_indices=None, keep_dims=False, name=None)
- input_tensor:待求值的tensor。
- reduction_indices:在哪一维上求解。
tf.cast函数
功能:转换输入类型
tf.cast(x,dtype,name=None)
-
x:输入
- dtype:转换目标类型
- name:名称,选题
返回:Tensor
tf.global_variables_initializer函数
功能:添加节点用于初始化所有的变量(GraphKeys.VARIABLES
)。返回一个初始化所有全局变量的操作(Op)。在你构建完整个模型并在会话中加载模型后,运行这个节点。
tf.global_variables_initializer()
tf.nn.l2_loss函数
功能:利用 L2 范数来计算张量的误差值,output = sum(t ** 2) / 2
tf.nn.l2_loss( t, name=None )
-
t:输入的张量
- name:名称,选填
tf.add_to_collection函数
功能:将张量添加到集合中
tf.add_to_collection(name,value)
- name:集合名
- value:被添加的张量
tf.nn.bias_add函数
功能:将偏差项bias加到value上
tf.nn.bias_add(value,bias,name=None)
- value:一个Tensor.数据类型必须是float,double.int32,int64,uint8,int16,int8或者complex64
- bias:一个一维的Tensor,数据维度和value的最后一维相同。数据类型必须和value相同
- name:可选,名称
返回一个Tensor,数据类型和value相同
tf.nn.lrn函数
功能:局部响应标准化
tf.nn.lrn(input, depth_radius=None, bias=None, alpha=None, beta=None,name=None)
- input:是一个4D的tensor,类型必须为float。
- depth_radius:一个类型为int的标量,表示包括的kernel的范围
- bias:偏置,默认为1
- alpha:乘积系数,是在计算完包括范围内的kernel的激活值之和之后再对其进行乘积,默认为1
- beta:指数系数,默认为0.5
- name:名称,可选
返回一个Tensor,数据类型和input相同
tf.contrib.layers.l1_regularizer函数
tf.contrib.layers.l1_regularizer(scale, scope=None)
功能:返回一个用来执行L1
正则化的函数,函数的签名是func(weights)
.
- scale: 正则项的系数.
- scope: 可选的
scope name
tf.contrib.layers.l2_regularizer函数
tf.contrib.layers.l2_regularizer(scale, scope=None)
功能:返回一个执行L2
正则化的函数.
- scale: 正则项的系数.
- scope: 可选的
scope name