Можно ли запускать определенные слои сети на разных устройствах в Tensorflow?

1

Я пытаюсь выполнить вывод на пользовательской модели Tensorflow на Movidius Neural Compute Stick. Проблема в том, что последний слой не поддерживается NCSDK. Поскольку последний уровень является достаточно вычислительным, я хотел бы знать, есть ли возможность запускать этот слой на CPU?

Мои предыдущие поиски привели меня к этим:

Распределенный тензор

Размещение переменных на процессоре?

Мне просто нужно иметь возможность запускать вывод до определенного уровня на NCS, а затем обрабатывать последний слой на CPU.

  • 0
    Как вы строите модель? Если вы используете API-интерфейс TensorFlow Python, не могли бы вы использовать блок with tf.device("/cpu:0"): для with tf.device("/cpu:0"): операций в последнем слое на процессоре?
Теги:
tensorflow

1 ответ

0

Использование mvNCCompile и опции -in и -on NCS могут помочь. Скомпилируйте модель с помощью ввода -in, а затем используйте -on, чтобы указать выходной узел в качестве последнего узла, который необходимо запустить на NCS. Это создаст файл графа, который принимает входные данные от входного узла и даст выходной узел. Поэтому вместо обработки данных по всей модели вы можете получить результат промежуточных результатов любого выбранного вами узла.

Получив результат от промежуточного уровня от NCS, вам может потребоваться передать его в качестве последнего слоя, который должен запускаться на CPU.

Вы можете найти аналогичное обсуждение в ссылке.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню