1、tf.nn.relu(features, name = None)
这个函数的作用是计算激活函数 relu,即 max(features, 0)。将大于0的保持不变,小于0的数置为0。
import tensorflow as tf
a = tf.constant([-1.0, 2.0])
with tf.Session() as sess:
b = tf.nn.relu(a)
print sess.run(b)
# 以上程序输出的结果是:[0. ,2.]
2、tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, data_format=None,name=None)
在 TensorFlow 中添加一个卷积层,参数说明如下:
- 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相同,有一个地方需要注意,第三维in_channels,就是参数input的第四维。
- strides:卷积时在图像每一维的步长,这是一个一维的向量,长度4。
- padding:可选字符串为 SAME、VALID。要使用的填充算法的类型。SAME允许卷积核移动到图像边缘,VALID不允许
- use_cudnn_on_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:操作的名称(可选)。
3、tf.nn.max_pool(value, ksize, strides, padding, name=None)
最大池化,参数说明如下:
- value:形状为 [batch,height,width,channels] 和类型是 tf.float32 的四维张量。
- ksize:长度 >=4 的整数列表。输入张量的每个维度的窗口大小,一般是[1, height, width, 1]
- strides:长度 >=4 的整数列表。输入张量的每个维度的滑动窗口的步幅,窗口在每一个维度上滑动的步长,一般也是[1, stride,stride, 1]
- padding:一个字符串,可以是 VALID 或 SAME。
- data_format:一个字符串,支持 NHWC 和 NCHW。
- name:操作的可选名称。
4、tf.argmax(input, axis=None, name=None, dimension=None)
此函数是对矩阵按行或列计算最大值,
参数如下:
input:输入Tensor
axis:0表示按列,1表示按行
name:名称
dimension:和axis功能一样,默认axis取值优先。新加的字段
返回:Tensor 行或列的最大值下标向量
5、tf.equal(a, b)
此函数比较等维度的a, b矩阵相应位置的元素是否相等,相等返回True,否则为False
返回:同维度的矩阵,元素值为True或False
6、
tf.cast(x, dtype, name=None)
将x的数据格式转化成dtype.例如,原来x的数据格式是
bool
,
那么将其转化成
float
以后,就能够将其转化成0和1的序列。反之也可以
7、
tf.reduce_max(input_tensor, reduction_indices=None,
keep_dims=False, name=None)
功能:求某维度的最大值
8、tf.reduce_mean(input_tensor, reduction_indices=None,
keep_dims=False, name=None)
功能:求某维度的均值
参数1--input_tensor:待求值的tensor。
参数2--reduction_indices:在哪一维上求解。0表示按列,1表示按行
参数(3)(4)可忽略
例:
x = tf.constant([[1,2],[3,4]],
"float"
)
tf.reduce_mean(x) = 2.5
tf.reduce_mean(x, 0) = [2, 3]
tf.reduce_mean(x, 1) = [1.5, 3.5]
9、
tf.truncated_normal(shape, mean=0.0, stddev=1.0,
dtype=tf.float32, seed=None, name=None)
从截断的正态分布中输出随机值
shape: 输出的张量的维度尺寸。
mean: 正态分布的均值。
stddev: 正态分布的标准差。
dtype: 输出的类型。
seed: 一个整数,当设置之后,每次生成的随机数都一样。
name: 操作的名字。
tf.random_normal(shape, mean=0.0, stddev=1.0,
dtype=tf.float32, seed=None, name=None)
从标准正态分布中输出随机值
11、
tf.reshape(tensor, shape, name=None)
函数的作用是将tensor变换为参数shape的形式。其中shape为一个列表形式,特殊的一点是列表中可以存在-1。-1代表的含义是不用我
们自己指定这一维的大小,函数会自动计算,但列表中只能存在一个-1。(当然如果存在多个-1,就是一个存在多解的方程了)
12、
tf.nn.dropout(x, keep_prob, noise_shape=None, seed=None,name=None)
为了减少过拟合,随机扔掉一些神经元,这些神经元不参与权重的更新和运算
参数:
x: 输入tensor
keep_prob:
float
类型,每个元素被保留下来的概率
noise_shape: 一个1维的int32张量,代表了随机产生“保留/丢弃”标志的shape。
seed: 整形变量,随机数种子。
name: 名字,没啥用。