小编src*_*nas的帖子

如何使用tensorflow的Estimator API控制何时计算评估与训练?

正如这个问题所述:

tensorflow文档未提供如何在评估集上执行模型的定期评估的任何示例

接受的答案建议使用Experiment(根据本README不推荐使用).

我在网上找到的所有内容都指向了使用train_and_evaluate方法.但是,我仍然没有看到如何在两个过程之间切换(训练和评估).我尝试过以下方法:

estimator = tf.estimator.Estimator(
    model_fn=model_fn,
    params=hparams,
    model_dir=model_dir,
    config = tf.estimator.RunConfig(
        save_checkpoints_steps = 2000,
        save_summary_steps = 100,
        keep_checkpoint_max=5
    )
)

train_input_fn = lambda: input_fn(
    train_file, #a .tfrecords file
    train=True,
    batch_size=70,
    num_epochs=100
)

eval_input_fn = lambda: input_fn(
    val_file, # another .tfrecords file
    train=False,
    batch_size=70,
    num_epochs=1
)
train_spec = tf.estimator.TrainSpec(
    train_input_fn,
    max_steps=125
)    

eval_spec = tf.estimator.EvalSpec(
    eval_input_fn,
    steps=30,
    name='validation',
    start_delay_secs=150,
    throttle_secs=200
)

tf.logging.info("start experiment...")
tf.estimator.train_and_evaluate(
    estimator,
    train_spec,
    eval_spec
)
Run Code Online (Sandbox Code Playgroud)

以下是我认为我的代码应该做的事情:

使用70的批量训练模型100个时期; 每2000批次保存检查点; 每100批保存摘要; 最多保留5个检查站; …

python tensorflow

11
推荐指数
1
解决办法
6053
查看次数

在Python中将一个长列表拖拽更长的次数

我想要很长一段时间(比如10000)将一个很长的序列(比如它有超过10000个元素)洗牌.阅读Python Random文档时,我发现了以下内容:

注意,即使对于小len(x),x的排列总数也可以快速增长,大于大多数随机数生成器的周期.这意味着永远不会产生长序列的大多数排列.例如,长度为2080的序列是可以在Mersenne Twister随机数生成器的周期内拟合的最大序列

我有两组(可能更多),每组都有很多值.我想要随机播放的序列是所有可用值的列表,无论该组如何.我担心的是这个说明意味着我需要的shuffle可能不是由random.shuffle()函数提供的.

我考虑过一些变通方法:

  • 在某些迭代中初始化随机数生成器(使用random.seed())几个.这样,排列是否超过周期并不重要,因为不同的种子会得到不同的结果.
  • 使用样本(范围(序列的长度),k =组的大小)来获得随机索引,然后使用这些索引在每个组中进行索引.这样,由于随机数生成器的周期,我可能不会耗尽排列.

我的替代品会有帮助吗?

非常感谢!

python random algorithm montecarlo python-3.x

5
推荐指数
1
解决办法
220
查看次数

Tensorflow:get_tensor_by_name 与 get_operation_by_name 的区别?

这里的答案是,一个返回一个操作,而另一个返回一个张量。从名称和文档中可以很明显地看出这一点。但是,假设我执行以下操作:

logits = tf.add(tf.matmul(inputs, weights), biases, name='logits')
Run Code Online (Sandbox Code Playgroud)

我遵循Tensorflow Mechanics 101 中描述的模式。我应该将它恢复为操作还是张量?恐怕如果我将它恢复为张量,我只会得到 logits 的最后计算值;尽管如此,这里的帖子似乎表明没有区别或者我应该只使用get_tensor_by_name. 这个想法是计算一组新输入的对数,然后相应地进行预测。

deep-learning tensorflow tensorflow-serving

4
推荐指数
1
解决办法
3841
查看次数