0x01:引子
在应用PyTorch训练好的模型时,为了保证模型的准确稳定性,需要保持与训练时相同的操作。
实际的应用部署中依赖项越少越好,所以下面笔者将演示如何在Python中不使用“torchvision.transforms”包来实现数据转换操作。抛砖引玉,讲述笔者如何思考与实现以便于读者朋友在Java与C++平台也能完成类似操作。
在模型的训练与测试时,我们通常会借助“torchvision.transforms”包来实现那个对数据变换的操作。一般会包括统一化图片的尺寸(Resize)、数据格式转化(ToTensor)与数据归一化大小(Normalize)等操作。
具体步骤:
- 使用“torchvision.transforms”来定义一个数据变化方法:trans_f。
- 通过调用trans_f实现数据转化
如下所示:
import cv2
import PIL
import numpy as np
import torchvision
trans_f = torchvision.transforms.Compose([
torchvision.transforms.Resize((64,128)),
torchvision.transforms.ToTensor(),
torchvision.transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
])
bgr_img = cv2.imread("demo.png")
src_img = c
复制代码