Как импортировать модель, используя файл pb в тензорном потоке
Мне было поручено выполнить тонкую настройку deeplab V3+ с помощью tenorflow и python. Для этого я загружаю замороженную модель со страницы DeepLab GitHub.!
Я скачал этот файл. Затем я искал в Интернете, как создать модель, используя эти файлы.
Есть метод только для создания модели с использованием файлов.ckpt и.meta, но у меня нет ни одного из этих файлов
Для создания графа из файла.pb доступны только методы. Я не знаю, что делать после создания графика с использованием файла.pb. Я импортирую замороженную модель, используя эти файлы. заранее спасибо
1 ответ
Это должно работать
import os
from matplotlib import gridspec
from matplotlib import pyplot as plt
import numpy as np
from PIL import Image
import tensorflow as tf
INPUT_TENSOR_NAME = 'ImageTensor:0'
OUTPUT_TENSOR_NAME = 'SemanticPredictions:0'
INPUT_SIZE = 513
with tf.gfile.FastGFile('model/frozen_inference_graph.pb', "rb") as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
g_in = tf.import_graph_def(graph_def, name="")
sess = tf.Session(graph=g_in)
def run(image):
width, height = image.size
resize_ratio = 1.0 * INPUT_SIZE / max(width, height)
target_size = (int(resize_ratio * width), int(resize_ratio * height))
resized_image = image.convert('RGB').resize(target_size, Image.ANTIALIAS)
batch_seg_map = sess.run(
OUTPUT_TENSOR_NAME,
feed_dict={INPUT_TENSOR_NAME: [np.asarray(resized_image)]})
seg_map = batch_seg_map[0]
return resized_image, seg_map
input_image = Image.open('test.jpg')
resized_im, seg_map = run(input_image)
fig = plt.figure()
fig.add_subplot(1, 2, 1)
plt.imshow(resized_im)
fig.add_subplot(1, 2, 2)
plt.imshow(np.ma.masked_equal(seg_map, 0))