【问题标题】:Converting pretrained saved model from NCHW to NHWC to make it compatible for Tensorflow Lite将预训练的保存模型从 NCHW 转换为 NHWC,使其与 Tensorflow Lite 兼容
【发布时间】:2018-07-28 06:13:15
【问题描述】:

我已将模型从 PyTorch 转换为 Keras,并使用后端提取 tensorflow 图。由于 PyTorch 的数据格式是 NCHW,所以提取和保存的模型也是这样。将模型转换为 TFLite 时,由于格式为 NCHW,无法转换。有没有办法将整个图转换为 NHCW?

【问题讨论】:

    标签: tensorflow keras


    【解决方案1】:

    最好有一个与 TFLite 匹配的数据格式的图表,以加快推理速度。一种方法是手动将转置操作插入图中,如下例所示: How to convert the CIFAR10 tutorial to 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())
    

    【讨论】:

      【解决方案2】:

      很遗憾,目前没有办法将 NCHW 图转换为 NHWC;您必须从 NHWC 图表开始,以便在开始时进行训练,如果稍后您想使用 TF lite 运行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多