tensorflow函数记录

tensorflow中的一些函数,中文资料很少,需要翻墙查找外文资料,因此在这里记录下来

tf.train.get_checkpoint_state

该函数被用来获取已保存的checkpoint文件状态

get_checkpoint_state(

    checkpoint_dir,
    latest_filename=None
)

从checkpoint文件返回CheckpointState原型。

checkpoint_dir: checkpoints的路径
latest_filename: 可选,checkpoint文件的名称. 默认为’checkpoint’
如果状态可用,则返回CheckpointState,否则返回None。

CheckpointState包含model_checkpoint_path和all_model_checkpoint_paths

用例:

if os.path.exists(checkpoint_dir):
    not_restore = ['softmax_w:0', 'softmax_b:0']
    restore_var = [v for v in tf.global_variables() if v.name.split('/')[-1] not in not_restore]
    restored_saver = tf.train.Saver(restore_var, max_to_keep=FLAGS.check_point_every)
    ckpt = tf.train.get_checkpoint_state(checkpoint_dir)
    if ckpt and ckpt.model_checkpoint_path:
        restored_saver.restore(session, ckpt.model_checkpoint_path)
    else:
        pass

tf.reduce_logsumexp(gold_scores, [1])

计算log(sum(exp(张量的各维数的元素)))。
按照给定的axis上的维度减少input_tensor。除非keep_dims是true,否则张量的秩在axis上的每一项都减少1。如果keep_dims为 true,则减少的尺寸将保留为1。

如果axis没有条目,则缩小所有维度,并返回具有单个元素的张量。

这个函数在数值上比 log(sum(exp(input)))更稳定。它避免了大量输入的 exp 引起的溢出和小输入日志带来的下溢。

x = tf.constant([[0., 0., 0.], [0., 0., 0.]])
tf.reduce_logsumexp(x)  # log(6)
tf.reduce_logsumexp(x, 0)  # [log(2), log(2), log(2)]
tf.reduce_logsumexp(x, 1)  # [log(3), log(3)]
tf.reduce_logsumexp(x, 1, keep_dims=True)  # [[log(3)], [log(3)]]
tf.reduce_logsumexp(x, [0, 1])  # log(6)

参数:

input_tensor:张量减少。应该有数字类型。
axis:要减小的维度。如果为None(默认),则减少所有维度。必须在[-rank(input_tensor), rank(input_tensor))范围内。
keep_dims:如果为true,则保留长度为1的减少尺寸。
name:操作的名称(可选)。
reduction_indices:axis的弃用名称。

返回:
减少的张量。

tf.floor

向下取整(element wise)

tf.squeeze

去掉维数为1的维度,降维
For example:

  # 't' is a tensor of shape [1, 2, 1, 3, 1, 1]
  shape(squeeze(t)) ==> [2, 3]

Or, to remove specific size 1 dimensions:

  # 't' is a tensor of shape [1, 2, 1, 3, 1, 1]
  shape(squeeze(t, [2, 4])) ==> [1, 2, 3, 1]

猜你喜欢

转载自blog.csdn.net/tcx1992/article/details/80728552