Tensorflow学习笔记(一)
tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
- shape:一维的张量,也就是输出的张量
- mean:正态分布的均值
- stddev:正态分布的标准差
- seed:一个整数,设置之后每次生成的随机数一样
- dtype:表示的是输出类型
- 输出结果为一个特定维度的正态分布随机值
transpose(a,perm=None,name=’transpose’,conjugate=False)
函数参数
- a: 数据的维度,形状
- perm: a的排列尺寸
- name: 操作的名称,可选参数
conjugate: 默认为true
tf.transpose(x, perm=[0, 2, 1])
一般来说对一个张量的列标为[0,1,2],[p0,2,1]表示第2列和第三列互换位置
tf.tf.contrib.rnn.static_rnn
函数参数
- cell,#RNNCell的实例
- inputs,#一个长度为T的输入序列,张量的形状为[batch_size,input_size],或者这些元素的嵌套元组
- initial_state=None,#一个RNN的初始状态,如果cell.state_size是一个整数,张量可能的类型和形状必须为[batch_size,cell.state_size],如果是一个元组,张量的形状必须为[batch_size,s] for s in cell.state_size
- dtype=None,#初始状态以及预期输出的数据类型,如果初始状态没有被提供或者rnn状态是异构类型。
- sequence_length=None,#指定序列中每个输入的长度,int32和int64向量[张量]大小[batch_size],值为[0,T]。
- scope=None#创建的子图的变量范围; 默认为“rnn”。
returns:(output,state)
- 输出是长度为T的输出列表(每个输入一个),或这些元素的嵌套元组。
- 最终的状态
tf.tf.contrib.rnn.BasicLSTMCell
- num_units,#int型数,LSTM型细胞单元数
- forget_bias=1.0,#float型,添加到忘记门的偏置,当从已经训练了的CudnnLSTM-trained checkpoints读取时必须设置为0
- state_is_tuple=True,#如果为真,接受和返回值为一个二元组(c_state,m_state),如果为假则沿着列轴连接,后者很快将会被舍弃
- activation=None,#隐含层激活函数,默认为tanh
- reuse=None,#(可选参数)bool型变量,描述是否在作用域中是重用变量,为false表示错误
- name=None#神经层的名字,相同层的神经元共享参数
returns:(output,new_state)
- 一个二维张量,shape为[batch_size,output_size]
- 一个单一的二维张量,或张量元组匹配状态的形式和形状。
tf.reduce_mean
求平均值
tf.nn.softmax_cross_entropy_with_logits
函数参数
- _sentinel=None,#用于保护位置参数,内部的,不被使用
- labels=None,#每一个标签[i]必须是有效的概率分布
- logits=None,#费标定日志概率
- dim=-1,#类维度,默认为-1,表示最后一个维度
- name=None#操作的名称
计算softmax的交叉熵
交叉熵作为损失函数还有一个好处是使用sigmoid函数在梯度下降时能避免均方误差损失函数学习速率降低的问题
returns
- 与softmax交叉熵损失相同类型的long batch_size的1-D张量。
tf.train.RMSPropOptimizer
函数参数
- learning_rate,#学习率
- decay=0.9,#权值衰减率,防止过拟合
- momentum=0.0,#
- epsilon=1e-10,
- use_locking=False,
- centered=False,#设置为真,表示将估计梯度归一化。设置为真有助于训练,但是需要消耗大量显存内存。默认为false。
- name=’RMSProp’#操作名称
属性
minimize函数参数
- loss,#包含最小化指的张量
- global_step=None,#
- var_list=None,
- gate_gradients=GATE_OP,
- aggregation_method=None,
- colocate_gradients_with_ops=False,
- name=None,
- grad_loss=None
returns
- 一系列的梯度和变量,变量必须存在,但是梯度可以为空。
tf.argmax(input, axis=None, name=None, dimension=None)
函数参数:
- input:输入Tensor
- axis:0表示按列,1表示按行
- name:名称
- dimension:和axis功能一样,默认axis取值优先。新加的字段
输出
- 返回:Tensor 一般是行或列的最大值下标向量