This is my code in Python:
from __future__ import absolute_import, division, print_function, unicode_literals import tensorflow as tf from matplotlib import pyplot as plt import numpy as np
I checked if the saved model is there using the following code:
tf.compat.v1.saved_model.contains_saved_model( '/Link_to_the_saved_model_directory/' )
and I can use the following code to further make sure the model is saved correctly, as far as I understood:
tf.saved_model.Asset( '/Link_to_the_saved_model_directory/' )
which returns this:
<tensorflow.python.training.tracking.tracking.Asset at 0x2aad125e5710>
So, everything looks fine. But, when I use the following script to load the model I get an error.
LoadedModel = tf.saved_model.load( export_dir='/Link_to_the_saved_model_directory/', tags=None )
OSError: Cannot parse file b'/Link_to_the_saved_model_directory/saved_model.pbtxt': 1:1 : Message type "tensorflow.SavedModel" has no field named "node"..
The files in the /Link_to_the_saved_model_directory/ look like this:
['saved_model.pbtxt', 'saved_model.ckpt-0.data-00000-of-00001', 'saved_model.ckpt-0.meta', 'checkpoint', 'saved_model.ckpt-0.index']
Any suggestion is greatly appreciated on how to load the model so that I could reuse it for transfer learning. It might also be the case that the model is partly written in a previous version of TensorFlow (e.g. TensorFlow 1.x) and this error is thus due to compatibility issue, but I could not find a solution for that yet.
Update: I tried the following method but it does not work (tf was imported using the compatible version
import tensorflow.compat.v1. as tf):
with tf.Session() as sess: saver = tf.train.import_meta_graph('/dir_to_the_model_files/saved_model.ckpt-0.meta') saver.restore(sess, "/dir_to_the_model_files/saved_model.ckpt-0") loaded = tf.saved_model.load(sess,tags=None,export_dir="/dir_to_the_model_files",import_scope=None)
It returns the following warnings and errors:
WARNING:tensorflow:The saved meta_graph is possibly from an older release: 'metric_variables' collection should be of type 'byte_list', but instead is of type 'node_list'. INFO:tensorflow:Restoring parameters from /dir_to_the_model_files/saved_model.ckpt-0 <tensorflow.python.training.saver.Saver object at 0x2aaab4824a50> WARNING:tensorflow:From <ipython-input-3-b8fd24f6b841>:9: load (from tensorflow.python.saved_model.loader_impl) is deprecated and will be removed in a future version. Instructions for updating: This function will only be available through the v1 compatibility library as tf.compat.v1.saved_model.loader.load or tf.compat.v1.saved_model.load. There will be a new function for importing SavedModels in Tensorflow 2.0. OSError: Cannot parse file b'/dir_to_the_model_files/saved_model.pbtxt': 1:1 : Message type "tensorflow.SavedModel" has no field named "node"..