记录训练过程中的每一步的loss变化
if verbose and step % verbose == 0:
sys.stdout.write('\r{} / {} : loss = {}'.format(
step, total_steps, np.mean(total_loss)))
sys.stdout.flush()
if verbose:
sys.stdout.write('\r')
sys.stdout.flush()
一般我们在训练神经网络模型的时候,都是每隔多少步,输出打印一下loss或者每一步打印一下loss,今天发现了另一种记录loss变化的方法,就是用
sys.stdout.write('\r{} / {} : loss = {}')
如图上的代码,可以记录每一个在每个epoch中记录用一行输出就可以记录每个step的loss值变化,
\r就是输出不会换行,因此如果你想同一样输出多次,在需要输出的字符串对象里面加上"\r",就可以回到行首了。
sys.stdout.flush() #一秒输出了一个数字
具体的实现就是下面的图:
这样在每个epoch中也可以观察loss变化,但是只需要打印一行,而不是每一行都输出。
补充知识:训练模型中损失(loss)异常分析
前言
训练模型过程中随时都要注意目标函数值(loss)