张量(tensor),计算图(graph),会话(session)
计算图中的每一个节点(比如a这个节点),都被称为一个Operation(Op),每个Op都可以接受/输出0个或多个tensor对象
基本流程
基本运算
import tensorflow as tf
x = tf.constant([[1.0, 2.0]]) #12
w = tf.constant([[3.0], [ 4.0]]) #21
y = tf.matmul(x, w) #乘法
print y
graph不执行计算,只显示张量类型
数据生成
前向传播
待训练参数汇总
一些函数
tf.cast(target, tf.int32)数据类型转换,返回将target转换为tf.int32后的值
tf.nn.ctc_loss(labels,
inputs,
sequence_length,
preprocess_collapse_repeated=False,
ctc_merge_repeated=True,
time_major=True)
inputs是MCC-LSTM的输出,没有对齐的输出数据
label是SparseTensor类型
tf.reduce_mean() 类似的还有tf.reduce_sum(), tf.reduce_max(), tf.reduce_all(), tf.reduce_any(),后两个是逻辑与、逻辑或
opt.compute_gradients(loss, val_list)
返回(梯度,变量值)的列表
比如
grad = opt.compute_gradients(y, [w,x])
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print(sess.run(grad))
会打印出[(y对w的梯度,w的值),(y对x的梯度,x的值)]
opt.apply_gradients(grads_and_vars, global_step=None, name=None)
tf.gradients(loss, tf.variables)
tensorflow随机数
tf.random_normal(
shape,
mean=0.0,
stddev=1.0,
dtype=tf.float32,
seed=None,
name=None
)
shape:一维整数张量或 Python 数组.输出张量的形状.
mean:dtype 类型的0-D张量或 Python 值.正态分布的均值.
stddev:dtype 类型的0-D张量或 Python 值.正态分布的标准差.
dtype:输出的类型.
seed:一个 Python 整数.用于为分发创建一个随机种子.查看 tf.set_random_seed 行为.
name:操作的名称(可选).
返回:将返回一个指定形状的张量,通过随机的正常值填充.