小编Ada*_*dam的帖子

在 CUDA GPU 上运行 Pytorch 量化模型

我很困惑是否可以在 CUDA 上运行 int8 量化模型,或者只能使用 fakequantise 在 CUDA 上训练量化模型以部署在另一个后端(例如 CPU)上。

我想使用实际的 int8 指令而不是 FakeQuantized float32 指令在 CUDA 上运行模型,并享受效率提升。奇怪的是,Pytorch 文档对此没有具体说明。是否可以使用不同的框架在 CUDA 上运行量化模型,例如TensorFlow我很想知道。

这是准备量化模型的代码(使用训练后量化)。该模型是带有 nn.Conv2d 和 nn.LeakyRelu 以及 nn.MaxPool 模块的普通 CNN:

model_fp = torch.load(models_dir+net_file)

model_to_quant = copy.deepcopy(model_fp)
model_to_quant.eval()
model_to_quant = quantize_fx.fuse_fx(model_to_quant)

qconfig_dict = {"": torch.quantization.get_default_qconfig('qnnpack')}

model_prepped = quantize_fx.prepare_fx(model_to_quant, qconfig_dict)
model_prepped.eval()
model_prepped.to(device='cuda:0')

train_data   = ImageDataset(img_dir, train_data_csv, 'cuda:0')
train_loader = DataLoader(train_data, batch_size=32, shuffle=True, pin_memory=True)

for i, (input, _) in enumerate(train_loader):
    if i > 1: break
    print('batch', i+1, end='\r')
    input = input.to('cuda:0')
    model_prepped(input) …
Run Code Online (Sandbox Code Playgroud)

python machine-learning pytorch

9
推荐指数
1
解决办法
7233
查看次数

标签 统计

machine-learning ×1

python ×1

pytorch ×1