我正试图将我的Tensorflow冻结模型转换为NVIDIA TensorRT引擎。我有TensorRT 3的版本。TensorRT不支持某些Tensorflow层/函数,如tf.Cast
等。
我的模型使用tf.abs()
函数(EDIT:它实际上由TensorRT支持,但不受构建TensorRT引擎所需的UFF解析器的支持),并且我能够在将tensorflow检查点转换为冻结模型之前更改操作。在
我需要将tf.abs()
替换为备用。因此,我尝试在Tensorflow中执行以下numpy操作。在
纽比:
mask = (x<0).astype(np.float32)
mask = 2*mask + 1 #(makes all 1s -1, and all 0s 1)
abs_vals = mask*x
张量流:z是零的张量,与x的形状相同
^{pr2}$我不确定如何继续,因为我需要将tensorflow返回的布尔掩码转换为整数掩码,以便将其乘以输入,但TensorRT也不支持tf.Cast
操作。在
编辑:问题实际上是UFF解析器不支持abs
函数,而TensorRT实际上支持它。在此处添加错误日志。在
Using output node generate_output/deprocess/add Converting to UFF graph No. nodes: 361 UFF Output written to data/tmp.uff UFFParser: parsing generate_output/generator/encoder_9/lrelu/mul/x UFFParser: parsing generate_output/generator/encoder_8/lrelu/mul/x UFFParser: parsing generate_output/generator/encoder_7/lrelu/mul/x UFFParser: parsing generate_output/generator/encoder_6/lrelu/mul/x UFFParser: parsing generate_output/generator/encoder_5/lrelu/mul/x UFFParser: parsing generate_output/generator/encoder_4/lrelu/mul/x UFFParser: parsing generate_output/generator/encoder_3/lrelu/mul/x UFFParser: parsing generate_output/generator/encoder_2/lrelu/mul/x UFFParser: parsing image_tensor UFFParser: parsing generate_output/load_images/preprocess/mul/y UFFParser: parsing generate_output/load_images/preprocess/mul UFFParser: parsing generate_output/load_images/preprocess/sub/y UFFParser: parsing generate_output/load_images/preprocess/sub UFFParser: parsing generate_output/input_images/Reshape/shape UFFParser: parsing generate_output/input_images/Reshape UFFParser: parsing generator/encoder_1/conv/filter UFFParser: parsing generate_output/generator/encoder_1/conv/Conv2D UFFParser: parsing generate_output/generator/encoder_2/lrelu/mul UFFParser: parsing generate_output/generator/encoder_2/lrelu/mul_1/x UFFParser: parsing generate_output/generator/encoder_2/lrelu/Abs UFFParser: Parser error: generate_output/generator/encoder_2/lrelu/Abs: Unary not supported for other non-constant node Failed to parse UFF
不幸的是,截至2018年4月,UFF转换不支持很多操作。这个有效,相当于tf.abs():
相关问题 更多 >
编程相关推荐