TensorFlow 学习笔记
@(深度学习)
纯粹的学习笔记,写给自己看的,防止遗忘。
定义公式
定义的公式只是 Computation Graph,在这执行这代码时计算还没发生,需要调用 run 方法并 feed 数据才真正执行。
流程
- 定义算法公式,也就是神经网络 forward 时的计算。
- 定义 loss ,选定优化器,并指定优化器优化 loss。
- 迭代地对数据进行训练。
- 在测试集或验证集上对准确率进行评测。
lambda
dense
tf.nn.relu
tf.nn.tanh
tf.nn.moment
tf.nn.softmax_cross_entropy_with_logits()
tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits, labels)) => tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits = logits, labels = labels))
tf.stack()
tf.pack() => tf.stack() tf.unpack() => tf.unstack()
tf.nn.dropout()
tf.truncated_normal()
tf.reshape()
重新变换形状
tf.reduce_mean()
在某一维度上求平均值
代码语言:javascript复制reduce_mean(
input_tensor,
axis=None,
keepdims=None,
name=None,
reduction_indices=None,
keep_dims=None
)
Others
代码语言:javascript复制a = tf.Variable()
tf.name_scope()
对 tf.get_variable() 无效
scope.reuse_variables()
后面加 tf.get_variable() 可以重复用
tf.equal()
判断两个是否相等
tf.cast()
映射,参数一映射为参数二的类型
tf.placeholder()
占位符 input = tf.placeholder(tf.float32) 操作 = 函数(input) sess.run(操作, feed_dict = {input: 2})
tf.placeholder(tf.float32, [None, 784]) 第二个参数代表 tensor 的 shape, 也就是数据的尺寸。 None 代表不限条数的输入,784 代表每条输入是一个784 维的向量。
tf.argmax
返回最大值的索引
tf.train
tf.train.Saver()
保存(save) 恢复(restore) 模型
代码语言:javascript复制# save
saver.save(sess, 'my-model', global_step = 0)
# restore
saver.restore(sess, 'my-model')
tf.nn.rnn_cell
tf.nn.rnn_cell => tf.contrib.rnn
tf.train.GradientDescentOptimizer()
梯度下降优化器
tf.summary.FileWriter
tf.trian.SummaryWriter => tf.summary.FileWriter Writes Summary protocol buffers to event files.
tf.global_variables_initializer()
tf.initialize_all_variables() => tf.global_variables_initializer()
tf.matmul()
两个矩阵相乘
代码语言:javascript复制matmul(
a,
b,
transpose_a=False,
transpose_b=False,
adjoint_a=False,
adjoint_b=False,
a_is_sparse=False,
b_is_sparse=False,
name=None
)
tf.square()
平方
代码语言:javascript复制square(
x,
name=None
)