Упорядочивание Tensor в линейный массив в Ort:Value:CreateTensor
Это кажется таким простым, но по какой-то причине я не могу найти по нему четкой документации.
Итак, допустим, я знаю, что моя модель ONNX требует ввода формы. [245, 245, 3]
. Второй аргумент в конструктореOrt::Value::CreateTensor
хочет, чтобы линейный массив данных заполнял тензор. Каков порядок линейного массива?
Например, являются ли первые три значения в линейном массиве значениями BGR для 0-го пикселя изображения или первые три значения в линейном массиве являются значением B-канала первых трех пикселей изображения? А насчет порядка расположения пикселей в изображении: строковый?
2 ответа
Короткий ответ: ONNX поддерживает только NCHW.
В качестве справки, пожалуйста, ознакомьтесь с разделом Моя конвертированная модель TensorFlow работает медленно — почему?в onnxruntime.ai. Это единственный «официальный» материал, в котором говорится о формате данных, который я нашел до сих пор.
Это рядовой. Формат входных данных в ONNX - NCHW. C = количество каналов. В этом случае C=3. Заказ C (BGR или RGB) зависит от модели. Например, модель YOLO принимает изображение 3(RGB) x 416px x 416px.