Keras Progress Bar打印新线路,而不是更新栏



我在我尝试的每个地方都会遇到此错误,除了jupyter笔记本:python控制台,pycharm,使用tf.keras使用tf.keras,使用我安装的keras i ect。我有Python 3.7.2,我的TensorFlow是最新的。

我通过KERA为MNIST数据集创建了一个简单的模型,当我尝试使用verbose=1训练时,我将获得新的行,而不是预期的进度栏更新:

3808/60000 [>.............................] - ETA: 1:00 - loss: 0.9823 - acc: 0
3872/60000 [>.............................] - ETA: 1:00 - loss: 0.9753 - acc: 0
3936/60000 [>.............................] - ETA: 1:00 - loss: 0.9652 - acc: 0
4000/60000 [=>............................] - ETA: 1:00 - loss: 0.9544 - acc: 0
4064/60000 [=>............................] - ETA: 59s - loss: 0.9468 - acc: 0.
4128/60000 [=>............................] - ETA: 59s - loss: 0.9376 - acc: 0.
4192/60000 [=>............................] - ETA: 59s - loss: 0.9290 - acc: 0.
4256/60000 [=>............................] - ETA: 59s - loss: 0.9213 - acc: 0.

有任何线索?

P.S。准确性不是0,这不是此问题的一部分。我还确保tqdm加载条对我有用。
这是相关的代码:https://gist.github.com/omer54321/bde99aa48794a4221fd308a2c5555a3333dc

似乎KERAS决定是否允许使用名为sys.stdout.isatty()的函数更新进度栏,该函数在pycharm中是错误的(尽管它能够更新进度栏),因此,我要做的就是进入 lib site-packages keras utils,然后将or "PYCHARM_HOSTED" in os.environ添加到if语句中。(对我而言,第355行,前固定行是:if self._dynamic_display:

在pycharm上,我发现这个解决方案非常有用:https://stackoverflow.com/a/41598441

在控制台中运行此代码

class PseudoTTY(object):
    def __init__(self, underlying):
        self.__underlying = underlying
    def __getattr__(self, name):
        return getattr(self.__underlying, name)
    def isatty(self):
        return True
sys.stdout = PseudoTTY(sys.stdout)

最新更新