Преобразование предварительно обученной сохраненной модели из NCHW в NHWC, чтобы сделать ее совместимой с Tensorflow Lite - PullRequest
0 голосов
/ 01 мая 2018

Я преобразовал модель из PyTorch в Keras и использовал бэкэнд для извлечения графика тензорного потока. Поскольку формат данных для PyTorch был NCHW, модель, извлеченная и сохраненная, также является такой. При преобразовании модели в TFLite из-за формата NCHW ее невозможно преобразовать. Есть ли способ конвертировать весь граф в NHCW?

Ответы [ 2 ]

0 голосов
/ 28 июля 2018

К сожалению, в настоящее время нет способа конвертировать график NCHW в NHWC; Вы должны начать с графика NHWC, чтобы тренироваться в самом начале, если позже вы захотите работать с TF lite.

0 голосов
/ 28 июля 2018

Лучше иметь график с форматом данных, согласованным с TFLite, для более быстрого вывода. Один из подходов заключается в том, чтобы вручную вставить транспонированные операции в график, как в следующем примере: Как преобразовать учебник CIFAR10 в NCHW

import tensorflow as tf

config = tf.ConfigProto()
config.gpu_options.allow_growth = True

with tf.Session(config=config) as session:

    kernel = tf.ones(shape=[5, 5, 3, 64])
    images = tf.ones(shape=[64,24,24,3])

    imgs = tf.transpose(images, [0, 3, 1, 2]) # NHWC -> NCHW
    conv = tf.nn.conv2d(imgs, kernel, [1, 1, 1, 1], padding='SAME', data_format = 'NCHW')
    conv = tf.transpose(conv, [0, 2, 3, 1]) # NCHW -> NHWC

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