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

来源:9-2 保存模型结构加参数与保存参数实战

慕设计0394643

2020-03-11

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

写回答

2回答

慕设计0394643

提问者

2020-03-12

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
1
慕设计0394643
这里中间过程我省略了,但是处理是这样的流程。我现在想每次循环后清除session,避免tensor超过两个G;但是写的有点问题
2020-03-12
共1条回复

正十七

2020-03-11

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

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

0
1
慕设计0394643
我是想做个实验:读取一个预训练的模型,然后剪枝,然后再finetuen,保存当前新的模型然后再重复这个过程。如果我一直放进去会报错说tensor超过2G,不能报错模型。老师我不知道如何解决,老师有什么建议和方案吗
2020-03-12
共1条回复

Google老师亲授 TensorFlow2.0 入门到进阶

Tensorflow2.0实战—以实战促理论的方式学习深度学习

1849 学习 · 896 问题

查看课程