1.函数:
tf.placeholder(
dtype,
shape=None,
name=None
)
参数:
dtype:数据类型。常用的是tf.float32,tf.float64等数值类型
shape:数据形状。默认是None,就是一维值,也可以是多维(比如[2,3], [None, 3]表示列是3,行不定)
name:名称
释义:
占位
作用:
Tensorflow的设计理念称之为计算流图,在编写程序时,首先构筑整个系统的graph,代码并不会直接生效,这一点和python的其他数值计算库(如Numpy等)不同,graph为静态的,类似于docker中的镜像。然后,在实际的运行时,启动一个session,程序才会真正的运行。这样做的好处就是:避免反复地切换底层程序实际运行的上下文,tensorflow帮你优化整个系统的代码。我们知道,很多python程序的底层为C语言或者其他语言,执行一行脚本,就要切换一次,是有成本的,tensorflow通过计算流图的方式,帮你优化整个session需要执行的代码,还是很有优势的。
所以placeholder()函数是在神经网络构建graph的时候在模型中的占位,此时并没有把要输入的数据传入模型,它只会分配必要的内存。等建立session,在会话中,运行模型的时候通过feed_dict()函数向占位符喂入数据。
转载:
2.函数:
tf.reshape(
tensor,
shape,
name=None
)
释义:
将张量 tensor 的形状改为 shape,shape为一个列表。
注意:
shape 设置为 -1 的位置,表示函数自动进行计算这一维的大小,只能存在一个 -1。
3.函数:
tf.truncated_normal(
shape,
mean,
stddev
)
释义:
截断的产生正态分布的随机数,即随机数与均值的差值若大于两倍的标准差,则重新生成。
参数:
shape,生成张量的维度
mean,均值
stddev,标准差
4.函数:
tf.Variable(
initializer,
name
)
参数:
initializer,初始化参数,可以有tf.random_normal,tf.constant,tf.constant等
name,变量的名字
释义:
保存和更新神经网络中的参数。
5.函数:
tf.nn.conv2d (
input,
filter,
strides,
padding,
use_cudnn_on_gpu=None,
data_format=None,
name=None
)
参数:
a.input : 输入的要做卷积的图片,要求为一个张量,
shape: [ batch, in_height, in_weight, in_channel ],其中batch为图片的数量,in_height 为图片高度,in_weight 为图片宽度,in_channel 为图片的通道数,灰度图该值为1,彩色图为3。
b.filter: 卷积核,要求也是一个张量,shape为 [ filter_height, filter_weight, in_channel, out_channels ],其中 filter_height 为卷积核高度,filter_weight 为卷积核宽度,in_channel 是图像通道数 ,和 input 的 in_channel 要保持一致,out_channel 是卷积核个数。
c.strides: 卷积时在图像每一维的步长,这是一个一维的向量,[ 1, strides, strides, 1],第一位和最后一位固定必须是1。(代表步长,其值可以直接默认一个数,也可以是一个四维数如[1,2,1,1],则其意思是水平方向卷积步长为第二个参数2,垂直方向步长为1.)
d.padding: string类型,值为“SAME” 和 “VALID”,表示的是卷积的形式,是否考虑边界。”SAME”是考虑边界,不足的时候用0去填充周围,”VALID”则不考虑
e.use_cudnn_on_gpu: bool类型,是否使用cudnn加速,默认为true
释义:
卷积操作
6.函数:
tf.nn.relu(
tensor,
weights
)
释义:
激活函数
作用:
将大于0的数保持不变,小于0的数置为0。
7.函数:
tf.nn.dropout(
x,
keep_prob,
noise_shape=None,
seed=None,
name=None
)
参数:
x:输入,一般为全连接网络的输入
keep_prob:float类型,设置神经元(元素)被选中的概率,在初始化时keep_prob是一个占位符, keep_prob = tf.placeholder(tf.float32) 。tensorflow在run时设置keep_prob具体的值。
noise_shape : 一个1维的int32张量,代表了随机产生“保留/丢弃”标志的shape。
seed : 整形变量,随机数种子。
name:指定该操作的名字
注意:
train的时候才是dropout起作用的时候,设置0<keep_prob<1,
dev和test的时候不应该让dropout起作用,设置 keep_prob=1.0
作用:
一般用在全连接层,为了防止或减轻过拟合而使用的函数。
8.函数:
tf.matmul(A,B)
释义:
矩阵相乘
9.函数:
reduce_mean(input_tensor,
axis=None,
keep_dims=False,
name=None,
reduction_indices=None)
参数:
input_tensor: 输入的待降维的tensor;
axis: 指定的轴,如果不指定,则计算所有元素的均值;
keep_dims:是否降维度,设置为True,输出的结果保持输入tensor的形状,设置为False,输出结果会降低维度;
name: 操作的名称;
reduction_indices:在以前版本中用来指定轴,已弃用;
释义:
计算张量tensor沿着指定的数轴(tensor的某一维度)上的的平均值,主要用作降维或者计算tensor(图像)的平均值。
10.函数
tf.nn.softmax_cross_entropy_with_logits(
logits,
labels,
name=None
)
参数:
logits:就是神经网络最后一层的输出,如果有batch的话,它的大小就是[batchsize,num_classes],单样本的话,大小就是num_classes
labels:实际的标签,大小同上
11.函数:
tf.train.AdamOptimizer
参数:
learning_rate:张量或浮点值。学习速率
beta1:一个浮点值或一个常量浮点张量。一阶矩估计的指数衰减率
beta2:一个浮点值或一个常量浮点张量。二阶矩估计的指数衰减率
epsilon:数值稳定性的一个小常数
use_locking:如果True,要使用lock进行更新操作
name:应用梯度时为了创建操作的可选名称。默认为“Adam”
释义:
是一个寻找全局最优点的优化算法,引入了二次方梯度校正
12.函数:
tf.argmax(
input,
axis=None,
name=None,
dimension=None,
output_type=tf.int64
)
参数:
input:输入矩阵
axis:默认为None
axis=0:按列寻找最大值
axis=1:按行寻找最大值
name:默认为None
dimension:默认为None
output_type:默认类型为int64
释义:
返回最大的那个数值所在的下标(第一个参数是矩阵,第二个参数是0或者1。0表示的是按列比较返回最大值的索引,1表示按行比较返回最大值的索引)
input为向量时,返回最大数值的索引;
input为矩阵时,返回每一行或每一列最大数值的矩阵。
13.函数:
tf.equal(
x, y
)
释义:
判断x, y是否相等,相等返回true,不相等false
14.函数:
tf.cast(
x,
dtype,
name=None
)
参数:
x,输入张量
dtype,转换数据类型
name,名称
释义:
数据类型转换
15.函数:
tf.train.Saver()
释义:
saver = tf.train.Saver()
saver.save(sess, ‘路径 + 模型文件名’)
保存和加载模型
16.函数:
tf.global_variables_initializer()
释义:
含有tf.Variable的环境下,因为tf中建立的变量是没有初始化的,也就是在debug时还不是一个tensor量,而是一个Variable变量类型
19.函数:
Tensor.eval()
参数:
在一个Seesion里面“评估”tensor的值(其实就是计算),首先执行之前的所有必要的操作来产生这个计算这个tensor需要的输入,然后通过这些输入产生这个tensor。在激发tensor.eval()这个函数之前,tensor的图必须已经投入到session里面,或者一个默认的session是有效的,或者显式指定session.
feed_dict:一个字典,用来表示tensor被feed的值(联系placeholder一起看)
session:(可选) 用来计算(evaluate)这个tensor的session.要是没有指定的话,那么就会使用默认的session。
释义:
eval() 其实就是tf.Tensor的Session.run() 的另外一种写法
20.函数:
tensor.eval()
释义:
eval() 其实就是tf.Tensor的Session.run() 的另外一种写法
注意:
每次使用 eval 和 run时,都会执行整个计算图。
21.函数:
tf.one_hot(
indices,输入
depth,张量维度
on_value=None,#默认为1
off_value=None,#默认为0
axis=None,
dtype=None,
name=None)
返回一个one-hot张量。
22.函数:
tf.cast(x,dtype,name):数据类型转换
23.函数:
tf.reduce(
input_tensor,
axis=None,
keepdims=None,
name=None,
reduction_indices=None,
keep_dims=None
)
input_tensor: 输入待求和的tensor;
axis: 指定的维,如果不指定,则计算所有元素的总和;
keepdims:是否保持原有张量的维度,设置为True,输出的结果保持输入tensor的形状,设置为False,输出结果会降低维度;
name: 操作的名称;
reduction_indices:在以前版本中用来指定轴,已弃用;
keep_dims:在以前版本中用来设置是否保持原张量的维度,已弃用;
24.函数:
tf.log(x)---> y=log(x)
返回一个张量,与 x具有相同的类型.
25.函数:
tf.get_collection(
key,
scope=None)
从一个集合中取出变量。
获取key集合中的所有元素,返回一个列表。列表的顺序依变量放入集合中的先后而定。
scope为可选参数,表示的是名称空间(名称域),如果指定,就返回名称域中所有放入‘key’的变量的列表,不指定则返回所有变量。
26.函数:
tf.boolean_mask(
tensor, :被过滤的元素列表或数组
mask, 一堆 bool 值,它的维度不一定等于 tensor
name="boolean_mask",
axis=None)
tensor
作用:通过布尔值过滤。
27.函数:
28.函数:
后续不断更新… …