Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow 关于内核权重的TensorRT 5 UFFParser错误_Tensorflow_Machine Learning_Nvidia_Tensorrt - Fatal编程技术网

Tensorflow 关于内核权重的TensorRT 5 UFFParser错误

Tensorflow 关于内核权重的TensorRT 5 UFFParser错误,tensorflow,machine-learning,nvidia,tensorrt,Tensorflow,Machine Learning,Nvidia,Tensorrt,我试着转换,然后用张量流模型进行推理 我使用tf.keras生成一个Tensorflow模型: model = Sequential() model.add(Conv2D(64, kernel_size=3, activation='relu', input_shape=(224,224,3), name='image')) model.add(Conv2D(32, kernel_size=3, activation='relu')) model.add(Flatten()) model.add

我试着转换,然后用张量流模型进行推理

我使用tf.keras生成一个Tensorflow模型:

model = Sequential()
model.add(Conv2D(64, kernel_size=3, activation='relu', input_shape=(224,224,3), name='image'))
model.add(Conv2D(32, kernel_size=3, activation='relu'))
model.add(Flatten())
model.add(Dense(num_classes, activation='softmax', name='output'))
我训练模型,然后转换文件,保存.pb tensorflow冻结图形文件,转换为UFF,使用:

uff_model = uff.from_tensorflow_frozen_model(
frozen_file="model/tensorflow/simplemodel.pb",
output_nodes=["output/Softmax"],
output_filename="model/tensorrt/simplemodel.uff")
当我用以下命令解析模型时:

TRT_LOGGER = trt.Logger(trt.Logger.INFO)
builder = trt.Builder(TRT_LOGGER)
network = builder.create_network()
parser = trt.UffParser()
parser.register_input("image_input", (1, 224, 224, 3))
parser.register_output("output/SoftMax")
parser.parse("model/tensorrt/simplemodel.uff", network)
我得到了这个错误:

[TensorRT] INFO: UFFParser: parsing image_input
[TensorRT] INFO: UFFParser: parsing image/kernel
[TensorRT] INFO: UFFParser: parsing image/Conv2D
[TensorRT] INFO: UFFParser: parsing image/bias
[TensorRT] INFO: UFFParser: parsing image/BiasAdd
[TensorRT] ERROR: image/Conv2D: kernel weights has count 1728 but 129024 was expected
[TensorRT] ERROR: UFFParser: Parser error: image/BiasAdd: The input to the Scale Layer is required to have a minimum of 3 dimensions.
为什么内核权重计数会出错?我将输入形状设置为正确的大小(224244,3…),这是我的模型:


谢谢


Igor使用NCHW格式。因此

parser.register_input("image_input", (1, 224, 224, 3))
应该是

parser.register_input("image_input", (1, 3, 224, 224))

在您的例子中,假设224是输入中的通道数。因此权重参数的数量为224*64*3*3=129204(输入通道*输出通道*内核高度*内核宽度)

是否可以检查uff模型的输入形状和输入名称?我认为问题出在输入的某个地方。uff模型包含:节点{id:“image_input”操作:“input”字段{key:“dtype”值{dtype:DT_FLOAT32}字段{key:“shape”值{I_list{val:-1 val:224 val:224 val:3} } } }
parser.register_input("image_input", (1, 3, 224, 224))