Machine learning Keras:如何在列车和测试阶段使用中途退出?

Machine learning Keras:如何在列车和测试阶段使用中途退出?,machine-learning,keras,dropout,Machine Learning,Keras,Dropout,是否可以在Keras的列车和测试阶段使用中途退出 就像这里描述的: 当然,当调用退出层时,您可以将训练参数设置为真。这样,辍学将在培训和考试阶段都适用: drp_输出=辍学(率)(输入,培训=真)#辍学将在培训和测试阶段激活 这两个答案都让我有点困惑。更简单地说,您可能会发现自己在做这样的事情: model = Model(...) ... model.add(Dropout(0.5)) ... model.fit(...) # invokes Dropout(training=T

是否可以在Keras的列车和测试阶段使用中途退出

就像这里描述的:
当然,当调用
退出层时,您可以将
训练
参数设置为
。这样,辍学将在培训和考试阶段都适用:

drp_输出=辍学(率)(输入,培训=真)#辍学将在培训和测试阶段激活

这两个答案都让我有点困惑。更简单地说,您可能会发现自己在做这样的事情:

model = Model(...)
...
model.add(Dropout(0.5))
...
model.fit(...)        # invokes Dropout(training=True)
...
model.evaluate(...)   # invokes Dropout(training=False)

也就是说,当您定义模型时,您可以添加
Dropout
层,其中包含您在培训期间想要的辍学率。测试和培训之间的比率没有明显差异;相反,它被声明为一个固定值,然后(不可见地)根据调用该层的
training
参数打开/关闭。请参阅。

在Keras的高斯噪声层中也可以这样做吗?@david看起来在Keras中可以使用
Keras.backend.set_learning_phase(1)
但我想在Tensorflow中,如果你在退出层中设置
training=True
,它会在图形转换为冻结图形或转换为coreml/tflite后保持不变吗?@MrGlow我想是这样,虽然我不确定。为什么你认为可能不是这样?因为冻结图用于推理而不是训练,所以我不确定我们是否可以在其中切换训练/测试阶段。立即供认:这并不能回答最初的问题,直到现在我才误读。但在试图理解如何使用辍学学生时,这个问题排名很高。问题是关于做一些不寻常的事情——将辍学学生应用到考试和培训中。这个答案说明了仅将辍学应用于培训的更为正常的情况。