English | 简体中文
-
ResNet Deployment is based on the code of Torchvision and Pre-trained Models on ImageNet2012.
- (1)Deployment is conducted after Export ONNX Model by the *.pt provided by Official Repository;
- (2)The ResNet Model trained by personal data should Export ONNX Model. Please refer to Detailed Deployment Tutorials for deployment.
Import Torchvision, load the pre-trained model, and conduct model transformation as the following steps.
import torch
import torchvision.models as models
model = models.resnet50(pretrained=True)
batch_size = 1 #Batch size
input_shape = (3, 224, 224) #Input data, and change to personal input shape
# #set the model to inference mode
model.eval()
x = torch.randn(batch_size, *input_shape) # Generate tensor
export_onnx_file = "ResNet50.onnx" # Purpose ONNX file name
torch.onnx.export(model,
x,
export_onnx_file,
opset_version=12,
input_names=["input"], # Input name
output_names=["output"], # Output name
dynamic_axes={"input":{0:"batch_size"}, # Batch variables
"output":{0:"batch_size"}})
For developers' testing, models exported by ResNet are provided below. Developers can download them directly. (The model accuracy in the following table is derived from the source official repository)
Model | Size | Accuracy |
---|---|---|
ResNet-18 | 45MB | |
ResNet-34 | 84MB | |
ResNet-50 | 98MB | |
ResNet-101 | 170MB |
- Document and code are based on Torchvision v0.12.0