标签: onnx

从 onnx 文件中查找输入形状

如何找到 onnx 模型的输入大小?我最终想从 python 编写脚本。

使用 tensorflow 我可以恢复图定义,从中找到输入候选节点,然后获取它们的大小。我可以用 ONNX(甚至更简单)做类似的事情吗?

谢谢

python onnx

4
推荐指数
3
解决办法
5124
查看次数

将 LSTM Pytorch 模型转换为 ONNX 时遇到问题

我正在尝试将 LSTM 异常检测 Pytorch 模型导出到 ONNX,但遇到错误。请看下面我的代码。

注意:我的数据形状为 [2685, 5, 6]。这是我定义模型的地方:

class Model(torch.nn.Module):
    def __init__(self, input_dim, hidden_dim, layer_dim):
        super(Model, self).__init__()
        self.hidden_dim = hidden_dim 
        self.layer_dim = layer_dim
        self.lstm = nn.LSTM(input_dim, hidden_dim, layer_dim, batch_first=True)
        self.fc1 = torch.nn.Linear(hidden_dim, hidden_dim)
        self.fc2 = torch.nn.Linear(hidden_dim, input_dim)   
    def forward(self, x):
        h0 = torch.zeros(self.layer_dim, x.size(0), self.hidden_dim).requires_grad_()
        c0 = torch.zeros(self.layer_dim, x.size(0), self.hidden_dim).requires_grad_()
        out, (hn, cn) = self.lstm(x, (h0.detach(), c0.detach()))
        out = self.fc1(out) 
        out = self.fc2(out)
        return out

