Pytorch 在CPU上运行TorchScript模块时100%CPU和计算机崩溃?

Pytorch 在CPU上运行TorchScript模块时100%CPU和计算机崩溃?,pytorch,quantization,torchscript,Pytorch,Quantization,Torchscript,我第一次以与本教程相同的方式完成了PyTorch模块的量化和脚本编写过程: 教程代码运行良好,但当我将其转换为自己的编码器-解码器模块时,我看到了一些奇怪的行为。下面是一些相关的代码: def measure\u inference\u latency(模型、输入大小、num\u samples=100、num\u warmups=10): model.eval() x=火炬.rand(尺寸=输入尺寸) 使用手电筒。无梯度() 对于范围内的(数次预热): _=型号(x) #torch.cuda.

我第一次以与本教程相同的方式完成了PyTorch模块的量化和脚本编写过程:

教程代码运行良好,但当我将其转换为自己的编码器-解码器模块时,我看到了一些奇怪的行为。下面是一些相关的代码:

def measure\u inference\u latency(模型、输入大小、num\u samples=100、num\u warmups=10):
model.eval()
x=火炬.rand(尺寸=输入尺寸)
使用手电筒。无梯度()
对于范围内的(数次预热):
_=型号(x)
#torch.cuda.synchronize()
使用手电筒。无梯度()
开始时间=time.time()
对于u in trange(数量样本):
_=型号(x)
#torch.cuda.synchronize()
结束时间=time.time()
已用时间=结束时间-开始时间
已用时间=已用时间/样本数
返回已用时间
样本数=5
fp32_延迟=测量_推断_延迟(型号_fp32,输入_大小=[1,3]+CFG.image_dim,num_samples=num_samples)
q_延迟=测量推理延迟(模型q,输入大小=[1,3]+CFG.image_dim,num_samples=num_samples)
开始=时间。时间()
qj_延迟=测量_推断_延迟(模型_qj,输入_大小=[1,3]+CFG.image_dim,num_samples=num_samples)
打印(time.time()-start)
我得到的结果是:

FP32 inference latency: 269.17 ms
Quantized inference latency: 38.93 ms
Quantized + JIT inference latency: 24.36 ms
似乎合理,但我注意到以下问题:

  • 在墙上的时钟时间中,
    qj_延迟
    行运行大约17秒。我在
    measure\u inference\u latency
    中将其缩小到预热步骤,该步骤未包含在最终报告的时间中。当我在热身中添加进度条时,我注意到大部分时间都在第一步TorchScript模块是否需要较长的预热时间?
  • 有一次我的整个电脑都关机了(Ubuntu 20.04.2 LTS)
  • 我知道我没有提供完整的代码,但首先我想知道是否有一个明显的答案我不知道