PyTorch中的预训练基础模型与数据集(MNIST、SVHN、CIFAR10、CIFAR100、STL10、AlexNet、VGG16、VGG19、ResNet、Inception、SqueezeNet)
PyTorch中的预训练基础模型与数据集(MNIST、SVHN、CIFAR10、CIFAR100、STL10、AlexNet、VGG16、VGG19、ResNet、Inception、SqueezeNet)
这是一个面向 PyTorch 初学者的游乐场,其中包含在流行数据集上预定义的模型。目前我们支持:
以下是 MNIST 数据集的示例。这将自动下载数据集和预训练模型。
import torch
from torch.autograd import Variable
from utee import selector
model_raw, ds_fetcher, is_imagenet = selector.select('mnist')
ds_val = ds_fetcher(batch_size=10, train=False, val=True)
for idx, (data, target) in enumerate(ds_val):
data = Variable(torch.FloatTensor(data)).cuda()
output = model_raw(data)此外,如果要在 mnist 上训练 MLP 模型,只需运行 Python mnist/train.py
python3 setup.py develop --user我们提供了预计算好的 ImageNet 验证数据集,尺寸为 224x224x3。我们首先将图像的短边缩放到 256,然后在中心裁剪出 224x224 的图像。接着,我们将裁剪后的图像编码为 jpg 字符串,并转储到 pickle 文件中。
cd scriptval224_compressed.pkl(清华镜像 / Google Drive)Python convert.py(需要 48G 内存,感谢 @jnorwood)我们还提供了一个简单的演示,用于将这些模型量化到指定的位宽,支持多种方法,包括线性方法、最小最大值方法和非线性方法。
quantize --type cifar10 --quant_method linear --param_bits 8 --fwd_bits 8 --bn_bits 8 --ngpu 1
我们使用线性量化方法评估了流行数据集和模型的性能。所有结果中,BN中的运行均值和运行方差的位宽均为10位(32位浮点除外)。
| 模型 | 32位浮点 | 12位 | 10位 | 8位 | 6位 |
|---|---|---|---|---|---|
| MNIST | 98.42 | 98.43 | 98.44 | 98.44 | 98.32 |
暂无开放 Issues,或尚未同步最近议题。