【python编程】tensorflow1.x库常用语法
一、基本语法
- 从指定正态分布的数值中取出指定个数的值 .random_normal()
.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32,seed=None, name=None)
shape:输出张量形状,mean:正态分布的均值,stddev:正态分布的标准差,
seed:整数,设置后每次生成的随机数一样,name:操作的名称
- 声明tf变量 .Variable(initializer, name)
initializer初始化的参数,name:名称 - 变量初始化 Session中.run(tf.global_variables_initializer())
注:tf中变量声明后并未被赋值,需要在Session中调用初始化方法后才会被具体赋值。
eg:w = tf.Variable(tf.random_normal([2, 3]), name=’v’)
with tf.Session() as sess:
sess.run(tf.global_bariabbles_initializer())
sess.run(w) 或 sess.run(v)
CNN:
- 卷积层 .nn.con2d() 返回[batch, height, width, channels]
.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None,name=None)
input:需要做卷积的输入图像[batch, height, width, channels] ,
channels= 所需卷积核层数(如下图w0的三层),
filter:卷积核[height, width, in_channels, out_channels],
in_channels = input的channels out_channels =需要卷积核个数(如下图w1、w2),
strides:步长[1,1,1,1],
padding:”SAME”、”VALID”,
use_cudnn_on_gpu:cudnn加速
如下图,图片[7,7,3] 权重(卷积核)[3,3,3,2]
(转自:https://blog.****.net/qq_31779317)
- 池化层 .nn.max_pool() 返回[batch, height, width, channels]
.nn.max_pool(value, ksize, strides, padding, name=None)
value:需要做池化的输入图像 kszie:池化窗口大小[1, hetight, width,1],
不希望在batch、channels上做池化 strides:步长[1, stride, stride,1],
padding:”SAME”、”SAME”
- 减轻过拟合 .nn.dropout()
.nn.dropout(x, keep_prob, noise_shape=None, seed=None,name=None)
X:需要减轻过拟合的图像 keep_prob:保留结果的比例
- 线性运算 .nn.relu(a) 把a中<0=0 ,>0不变
eg:用于卷积.nn.relu(conv2d(x_data, W) + b)
- 矩阵相乘 .matmul(a,b) a*b
eg:用于全连接.nn.relu(tf.matmul((drop, W) + b))
- 相加运算 .add(a,b) a+b
- 平均值 .reduce_mean(a, axis)
axis:在哪个维度上求平均值
eg: a= [[1., 2.] [3., 4.]] .reduce_mean(a) -> 2.5
.reduce_mean(a, 0) -> [2., 3.]在第一维(列)
可用于损失函数等需要求平均值
- 返回最大值的索引 .aramax(a, axis)
- 对比是否相等 .equal(a, b)
- 变量类型转换 .cast(a, int864/float1664)
损失函数:
- 使用softmax计算交叉熵 .nn.softmax_cross_entropy_with_logits()
.nn.softmax_cross_entropy_with_logits(labels=None,logits=None,dim=-1,name=None)
labels:分类标签的概率,加起来需等于1
logits:神经网络最后一层的输出,如有batch它的大小就是[batchsize,num_classes],单样本的话,大小就是num_classes
优化器:
使用Adam优化器 .train.AdamOptimizer(learning_rate)
learning_rate:学习率
未完,持续更新…