python model.fit 只在validation_freq train epochs之后计算一次validation,然后不再计算

wyyhbhjk  于 2023-05-27  发布在  Python
关注(0)|答案(1)|浏览(196)

第一:我不能提供任何代码-如果这是足够的理由关闭这个-那就这样吧。
提供给我的代码库是保密的,我无法在多个小时的工作后在一个独立的示例中重现这种行为。有太多的定制代码,我几乎不理解,这使得隔离单个部分基本上是不可能的。
这就是为什么我现在尝试相反的方法:查看tensorflow代码,找出导致这种行为的变量组合,然后从那里开始工作。
我正在寻求有关如何自己调试此问题的建议/或者是否有人看到过类似的内容:

实际问题:

我正在用model.fit训练一个tensorflow模型,并将validation_freq参数设置为例如。10.我得到的行为是在epoch 10执行验证,仅此而已。在第20、30期…依此类推,不执行验证。总结如下:对于每个model.fit调用,我总共只得到一个评估。Tensorflow版本:2.10.0
我试着直接进入site-packages/tensorflow/python/keras/engine/training.py,在model.fit内部添加print语句:这里和这里,但我没有得到任何输出,所以他们要么没有执行或打印从这个文件没有达到stdout出于某种原因…或者...我误解了TensorFlow的代码流程...

  • 我修改了site-packages/tensorflow/python/keras/engine/training.py,而代码实际上使用了site-packages/keras/engine/training.py *

什么原因会导致这种情况/我如何调试这种情况?

vs91vp4v

vs91vp4v1#

如果你不能提供例子,很难准确地说出这个问题,但我会尝试以下方法。
1.请确保您正在向fit方法提供验证数据
1.尝试手动设置要验证的时期:model.fit(...validation_freq=[10, 20, 30])
1.如果你正在编辑源代码并使用jupyter notebook,你可能需要重新启动kernal以使更改生效。

相关问题