用过pycharm编keras代码的大兄弟们可能都知道,如果我们在训练模型时,一般是默认不断的换行输出,如这样子的:
当然我们可以通过fit_generator函数中的verbose来进行输出的调节,当verbose=1时,输出的就是上面这种,每一个Step输出一次;当verbose=2时,每一个Epoch输出一次,输出如下:
虽然verbose=2时是按照每一个Epoch输出一次,不会像每一个Step输出一次时那么乱
但是,如果每一个Epoch输出一次的话,我们就无法看到每个Epoch中的实际训练情况,可能会给部分人造成困扰
所以,我准备介绍另外一种输出形式,该方法输出的形式是进度条形式,而且能够实时显示出每个Step的loss变化,这种输出形式只需要大家稍微改动便可实现效果,简单有效。具体输出效果如下:
- 法一:
①打开:Lib\site-packages\keras\utils\generic_utils.py 文件
②在文件中导入os库:import os
找到:if self._dynamic_display 语句,然后将其修改为:if self._dynamic_display or “PYCHARM_HOSTED” in os.environ
大家可以按Ctrl + F进行搜索定位,这样不至于找错位置或找不到。还有就是,因为这个是keras库的源文件,最好是注释掉以前的代码,然后再添加新的上去,这样以后想改回来也方便。
- 法二:
很多人可能会认为直接修改keras源文件会有风险,所以我也为大家准备了第二种不用修改源文件的方案——安装ipykernel库
①通过pip指令安装ipykernel库:pip install ipykernel
②接着在代码中import ipykernel,便可以实现一行显示进度条了
可能导入ipykernel库后显示没有调用,即灰色语句,但是实际上是已经用上的了:
好了,以上就是我今天对keras进度条显示的学习,希望能够对大家有所帮助。