pytorchモデル回転ncnn

968 ワード

まずテンセントオープンソースのncnnをコンパイルします:https://github.com/tongxiaobin/ncnn
tools/pytorchの一番下にリンクがあります.https://github.com/Tencent/ncnn/wiki/practical-pytorch-to-onnx-to-ncnn(pytorchをncnnに変更)
 
1、pytorch to onnx
新しいpytorch 2 onnx.pyファイル、内容は以下の通りです.
import torch
import torchvision
import torch.onnx

# An instance of your model
model = torchvision.models.resnet18()

# An example input you would normally provide to your model's forward() method
x = torch.rand(1, 3, 224, 224)

# Export the model
torch_out = torch.onnx._export(model, x, "resnet18.onnx", export_params=True)

エクスポートされたonnxモデルには、ncnnをサポートしない冗長次元が多数含まれるため、冗長次元を削除する必要があります.
python3 -m onnxsim resnet18.onnx resnet18-sim.onnx

2、onnx to ncnn
ncnnコンパイルが完了するとbuild/tools/onnxに実行可能なファイルonnx 2 ncnnが生成されます
onnx2ncnn resnet18-sim.onnx resnet18.param resnet18.bin

最後に得られたparmおよびbinファイルはncnnに必要なモデルである.