Подача 1 кадра на 2 модели в тензорном потоке - PullRequest
0 голосов
/ 19 апреля 2020

У меня есть две модели тензорного потока (A.pb, B.pb). У меня есть два написанных двух python кода. Оба из них принимают один и тот же кадр и производят вывод. (В настоящее время я запускаю их оба в разных терминалах.)

Поскольку они принимают один и тот же кадр изображения в качестве входных данных ... Могу ли я сделать что-то в тензорном потоке, например:

В 1 одном python file:

  • Поместите оба кода в один файл.
  • Откройте обе модели A.pb и B.pb.
  • Подача одного и того же входного кадра изображения два и A.pb и B.pb параллельно
  • Наложение выходных данных A.pb и B.pb и создание 1 одиночного выходного сигнала.

1 Ответ

0 голосов
/ 19 апреля 2020

Да, вы можете запустить 2 разные модели в одном и том же файле tenorflow, например так:

graph_A = tf.Graph()
with graph_A.as_default():
    # create or saver.restore tf variables here for model A

graph_B = tf.Graph()
with graph_B.as_default():
    # create or saver.restore tf variables here for model B


# run model A
session_A = tf.Session(graph=graph_A)    
with session_A.as_default():
    with graph_A.as_default():
        # feed image into model A
        output_A = session_A.run([], feed_dict={})

# run model B
session_B = tf.Session(graph=graph_B)    
with session_B.as_default():
    with graph_B.as_default():
        # feed image into model B
        output_B = session_B.run([], feed_dict={})

# do something with outputs
print(output_A, output_B)

Если вы действительно хотите запускать их "параллельно", вы должны запускать сеансы в отдельных потоках или подпроцессах, но я не буду освещать это здесь.

...