- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将预先训练好的火炬模型转换为 ONNX,但收到以下错误:
RuntimeError: step!=1 is currently not supported
我正在一个预先训练的着色模型上尝试这个:
https://github.com/richzhang/colorization
!git clone https://github.com/richzhang/colorization.git
cd colorization/
import colorizers
model = colorizer_siggraph17 = colorizers.siggraph17(pretrained=True).eval()
input_names = [ "input" ]
output_names = [ "output" ]
dummy_input = torch.randn(1, 1, 256, 256, device='cpu')
torch.onnx.export(model, dummy_input, "test_converted_model.onnx", verbose=True,
input_names=input_names, output_names=output_names)
我感谢任何帮助:)
[TensorRT] ERROR: Network must have at least one output
这是我使用的代码:
import torch
import pycuda.driver as cuda
import pycuda.autoinit
import tensorrt as trt
import onnx
TRT_LOGGER = trt.Logger()
def build_engine(onnx_file_path):
# initialize TensorRT engine and parse ONNX model
builder = trt.Builder(TRT_LOGGER)
builder.max_workspace_size = 1 << 25
builder.max_batch_size = 1
if builder.platform_has_fast_fp16:
builder.fp16_mode = True
network = builder.create_network()
parser = trt.OnnxParser(network, TRT_LOGGER)
# parse ONNX
with open(onnx_file_path, 'rb') as model:
print('Beginning ONNX file parsing')
parser.parse(model.read())
print('Completed parsing of ONNX file')
# generate TensorRT engine optimized for the target platform
print('Building an engine...')
engine = builder.build_cuda_engine(network)
context = engine.create_execution_context()
print("Completed creating Engine")
return engine, context
ONNX_FILE_PATH = 'siggraph17.onnx' # Exported using the code above
engine,_ = build_engine(ONNX_FILE_PATH)
我试图通过以下方式强制 build_engine 函数使用网络的输出:
network.mark_output(network.get_layer(network.num_layers-1).get_output(0))
但它没有用。
最佳答案
就像我在评论中提到的那样,这是因为切片 torch.onnx
仅支持 step = 1
但是模型中有两步切片:
self.model2(conv1_2[:,:,::2,::2])
目前您唯一的选择是将切片重写为其他一些操作。您可以通过使用 range 和 reshape 来获得适当的索引。考虑以下函数“step-less-arange”(我希望它对于任何有类似问题的人来说都足够通用):
def sla(x, step):
diff = x % step
x += (diff > 0)*(step - diff) # add length to be able to reshape properly
return torch.arange(x).reshape((-1, step))[:, 0]
用法:
>> sla(11, 3)
tensor([0, 3, 6, 9])
现在你可以像这样替换每个切片:
conv2_2 = self.model2(conv1_2[:,:,self.sla(conv1_2.shape[2], 2),:][:,:,:, self.sla(conv1_2.shape[3], 2)])
注意 : 你应该优化它。索引是为每次调用计算的,因此预先计算它可能是明智的。
关于pytorch - 无法将 PyTorch 模型导出到 ONNX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65496349/
当我将在 Pytorch 上训练的双线性层网络转换为 ONNX 时,出现以下错误 RuntimeError: [ONNXRuntimeError] : 10 : INVALID_GRAPH : Loa
当我将在 Pytorch 上训练的双线性层网络转换为 ONNX 时,出现以下错误 RuntimeError: [ONNXRuntimeError] : 10 : INVALID_GRAPH : Loa
我尝试将我的 PyTorch 对象检测模型 (Faster R-CNN) 转换为 ONNX。我有两个设置。第一个工作正常,但出于部署原因我想使用第二个。区别在于我用于导出函数 torch.onnx.e
我正在尝试从 onnx 模型中提取输入层、输出层及其形状等数据。我知道有 python 接口(interface)可以做到这一点。我想做类似的事情 code但在 C++ 中。我还粘贴了链接中的代码。我
** ONNX Runtime****:由微软推出,用于优化和加速机器学习推理和训练**,适用于ONNX模型,是一个跨平台推理和训练机器学习加速器(ONNX Runtime is a cro
我已将我的 PyTorch 模型导出到 ONNX。现在,有没有办法让我从那个 ONNX 模型中获取输入层? 将 PyTorch 模型导出到 ONNX import torch.onnx checkpo
如何找到 onnx 模型的输入大小?我最终想从 python 编写它的脚本。 使用 tensorflow 我可以恢复图定义,从中找到输入候选节点,然后获取它们的大小。我可以用 ONNX(甚至更简单)做
我正在使用 ML.NET 导入 ONNX 模型来进行对象检测。作为记录,我从 Microsoft 的 CustomVision.ai 站点导出了模型。 我检查了 Netron 中的模型文件,它清楚地显
如何从 ONNX 模型中获取权重/偏置矩阵值,我目前可以从 model.onnx 中获取输入、内核大小、步幅和填充值。我加载模型,然后读取图形节点以获得相同的结果: import onnx m = o
我正在尝试将预先训练好的火炬模型转换为 ONNX,但收到以下错误: RuntimeError: step!=1 is currently not supported 我正在一个预先训练的着色模型上尝试
使用 ONNX Runtime 在深度学习模型上运行推理。假设我有 4 个不同的模型,每个模型都有自己的输入图像,我可以在 4 个线程中并行运行它们吗?会不会有一个“环境”,然后是 4 个 sessi
我已通过以下方式将模型导出到 ONNX: # Export the model torch_out = torch.onnx._export(learn.model, # mo
如何将 OpenCV 框架转换为适合我的 ONNX 模型接受的尺寸?目前,我的 ONNX 模型输入形状是 [32, 3, 256, 224],但是当我使用 OPENCV 调整大小并打印 img 形状时
我尝试将我的 pytorch Resnet50 模型转换为 ONNX 并进行推理。转换程序没有错误,但是onnx模型的最终结果来自onnxruntime与pytorch的origin模型结果有较大差距
我有一个卡住为 .pb 的 TensorFlow 图,我想将其转换为 .onnx 格式。我目前正在尝试使用 mmconvert (来自 Microsoft 的 MMdnn ),显然我做错了什么(请参见
我目前正在尝试将我使用本教程创建的已保存(且正在工作)的 .pb 文件 ( https://github.com/thtrieu/darkflow ) 转换为 onnx 文件。我现在正在使用winML
我正在尝试将具有多个网络的 pytorch 模型转换为 ONNX,但遇到了一些问题。 git 存储库:https://github.com/InterDigitalInc/HRFAE 训练师类: cl
我从 Matterport's MaskRCNN implementation 在 .h5 中构建了一个自定义模型.我使用 model.keras_model.save() 设法保存了完整模型而不是单
我找不到任何人向外行人解释如何将 onnx 模型加载到 python 脚本中,然后在输入图像时使用该模型进行预测。我能找到的只有这些代码行: sess = rt.InferenceSession("o
有没有办法并行运行多个 ONNX 模型并使用多个可用内核? 目前,我已经训练了两个 ONNX 模型并想使用它们进行推断。我使用了 Python 中的线程,但这并没有真正使用多核。 之后,我尝试了多处理
我是一名优秀的程序员,十分优秀!