tensorflow 加载参数,强化学习模型可扩展。

强化学习中想要在4个智能体训练出来的模型扩展到更多智能体的模型。

若要可扩展,首先需要所有智能体共享一个模型参数,方法是设置reuse=True即可。

然而,现实操作可能还会存在问题。因此通常三个步骤来查看。

1、通常先输出网络的参数。下面三种方法稍有不同,具体输出可以看出。

# 得到该网络中,所有可以加载的参数的三种方法
variables = tf.contrib.framework.get_variables_to_restore()
for i in range(len(variables)):
    print(variables[i])
print('------------variables22222222222---------------')
variables2 = tf.all_variables()
for i in range(len(variables2)):
    print(variables2[i])
print('---------variables33333333------------------')
variables2 = tf.trainable_variables() #得到可训练参数
for i in range(len(variables2)):
   print(variables2[i])

2、过滤一些无关紧要的参数

 # 删除其他参数,adv_agent层中的参数
        variables_to_restore = [v for v in variables if v.name.split('/')[0] == 'adv_agent']

3、 加载model的(过滤后)这部分参数

# 构建这部分参数的saver
        saver = tf.train.Saver(variables_to_restore)
        saver.restore(U.get_session(),arglist.load_dir) #arglist.load_dir就是模型存储的位置

参考链接:

1、https://blog.csdn.net/marsjhao/article/details/72829635#commentBox

2、 https://blog.csdn.net/huachao1001/article/details/78501928

3、https://blog.csdn.net/u011961856/article/details/77064631

4、https://blog.csdn.net/b876144622/article/details/79962727

5、https://blog.csdn.net/jeryjeryjery/article/details/79880475

6、https://blog.csdn.net/CV_YOU/article/details/80698942 (多次载入部分参数)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章