代码之家  ›  专栏  ›  技术社区  ›  Aaditya Ura

tensorflow:notfounderror:没有这样的文件或目录

  •  1
  • Aaditya Ura  · 技术社区  · 7 年前

    我面临着张量流模型的重量恢复问题。

    所以在训练模型的过程中,我在每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))
    

    现在我有了一个包含所有权重和元的检查点文件夹:

    我下载了权重并创建了一个名为“new_backup”的新文件夹,其中包含所有权重和meta:

    当我试图从该文件夹加载文件时:

    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")
    

    然后我得到这个错误:

    NotFoundError: /home/g_cloud/exe_paul/1epoch1000; No such file or directory
    

    那是我的云账户,1epoch1000是旧文件夹,所有的重量都是在训练期间节省下来的。我的问题是,如果在存在文件夹1epoch1000的情况下,我去云计算并使用相同的脚本来还原模型,那么脚本就可以工作,但如果不这样做,就会产生错误。

    如何将meta更改为重定向路径或如何在任何位置还原模型?

    1 回复  |  直到 7 年前
        1
  •  3
  •   Aaditya Ura    7 年前

    我试图找到答案,但没有成功,然后我做了一些实验,所以当你保存你的模型时,你会得到四个文件:

    model.data
    model.index
    model.meta
    checkpoint
    

    现在打开checkpoint as.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"
    

    只需将第一条路径(即model checkpoint)更改为模型所在计算机的本地路径。

    在此之后,在中将路径更改为本地路径:

    saver = tf.train.import_meta_graph('../new_backup/1.meta')
    restore = saver.restore(sess,tf.train.latest_checkpoint('../new_backup/'))
    

    就这样。