Yan*_*oon 3 python tensorflow tensorflow-gpu
我正在使用 tensorflow 高级 APItf.contrib.learn.Experiment来运行我的模型。我tf.nn.dropout在模型代码中应用并使用train_and_evaluate函数来训练模型。但是,我无法弄清楚如何仅在过程中的评估中将参数设置keep_prob为 1 (因为通常 dropout 只应在训练中使用)。tf.nn.dropouttrain_and_evaluate
您可以使用tf.estimator.ModeKeys来检测您是在 TRAIN 模式还是 EVAL 模式下调用估算器。
在为 Estimator 构建模型函数时(如本教程中所述),该函数必须尊重骨架:
def model_fn(features, labels, mode, params):
Run Code Online (Sandbox Code Playgroud)
该mode参数是一个tf.estimator.ModeKeys,所以,在你的模型功能,您可以简单地测试对mode参数检测你是否在训练或评估。(或在预测中)。
一个简单的例子:
def model_fn(features, labels, mode, params):
keep_prob = 1.0
if mode == tf.estimator.ModeKeys.TRAIN:
keep_prob = 0.8
[...]
Run Code Online (Sandbox Code Playgroud)
在一边 :
与其使用tf.nn.dropout,不如考虑使用tf.layers.dropout。它是 的包装器tf.nn.dropout,但它带有一个布尔值来激活或停用 dropout。(您可以按照与我的示例中的 prob 相同的方式设置布尔值)。
| 归档时间: |
|
| 查看次数: |
987 次 |
| 最近记录: |