У меня есть квантизованная мобильная сеть, загруженная с здесь . Этот график содержит фальшивые узлы квантования во время обучения для имитации вывода времени тестирования. Я хочу собрать выходные данные из последнего поточечного сверточного слоя этой сети.
Квантованная замороженная модель содержит дополнительные слои fc, softmax и т. Д., Которые не нужны для моего приложения.
У меня есть следующий код для загрузки графика.
def load_graph(frozen_graph_filename):
# We load the protobuf file from the disk and parse it to retrieve the
# unserialized graph_def
with tf.gfile.GFile(frozen_graph_filename, "rb") as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
with tf.Graph().as_default() as graph:
# The name var will prefix every op/nodes in your graph
# Since we load everything in a new graph, this is not needed
tf.import_graph_def(graph_def, name="prefix")
return graph
graph1 = load_graph("./quantized_fake.pb")
input = graph1.get_tensor_by_name('prefix/input:0')
output = graph1.get_tensor_by_name('prefix/MobilenetV1/MobilenetV1/Conv2d_13_pointwise/Conv2D_Fold:0')
Затем запустите с помощью sess.run (), однако я вижу, что вывод уровня свертки не квантуется (8 бит), как должно быть, когда он будет работать на мобильном телефоне.
Как получить такой же вывод, как на мобильном устройстве, при запуске кода на моем компьютере.
Можно ли использовать файлы tflite для вывода на ПК?