请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

循环读取上次模型保留的参数,再进行修改

老师请问,如何能实现这样的目的呢?我找了很多资料但感觉不是太好解决,请问老师有什么建议吗

正在回答 回答被采纳积分+3

2回答

提问者 慕设计0394643 2020-03-12 09:19:37

for cirs in range(circulation_num):#0,1,2,3
   pruned_epoch = cirs + 1
   with tf.Session() as sess:
       sess.run(tf.global_variables_initializer())
       if cirs == 0:
           saver.restore(sess, os.path.join('./model/', 'AlexNet_model_epoch243.ckpt-0'))
       else:
           saver.restore(sess, os.path.join('./pruned'+str(cirs)+'/', 'AlexNet_model_epoch'+str(batch_size)+'.ckpt-0'))
       sess.run(global_step)

       #裁剪,测试结果,finetune,保存
   tf.keras.backend.clear_session()

0 回复 有任何疑惑可以回复我~
  • 提问者 慕设计0394643 #1
    这里中间过程我省略了,但是处理是这样的流程。我现在想每次循环后清除session,避免tensor超过两个G;但是写的有点问题
    回复 有任何疑惑可以回复我~ 2020-03-12 09:27:17
正十七 2020-03-11 21:37:43

在循环的开始调用keras的keras.models.load_model可以吗?

好奇你这个的使用场景,一般我们不会这么做。而是训练一定步数后保存一个checkpoint,这一点可以使用CheckpointCallback来实现。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕设计0394643 #1
    我是想做个实验:读取一个预训练的模型,然后剪枝,然后再finetuen,保存当前新的模型然后再重复这个过程。如果我一直放进去会报错说tensor超过2G,不能报错模型。老师我不知道如何解决,老师有什么建议和方案吗
    回复 有任何疑惑可以回复我~ 2020-03-12 09:17:07
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信