Golang Tensorflow Пакетный ввод изображений - PullRequest
0 голосов
/ 02 февраля 2019

Постановка проблемы: не удалось выполнить пакетную обработку изображений в GO Tensorflow.

Я просматривал следующий URL на GoLang Tensorflow.https://github.com/tensorflow/tensorflow/blob/master/tensorflow/go/example_inception_inference_test.go

Я столкнулся с проблемой при создании пакета изображений для ввода в модель.Проверьте эту строку https://github.com/tensorflow/tensorflow/blob/master/tensorflow/go/example_inception_inference_test.go#L199

Любая помощь будет оценена!

result, err := classifier.Session.Run(
        map[tf.Output]*tf.Tensor{
            inputTensor.Output(0): imageTensor,
        },
        []tf.Output{
            outputTensorOne.Output(0),
            outputTensorTwo.Output(0),
        },
        nil, /*targets*/
    )

// How to make that imageTensor a batch of images in GO Tensorflow.

1 Ответ

0 голосов
/ 18 февраля 2019

API Go не настолько исчерпывающий, и для упрощения можно сделать несколько дополнений.Однако, учитывая текущий API, можно возможно построить пакетный тензор, используя что-то вроде этого:

var buf bytes.Buffer
for i, img := range images {
  bytes, err := gocv.IMEncode(gocv.JPEGFileExt, img)
  if err != nil {
    fmt.Println("Error")
  }
  tensor, err = tf.NewTensor(string(bytes))
  if err != nil {
    fmt.Println("Error")
  }
  normalized, err := session.Run(
    map[tf.Output]*Tensor: { input: tensor },
    []tf.Output{output},
    nil)
  if _, err := normalized[0].WriteContentsTo(&buf); err != nil {
    // Handle error
  }
}

batchShape := []int64{len(images), 224, 224, 3}
batch, err := tf.ReadTensor(tf.Float, batchShape, &buf)
if err != nil {
  // Handle error
}

// Now feed "batch" to the model

Другой альтернативой было бы сделать это пакетирование в графе, построив графиккоторый упаковывает несколько тензоров одного изображения в пакет, используя операцию Pack).

Надеюсь, это поможет.

(PS Похоже, вы также спрашивали об этом ввопрос GitHub и тот же ответ там: https://github.com/tensorflow/tensorflow/issues/25440)

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