Как передать извлеченную карту объектов из замороженных моделей в новые модели в тензорном потоке? - PullRequest
0 голосов
/ 21 апреля 2020

Буквально я хочу импортировать предварительно обученную модель с помощью load_graph () и объединить карту объектов, извлеченную через каждый слой, с новым слоем модели. Как мне это сделать?

Я написал функцию load_graph () следующим образом.

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())

    # Then, we import the graph_def into a new Graph and returns it.
    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="")

    return graph

Следующее - получить предварительно обученный граф с помощью функции load_graph (), предоставив тензоры. на графике в качестве карты промежуточных объектов и обучите новую модель.

new_input = tf.placeholder(tf.float32, shape=[None, IMAGE_SHAPE[0], IMAGE_SHAPE[1], 3])
new_label = tf.placeholder(tf.float32, shape=[None, IMAGE_SHAPE[0], IMAGE_SHAPE[1], 2])

# Load Graph
graph = load_graph("./frozen_model.pb")

input_lidar = graph.get_tensor_by_name('input_lidar:0')
hidden_layer1 = graph.get_tensor_by_name('hidden_layer1:0')
hidden_layer2 = graph.get_tensor_by_name('hidden_layer2:0')
output = graph.get_tensor_by_name('output:0')
keep_probability = graph.get_tensor_by_name('keep_probability:0')

logits = GSNet(input_lidar, , input_lidar, keep_probability, NUM_OF_CLASSESS_IMG, hidden_layer1, hidden_layer2, output)

...

_, cost, _ = sess.run([train_step, loss, output_lid], feed_dict=feed_dict)

После выполнения кода появляется следующая ошибка. Любой совет, кроме вышеупомянутого, чтобы помочь мне с тем, что я пытаюсь сделать?

ValueError: Tensor("Relu:0", shape=(?, 80, 288, 32), dtype=float32) must be from the same graph as Tensor("Relu:0", shape=(?, 80, 288, 32), dtype=float32).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...