【发布时间】:2020-02-27 06:48:27
【问题描述】:
我有一个要转换为 float16 的 tensorflow(1.14 版)float32 SavedModel。根据https://docs.nvidia.com/deeplearning/frameworks/tf-trt-user-guide/index.html#usage-example ,我可以将“FP16”传递给precision_mode 以将模型转换为fp16。但是转换后的模型,在检查了tensorboard之后,仍然是fp32:net参数是DT_FLOAT而不是DT_HALF。并且转换后的模型大小与转换前的模型相似。 (这里我假设,如果转换成功,模型将变成原来的一半,因为参数被减半)。
import tensorflow as tf
from tensorflow.python.compiler.tensorrt import trt_convert as trt
import os
FLAGS = tf.flags.FLAGS
tf.flags.DEFINE_string('saved_model_dir', '', 'Input saved model dir.')
tf.flags.DEFINE_bool('use_float16', False,
'Whether we want to quantize it to float16.')
tf.flags.DEFINE_string('output_dir', '', 'Output saved model dir.')
def main(argv):
del argv # Unused.
saved_model_dir = FLAGS.saved_model_dir
output_dir = FLAGS.output_dir
use_float16 = FLAGS.use_float16
precision_mode = "FP16" if use_float16 else "FP32"
converter = trt.TrtGraphConverter(input_saved_model_dir=saved_model_dir,
precision_mode=precision_mode)
converter.convert()
converter.save(output_dir)
if __name__ == '__main__':
tf.app.run(main)
非常欢迎任何意见或建议!谢谢
【问题讨论】:
-
您是否收到任何错误日志?
标签: tensorflow tensorrt