input_dim = 6
hidden_dim = 3
layer_dim = 2
model = Model(input_dim, hidden_dim, …
Run Code Online (Sandbox Code Playgroud)

python deep-learning lstm pytorch onnx

4
推荐指数
1
解决办法
6268
查看次数

为什么在 iOS 上使用 Caffe2 或 Core-ML 而不是 LibTorch(.pt 文件)?

似乎有几种方法可以在 iOS 上运行 Pytorch 模型。

  1. PyTorch(.pt) -> onnx -> caffe2
  2. PyTorch(.pt) -> onnx -> Core-ML (.mlmodel)
  3. PyTorch(.pt) -> LibTorch (.pt)
  4. PyTorch 移动版?

上述方法有什么区别?为什么人们使用 caffe2 或需要模型格式转换的 Core-ml (.mlmodel),而不是 LibTorch?

pytorch caffe2 coreml onnx libtorch

4
推荐指数
1
解决办法
415
查看次数

使用 C++ 解析 ONNX 模型。使用 C++ 从 onnx 模型中提取层、输入和输出形状

我正在尝试从 onnx 模型中提取输入层、输出层及其形状等数据。我知道有 python 接口可以做到这一点。我想做一些与此代码类似的事情,但是用 C++ 编写。我还粘贴了链接中的代码。我已经在 python 中尝试过了,它对我有用。我想知道是否有 C++ API 可以做同样的事情。

import onnx

model = onnx.load(r"model.onnx")

# The model is represented as a protobuf structure and it can be accessed
# using the standard python-for-protobuf methods

# iterate through inputs of the graph
for input in model.graph.input:
    print (input.name, end=": ")
    # get type of input tensor
    tensor_type = input.type.tensor_type
    # check if it has a shape:
    if (tensor_type.HasField("shape")):
        # iterate through dimensions of the shape:
        for …
Run Code Online (Sandbox Code Playgroud)

c++ python onnx onnxruntime

4
推荐指数
1
解决办法
5057
查看次数

使用 .onnx 时 Yolov5 OpenCV 错误:(-215:断言失败)

我刚刚创建了一个 yolov5 模型,并将其导出为 onnx 格式,因此它可以与 opencv 一起使用,但我不断收到错误:

[错误:0] 全局 D:\a\opencv-python\opencv-python\opencv\modules\dnn\src\dnn.cpp (3554) cv::dnn::dnn4_v20211004::Net::Impl::getLayerShapesRecursively OPENCV /DNN: [Reshape]:(466): getMemoryShapes() 抛出异常。输入=1 输出=1/1 blob=0 [错误:0] 全局 D:\a\opencv-python\opencv-python\opencv\modules\dnn\src\dnn.cpp (3557) cv::dnn:: dnn4_v20211004::Net::Impl::getLayerShapes递归输入[0] = [ 1 24 52 52 ] [ERROR:0] 全局 D:\a\opencv-python\opencv-python\opencv\modules\dnn\src\dnn. cpp (3561) cv::dnn::dnn4_v20211004::Net::Impl::getLayerShapes递归输出[0] = [ ] [错误:0] 全局 D:\a\opencv-python\opencv-python\opencv\modules\ dnn\src\dnn.cpp (3567) cv::dnn::dnn4_v20211004::Net::Impl::getLayerShapesRecursively 异常消息:OpenCV(4.5.4) D:\a\opencv-python\opencv-python\opencv\模块\dnn\src\layers\reshape_layer.cpp:106:错误:(-215:断言失败)total(srcShape,srcRange.start,srcRange.end)== maskTotal在函数'cv::dnn::computeShapeByReshapeMask'中

这是代码:

onnx_model = onnx.load('best.onnx')
onnx.checker.check_model(onnx_model)
net = cv.dnn.readNetFromONNX('best.onnx')


classes = []

with open("coco-dataset.labels", "r") as f:
    classes = [line.strip() for line in f.readlines()]

layerNames = net.getLayerNames()
outputLayers=[]
for i in …
Run Code Online (Sandbox Code Playgroud)

python opencv onnx yolov5

4
推荐指数
1
解决办法
6604
查看次数

Python NSFW 检测模块 Nudenet 不再工作?

我一直在我的最终学位项目中使用 python 模块nudnet 。我正在使用 google colab 来运行它。

在过去的几个月里它工作正常,没有任何问题,直到昨天,当我尝试导入它时,发生了这个错误:

!pip install --upgrade nudenet
from nudenet import NudeClassifier

ImportError: cannot import name '_registerMatType' from 'cv2.cv2' (/usr/local/lib/python3.7/dist-packages/cv2/cv2.cpython-37m-x86_64-linux-gnu.so)
Run Code Online (Sandbox Code Playgroud)

我尝试通过将opencv-python-headless降级到以前的版本来解决此错误

!pip uninstall opencv-python-headless==4.5.5.62 
!pip install opencv-python-headless==4.5.1.48
Run Code Online (Sandbox Code Playgroud)

但是,当我加载分类器时,会出现此错误:

classifier = NudeClassifier()


Downloading the checkpoint to /root/.NudeNet/classifier_model.onnx
MB| |#                                                | 0 Elapsed Time: 0:00:00
Content-length not found, file size cannot be estimated.
Succefully Downloaded to: /root/.NudeNet/classifier_model.onnx

InvalidProtobuf: [ONNXRuntimeError] : 7 : INVALID_PROTOBUF : Load model from /root/.NudeNet/classifier_model.onnx failed:Protobuf parsing failed.
Run Code Online (Sandbox Code Playgroud)

我也尝试过降级nudenet模块的版本,但仍然不起作用。

先感谢您。

这是 …

python google-colaboratory onnx

4
推荐指数
1
解决办法
5685
查看次数

tf_rep.export_graph(tf_model_path): KeyError: 'input.1

我正在尝试将onnx模型转换为tflite,我面临执行行错误tf_rep.export_graph(tf_model_path)。这个问题之前在 SO 中被问过,但没有提供明确的解决方案。

安装要求:tensorflow: 2.12.0, onnx 1.14.0, onnx-tf 1.10.0,Python 3.10.12

  import torch
  import onnx
  import tensorflow as tf
  import onnx_tf
  from torchvision.models import resnet50

  # Load the PyTorch ResNet50 model
  pytorch_model = resnet50(pretrained=True)
  pytorch_model.eval()

  # Export the PyTorch model to ONNX format
  input_shape = (1, 3, 224, 224)
  dummy_input = torch.randn(input_shape)
  onnx_model_path = 'resnet50.onnx'
  torch.onnx.export(pytorch_model, dummy_input, onnx_model_path, opset_version=12, verbose=False)

  # Load the ONNX model
  onnx_model = onnx.load(onnx_model_path)

  # Convert …
Run Code Online (Sandbox Code Playgroud)

python deep-learning tensorflow-lite onnx

4
推荐指数
1
解决办法
889
查看次数

导入错误:没有名为“onnx_backend”的模块?

我已经通过此 URL https://github.com/onnx/onnx安装了 ONNx ,现在尝试在此处运行一些模型https://github.com/onnx/models#face_detection,问题是导入时:

import numpy as np
import onnx
Run Code Online (Sandbox Code Playgroud)

它有效,但是当我尝试导入时

import onnx_backend as backend
Run Code Online (Sandbox Code Playgroud)

它给了我以下错误

Python 3.5.2 (default, Nov 23 2017, 16:37:01) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import onnx_backend as backend
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'onnx_backend'
Run Code Online (Sandbox Code Playgroud)

否则我可以加载模型而不会出现任何错误;如何纠正导入错误?

computer-vision python-3.x onnx

3
推荐指数
1
解决办法
4672
查看次数

如何加载 ONNX 文件并使用它在 PyTorch 中进行机器学习预测?

下面是源代码,我用它来加载.pth文件并进行多类图像分类预测。

model = Classifier()    # The Model Class.
model.load_state_dict(torch.load('<PTH-FILE-HERE>.pth'))
model = model.to(device)
model.eval()
Run Code Online (Sandbox Code Playgroud)
# prediction function to test images
def predict(img_path):
    image = Image.open(img_path)
    resize = transforms.Compose(
                    [ transforms.Resize((256,256)), transforms.ToTensor()])             
    image = resize(image)
    image = image.to(device)
    y_result = model(image.unsqueeze(0))
    result_idx = y_result.argmax(dim=1)
    print(result_idx)
Run Code Online (Sandbox Code Playgroud)

.pth使用 将该文件转换为 ONNX 文件torch.onnx.export

现在,如何单独使用 ONNX 文件而不使用该.pth文件来编写与上述类似的预测脚本?可以这样做吗?

pth pytorch onnx

3
推荐指数
1
解决办法
6576
查看次数

rembg 抛出运行时错误:LoadLibrary 失败:onnxruntime_providers_tensorrt.dll

我无法生成背景被删除的图像

from rembg import remove
from PIL import Image

input_path = "crop.jpeg"
output_path = 'crop1.png'

input = Image.open(input_path)
output = remove(input)
output.save(output_path)
Run Code Online (Sandbox Code Playgroud)

我的错误为: RuntimeError: D:\a_work\1\s\onnxruntime\core\session\provider_bridge_ort.cc:1069 onnxruntime::ProviderLibrary::Get [ONNXRuntimeError] : 1 : FAIL : LoadLibrary 失败,错误 126 ""当尝试加载“C:\users\lib\site-packages\onnxruntime\capi\onnxruntime_providers_tensorrt.dll”时

python loadlibrary tensorrt onnx rembg

3
推荐指数
1
解决办法
3388
查看次数