Tensorflow на Golang Model: ошибка запуска сеанса: ноль-операция. Если выходные данные были созданы с помощью объекта Scope, подробности см. В Scope.Err (). - PullRequest
0 голосов
/ 07 января 2019

Я использую Голанг с моделью тензорного потока. С этим кодом: `` `

    output, err := sessionModel.Run(
    map[tf.Output]*tf.Tensor{
        graphModel.Operation("input").Output(0): tensor,
    },
    []tf.Output{
        graphModel.Operation("output").Output(0),
    },
    nil)

`` `

Но показать ошибку: 2019/01/07 18:07:48 http: panic serving [::1]:55262: nil-Operation. If the Output was created with a Scope object, see Scope.Err() for details.

Я уже проверяю tensor содержит тензор из файла изображения. Любая рекомендация? Все равно спасибо

Ответы [ 2 ]

0 голосов
/ 07 мая 2019

Я хотел бы добавить к @nessuno отличный ответ, который мне нужно было сделать: my_model.inputs и my_model.outputs, чтобы получить правильные имена. Например:

> my_model.inputs
[<tf.Tensor 'dense_1_input:0' shape=(?, 7) dtype=float32>
> my_model.outputs
[<tf.Tensor 'my_output/BiasAdd:0' shape=(?, 2) dtype=float32>

Поэтому мои входные и выходные узлы dense_1_input и my_output/BiasAdd (не my_output!)

0 голосов
/ 07 января 2019

Ошибка говорит, что атрибут Output (определенного узла) является нулевой операцией.

Следовательно graphModel.Operation("input").Operation(0) или graphModel.Operation("output").Output(0) возвращает nil.

Чтобы исправить это, вы должны обратиться к существующему узлу в графе, потому что в графе нет тензора с именем input или тензора с именем output.

Из кода Python, который вы использовали для экспорта модели, вы можете найти полное имя ваших входных и выходных тензоров. Просто получите доступ к атрибуту .name вашего входного заполнителя и вашего выходного узла, чтобы получить правильное имя для использования в Go.

Кроме того, привязки Go сложны в использовании, особенно если вы хотите выполнить некоторые операции предварительной обработки входного изображения. Я предлагаю вам использовать Galeone / TFGO вместо непосредственного использования привязок (обратите внимание, что я являюсь автором этого репо).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...