Ответ 1
Graph
или Computional Graph
- основная концепция тензорного потока для представления вычислений. Когда вы используете tenorflow, вы сначала создаете свой собственный Computation Graph
и передаете этот Graph
в tenorflow. Как это сделать? Как вы, возможно, знаете, тензор потока поддерживает многие языки программирования переднего плана, такие как Python, C++, Java и Go, а основным языком является C++; как другие языки преобразуют Graph
в C++? Они используют инструмент под названием protobuf
который может генерировать специфические языковые заглушки, откуда GraphDef
. Это сериализованная версия Graph
.
какой из них мне нужно, чтобы запустить график, загруженный из файла protobuf (.pb)
Вы должны прочитать свой *pb
файл, используя GraphDef
и bind
к GraphDef
к ( по умолчанию) Graph
, а затем использовать сеанс для запуска Graph
для вычисления, как следующий код:
import tensorflow as tf
from tensorflow.python.platform import gfile
with tf.Session() as sess:
model_filename ='PATH_TO_PB.pb'
with gfile.FastGFile(model_filename, 'rb') as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
g_in = tf.import_graph_def(graph_def)
LOGDIR='/logs/tests/1/'
train_writer = tf.summary.FileWriter(LOGDIR)
train_writer.add_graph(sess.graph)