#python #tensorflow #machine-learning #tensorflow2.0
#питон #тензорный поток #машинное обучение #tensorflow2.0
Вопрос:
Я пытаюсь использовать модель для распознавания текста, и у меня есть этот блок кода, который приводит к ошибке: «AttributeError: модуль ‘tensorflow._api.v2.saved_model’ не имеет атрибута ‘loader'», который, как я предполагаю, связан с использованием конструкции TF версии 1, которая больше недействительна в V2
def load_graph(self, modelFile):
graph = tf.Graph()
# graph_def = tf.compat.v1.GraphDef()
sess = tf.compat.v1.Session(graph=tf.Graph())
Point of failure -> model = tf.saved_model.loader.load(sess, [tf.saved_model.tag_constants.SERVING], './model')
graph_def = model.graph_def
with open(modelFile, "rb") as f:
graph_def.ParseFromString(f.read())
with graph.as_default():
tf.import_graph_def(graph_def)
return graph
Я изменил исходную конструкцию с tf.Session () на tf.compat.v1.Session (), что приводит нас к этой ошибке.
Что было бы эквивалентом для TF V2, который я могу использовать в этом случае?
РЕДАКТИРОВАТЬ: Ранее я пробовал этот вариант, который имел ту же ошибку.
def load_graph(self, modelFile):
graph = tf.Graph()
graph_def = tf.GraphDef()
with open(modelFile, "rb") as f:
graph_def.ParseFromString(f.read())
with graph.as_default():
tf.import_graph_def(graph_def)
return graph
Комментарии:
1. Можете ли вы попробовать изменить
tf.saved_model.loader.load
наtf.compat.v1.saved_model.load
. Вы можете обратиться сюда за более подробной информацией.2. @Kishore Это действительно сработало, спасибо. Теперь появилась новая ошибка «AttributeError: модуль ‘tensorflow._api.v2.saved_model’ не имеет атрибута’tag_constants'», но, вероятно, в дальнейшем их будет больше, поэтому мой новый вопрос заключается в том, как я могу эффективно искать более новые версии методов, чтобы»перевести» старые методы TF1.15 в новейшие методы TF2?
3. Перенесите рабочий процесс SavedModel, поможет вам перенести сохраненную модель Tf1 на совместимую с Tf2. Спасибо!
4. @TFer Спасибо!