Dav*_*cco 6 quantization matrix-multiplication pytorch
我是张量量化的新手,并尝试做一些简单的事情
import torch
x = torch.rand(10, 3)
y = torch.rand(10, 3)
x@y.T
Run Code Online (Sandbox Code Playgroud)
使用在 CPU 上运行的PyTorch量化张量。我因此尝试
scale, zero_point = 1e-4, 2
dtype = torch.qint32
qx = torch.quantize_per_tensor(x, scale, zero_point, dtype)
qy = torch.quantize_per_tensor(y, scale, zero_point, dtype)
qx@qy.T # I tried...
Run Code Online (Sandbox Code Playgroud)
..并得到了错误
运行时错误:无法使用来自“QuantizedCPUTensorId”后端的参数运行“aten::mm”。'aten::mm' 仅适用于这些后端:[CUDATensorId、SparseCPUTensorId、VariableTensorId、CPUTensorId、SparseCUDATensorId]。
是不支持矩阵乘法,还是我做错了什么?
实现量化矩阵的矩阵乘法并不简单。因此,“传统”矩阵乘法 ( @) 不支持它(正如您的错误消息所示)。
您应该查看量化操作,例如torch.nn.quantized.functional.linear:
torch.nn.quantized.functional.linear(qx[None,...], qy.T)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
814 次 |
| 最近记录: |