TensorFlow-API
tf.constant
根据value的值,生成一个shape维度的张量常量
Define
1 | constant(value, dtype=None, shape=None, name='Const', verify_shape=False) |
Parameter
参数名 | 必须 | 类型 | 说明 |
---|---|---|---|
value | Y | 常量、list | 张量的值 |
dtype | N | dtype | 张量的元素类型 |
shape | N | 1维整型张量、array | 张量的维度 |
name | N | string | 张量的名称 |
verify_shape | N | boolean | 检测shape是否和value的shape一致。 若值为False,当不一致时,会用最后一个元素将shape补全 |
Demo
1 | import tensorflow as tf |
tf.placeholder
一种占位符,在执行时填入具体值
###Define
1 | placeholder(dtype, shape=None, name=None) |
Parameter
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
dtype | Y | dtype | 占位符的数据类型 |
shape | N | 1维整型张量、array | 占位符的维度 |
name | N | string | 占位符的名称 |
Demo
1 | import tensorflow as tf |
tf.nn.conv2d
卷积运算
Define
1 | conv2d(input, filter, strides, padding, |
Parameter
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
input | Y | tensor | 4维的tensor,即[batch, in_height, in_width, in_channels] (若input是图像,即[训练时一个batch的图片数量,图片高度,图片宽度,图片的通道数]) 类型需为float32、float64 |
filter | Y | tensor | 4维的tensor,即[filter_height, filter_width, in_channels, out_channels] (若input是图像,即[卷积核的高度,卷积核的宽度,图像通道数,卷积核个数]) filter的in_channels必须与input的in_channels相等 |
strides | Y | list | 长度为4的list,卷积时在input上每一维的步长,一般strides[0]=strides[3]=1 |
padding | Y | string | 卷积方式,只能为”SAME”、”VALID”其中之一。SAME:补全方式;VALID:丢弃方式 |
use_cudnn_on_gpu | N | boolean | 是否使用cudnn加速,默认为true |
data_format | N | string | 只能为”NHWC”、”NCHW”,默认”NHWC” |
Name | N | string | 运算名称 |
Demo
1 | import tensorflow as tf |
tf.nn.relu
激活函数
Define
1 | relu(features, name=None) |
Parameter
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
features | Y | tensor | float32、float64、int8、int16、int32、int64、uint8、unit16、half |
name | N | string | 运算名称 |
Demo
1 | import tensorflow as tf |
tf.nn.max_pool
池化
Define
1 | max_pool(value, ksize, strides, padding, |
Parameter
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
value | Y | tensor | 4维的张量,即[batch, height, width, channels],类型为tf.float32 |
ksize | Y | list | 池化窗口的大小,长度为4的list,一般是[1,height,width,1],因为不在batch和channels上做池化,所以第一个和最后一个维度为1 |
strides | Y | list | 池化窗口在每一个维度上的步长。一般strides[0]=strides[3]=1 |
padding | Y | string | 只能为”VALID”、”SAME”其中之一,这个值决定了不同的池化方式。VALID:丢弃方式;SAME:补全方式 |
data_format | N | string | 只能为”NHWC”、”NCHW”。默认”NHWC” |
name | N | string | 运算名称 |
Demo
1 | import tensorflow as tf |
tf.nn.dropout
丢弃函数。在训练过程中,按照一定概率将一部分神经网络单元暂时从网络中丢弃,相当于从原始网络中找到一个更瘦的网络
Define
1 | dropout(x, keep_prob, noise_shape=None, seed=None, name=None) |
Parameter
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
x | Y | tensor | x中keep_prob概率的元素,除以keep_prob。或者为0 |
keep_prob | Y | scalar | dropout的概率,一般先用占位符 |
noise_shape | N | tensor | 默认情况下,每个元素是否dropout是相互独立的。 如果noise_shape[i]==shape(x)[i],该维度元素相互独立; 如果noise_shape[i]!=shape(x)[i],该维度元素不相互独立,即要么一起dropout,要么一起保留 |
seed | N | 数值 | 如果指定该值,每次dropout结果相同 |
name | N | string | 运算名称 |
Demo
1 | import tensorflow as tf |
tf.nn.sigmoid_cross_entropy_with_logits
计算交叉熵函数。先对 logits 进行 sigmoid 计算,再计算交叉熵
交叉熵:Loss函数的一种。常见的Loss函数为均方平方差;
sigmoid:激活函数的一种;
另外除了tf.nn.sigmoid_cross_entropy_with_logits以外,还有
tf.nn.softmax_cross_entropy_with_logits(参数logits必须为未经缩放的,函数中会对logits进行sigmoid运算)
tf.nn.sparse_softmax_cross_entropy_with_logits
tf.nn.weighted_cross_entropy_with_logits三种交叉熵函数
Define
1 | sigmoid_cross_entropy_with_logits(_sentinel=None, labels=None, logits=None, name=None) |
Parameter
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
_sentinel | N | None | 一般不使用 |
logits | N | tensor | float32、float64 |
labels | N | tensor | shape与logits相同 |
name | N | string | 运算名称 |
Demo
1 | import tensorflow as tf |
该函数返回值是一个向量,并不是一个数。
如果要求交叉熵,需要进一步做tf.reduce_sum操作,即对向量里所有元素求和;
如果要求Loss(常见),需要进一步做tf.reduce_mean操作,对向量求平均值;
tf.nn.bias_add
将偏差项 bias 加到 value 上面,可以看做是 tf.add 的一个特例。其中 bias 必须是一维的,并且维度和 value 的最后一维相同,数据类型必须和 value 相同
Define
1 | bias_add(value, bias, data_format=None, name=None) |
Parameter
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
value | Y | tensor | Float、double、int64、int32、int16、int8、uint8、complex64、complex128 |
bias | Y | 1维tensor | 维度必须和value最后一维维度相等 |
data_format | N | string | 支持”NHWC”、”NCHW” |
name | N | string | 运算名称 |
Demo
1 | import tensorflow as tf |
tf.truncated_normal
在截断的正态分布中输出随机数,取值范围[ mean - 2 * stddev, mean + 2 * stddev ]
Define
1 | truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None) |
Parameter
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
shape | Y | 1维整型张量、array | 输出张量的维度 |
mean | N | 0维张量、数值 | 均值 |
stddev | N | 0维张量、数值 | 标准差 |
dtype | N | dtype | 输出类型 |
seed | N | 数值 | 随机种子,若seed复制,每次产生相同随机数 |
name | N | string | 运算名称 |
Demo
1 | import tensorflow as tf |
tf.reduce_mean
计算张量input_tensor的平均值
Define
1 | reduce_mean(input_tensor, axis=None, keep_dims=False, name=None, reduction_indices=None) |
Parameter
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
input_tensor | Y | 张量 | 待求平均值的张量 |
axis | N | None、0、1 | None:全局球平均值 0:求每一列平均值 1:求每一行平均值 |
keep_dims | N | boolean | 保留原来的维度(例如不会从二维矩阵降为一维) |
name | N | string | 运算名称 |
reduction_indices | N | None | 和axis等价,已弃用 |
Demo
1 | import tensorflow as tf |
tf.square
计算张量对应元素的平方
Define
1 | square(x, name=None) |
Parameter
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
x | Y | tensor | half、float32、float64、int32、int64、complex64、complex128 |
name | N | string | 运算名称 |
Demo
1 | import tensorflow as tf |
tf.squared_difference
计算张量x、y对应元素差平方
Define
1 | squared_difference(x, y, name=None) |
Parameter
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
x | Y | tensor | half、float32、float64、int32、int64、complex64、complex128 |
y | Y | tensor | half、float32、float64、int32、int64、complex64、complex128 |
name | N | string | 运算名称 |
Demo
1 | import tensorflow as tf |
tf.Variable
类,维护图在执行过程中的状态信息,例如神经网络权重值的变化
Define
1 | __init__(initial_value=None, trainable=True, collections=None, validate_shape=True, |
Parameter
参数名 | 类型 | 说明 |
---|---|---|
initial_value | tensor | Variable类的初始值。这个张量必须制定shape信息,否则后面validate_shape需设为False |
trainable | boolean | 是否把变量添加到 GraphKeys.TRAINABLE_VARIABLES中。 ( collection 是一种全局存储,不受变量名生存空间影响,一处保存,到处可取) |
collections | Graph collections | 全局存储,默认是 GraphKeys.GLOBAL_VARIABLES |
validate_shape | boolean | 是否允许被位置维度的initial_value初始化 |
caching_device | string | 指明哪个device用来缓存变量 |
name | string | 变量名 |
dtype | dtype | 如果设置,初始化的值按照该类型初始化 |
expected_shape | tensorShape | 要是设置了,那么初始的值会是这种维度 |
Demo
1 | import tensorflow as tf |