Je suis le blog wildml sur la classification de texte en utilisant tensorflow. J'ai changé le code pour sauvegarder le graphique def comme suit:Erreur Tensorflow lors de la restauration du graphique def du fichier .pb
tf.train.write_graph(sess.graph_def,'./DeepLearn/model/','train.pb', as_text=False)
plus tard dans un fichier séparé que je restaure le graphique comme suit:
with tf.gfile.FastGFile(os.path.join('./DeepLearn/model/','train.pb'), 'rb') as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
_ = tf.import_graph_def(graph_def, name='')
with tf.Session() as sess:
t = sess.graph.get_tensor_by_name('embedding/W:0')
sess.run(t)
Quand je tente d'exécuter le tenseur et obtenir sa valeur , j'obtiens l'erreur suivante:
tensorflow.python.framework.errors.FailedPreconditionError: Attempting to use uninitialized value embedding/W
Quelle pourrait être la raison possible de cette erreur. Le tenseur doit avoir été initialisé car je le restaure à partir du graphe sauvegardé.
'sess.run (tf.initialize_all_variables())'? – sygi
Mais, je charge le tenseur du graphique précédemment sauvegardé, donc je ne pense pas que je dois l'initialiser en utilisant cette déclaration. – Nitin
Vous devez toujours initialiser les variables, car la lecture de graphdef ne restaure que le graphique lui-même, pas les valeurs des variables. Si vous souhaitez restaurer les valeurs des variables, vous devez charger à partir d'un point de contrôle. –