Aad*_*Ura 1 python checkpoint python-3.x tensorflow
我正面临 tensorflow 模型权重恢复问题。
所以在训练模型期间,我在每 500 次迭代后保存了我的模型检查点,
if j%500==0:
with open('iterres.txt','a') as f:
f.write(str({'epoch': i, 'test_accuracy': evaluate_(model,batch_size=100),'iteration':j}) + '\n')
os.system('mkdir ' + str(i)+'epoch'+str(j))
saver.save(sess, '/home/g_cloud/exe_paul/'+str(i)+'epoch'+str(j)+'/'+str(i))
Run Code Online (Sandbox Code Playgroud)
现在我有一个包含所有权重和元数据的检查点文件夹:
我已经下载了权重并创建了一个名为“new_backup”的新文件夹,其中所有权重和元数据都在那里:
当我尝试从该文件夹加载该文件时:
import tensorflow as tf
labels_dict={
1: 'Yes',
0: 'No'
}
with tf.Session() as sess:
saver = tf.train.import_meta_graph('../new_backup/1.meta')
restore = saver.restore(sess,tf.train.latest_checkpoint('../new_backup/'))
graph=tf.get_default_graph()
query= graph.get_tensor_by_name("input:0")
result=graph.get_tensor_by_name("netout:0")
Run Code Online (Sandbox Code Playgroud)
然后我收到此错误:
NotFoundError: /home/g_cloud/exe_paul/1epoch1000; No such file or directory
Run Code Online (Sandbox Code Playgroud)
那是我的云帐户,1epoch1000 是旧文件夹,在训练期间保存了所有重量。我的问题是,如果我转到云并在存在文件夹 1epoch1000 时使用相同的脚本来恢复模型,则脚本正在运行,否则会出现该错误。
我如何更改元以重定向路径或如何在任何地方恢复模型?
我试图找到答案但没有运气,然后我做了一些实验,所以当你保存你的模型时,你会得到四个文件:
model.data
model.index
model.meta
checkpoint
Run Code Online (Sandbox Code Playgroud)
现在将检查点作为 .txt 文件打开,您将在其中看到一些路径:
model_checkpoint_path: "/home/g_cloud/exe_paul/1epoch1000/model"
all_model_checkpoint_paths: "/home/g_cloud/exe_paul/1epoch500/0"
all_model_checkpoint_paths: "/home/g_cloud/exe_paul/1epoch1000/0"
all_model_checkpoint_paths: "/home/g_cloud/exe_paul/1epoch2000/1"
all_model_checkpoint_paths: "/home/g_cloud/exe_paul/1epoch2500/1"
all_model_checkpoint_paths: "/home/g_cloud/exe_paul/1epoch3000/1"
Run Code Online (Sandbox Code Playgroud)
只需将表示模型检查点的第一个路径更改为模型所在机器的本地路径。
之后将路径更改为本地路径:
saver = tf.train.import_meta_graph('../new_backup/1.meta')
restore = saver.restore(sess,tf.train.latest_checkpoint('../new_backup/'))
Run Code Online (Sandbox Code Playgroud)
就是这样。
| 归档时间: |
|
| 查看次数: |
4005 次 |
| 最近记录: |