发新帖

keras+tensorboard重新训练时曲线绘制异常

[复制链接]
148 1

快来加入 TensorFlowers 大家庭!

您需要 登录 才可以下载或查看,没有帐号?加入社区

x
背景:keras+tensorboard hook进行训练时可根据epoch自动绘制scalar相关的图表
问题:训练了20个epoch后,根据之前的训练结果,调整了部分超参数然后load之前的模型,继续训练。这个时候,tensorboard上的曲线又从零开始了,且之前的曲线也在,导致了图表的混乱。
需求:能否在重新训练的时候,让曲线与之前的曲线衔接起来?如果删除之前的图表或者新开一个目录也能解决图表冲突的问题,但是无法同时看到两个阶段的曲线。
yunhai_luo已获得悬赏 10 金币+15 金币

最佳答案

楼主可以接受使用initial_epoch参数吗?
本楼点评(0) 收起

精彩评论3

yunhai_luo  TF豆豆  发表于 2018-5-25 15:15:30 | 显示全部楼层
楼主可以接受使用initial_epoch参数吗?
  1. import numpy as np
  2. from keras.models import Model
  3. from keras.layers import Input, Dense
  4. from keras.callbacks import TensorBoard

  5. test = np.arange(2000.).reshape((-1, 1))

  6. x = Input(shape=(1,))
  7. y = Dense(1)(x)
  8. model = Model(inputs=x, outputs=y)
  9. model.compile(optimizer='Adam',
  10.               loss='logcosh',
  11.               metrics=['accuracy'])

  12. # 第一次训练
  13. first_epoch = 20
  14. model.fit(x=test, y=test, epochs=first_epoch,
  15.           callbacks=[TensorBoard()])
  16. json_string = model.to_json()
  17. model.save_weights('./logs/my_model_weights.h5')
  18. del model

  19. # 重新训练
  20. from keras.models import model_from_json
  21. from keras.optimizers import SGD

  22. new_model = model_from_json(json_string)
  23. new_model.load_weights('./logs/my_model_weights.h5')
  24. new_model.compile(optimizer=SGD(lr=1e-7),
  25.               loss='mean_squared_error',
  26.               metrics=['accuracy'])

  27. second_epoch = 10
  28. new_model.fit(x=test, y=test,
  29.               epochs=first_epoch+second_epoch,
  30.               callbacks=[TensorBoard()],
  31.               initial_epoch=first_epoch)
复制代码


tensorboard.jpg

本楼点评(2) 收起
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

主题

帖子

20

积分
快速回复 返回顶部 返回列表