Keras验证进度输出错误地显示训练步骤

当我调用model.fit_generator()来训练我的模型时,输出中显示了训练进度,正如预期的那样。然而,它在达到最大值之前少了一步,然后就转到验证阶段。验证阶段显示的进度条与训练阶段相同,尽管验证步骤完全不同(大约70,000个训练步骤/8,000个验证步骤)。验证进度条在达到8,000步时停止,例如:

75999/76000 [===========================>..] - ETA: 0s - loss: 0.4556 - acc: 0.840Epoch 1/5008200/76000 [====>........................] - ETA: 0s - loss: 0.9822 - acc: 0.7564

第一行是训练,第二行是验证。

当我手动更改步骤,使训练步骤少于验证步骤时,我得到了以下输出:

19/20 [===========================>..] - ETA: 0s - loss: 0.4558 - acc: 0.8980Epoch 1/50019/20 [===========================>..] - ETA: 0s - loss: 0.8200 - acc: 0.7730

它在这个输出上暂停,而其余的验证步骤继续进行。其余验证步骤的输出并未在进度条中显示。

当验证步骤和训练步骤由我的生成器生成,或如上所述手动设置时,都会出现这个错误,所以我认为问题不在于我的生成器。我的fit_generator()调用如下(使用.fit()时也相同):

model.fit_generator(                                train_generator,                                steps_per_epoch=train_steps,                                epochs=epochs,                                validation_data=val_generator,                                validation_steps=val_steps,                                verbose=1,                                callbacks=[weight_saving_callback,early_stopping],                                max_queue_size=40,                                workers=1,                                use_multiprocessing=False,                                #train_class_weight=None, #因为我们不使用目标类别                                #val_class_weight=None, #因为我们不使用目标类别                                validation_freq=1)

有谁能看出这个错误在哪里吗?我认为这不会影响训练过程,只是输出的问题 – 但我找不出问题出在哪里。使用的是TensorFlow 2.1和Keras 2.3.1。

简单来说:为什么验证进度条不显示正确的验证步骤数?


回答:

我的经验是,如果你试图在epoch结束时打印出自己的信息,会弄乱TensorFlow的输出。我最终采取的做法是,为我想打印出的项目创建类变量,并将它们传递给on_epoch_begin函数,然后在那里打印信息。这似乎不会弄乱epoch结束时TensorFlow的输出。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注