如何将 numpy.int64 分配给 torch.cuda.FloatTensor?
How do I assign a numpy.int64 to a torch.cuda.FloatTensor?
我无法将 int64 分配给 torch 张量。我有以下张量
tempScale = torch.zeros((total, len(scale))).cuda() if useGpu else torch.zeros((nbPatchTotal, len(scale)))
在我的代码中,当我使用以下行时,它会抛出一条错误消息
tmpScale[:, j] = scale
错误信息是
TypeError: can't assign a numpy.int64 to a torch.cuda.FloatTensor
我错过了什么?
你必须在分配之前将 scale
转换为与 tmpScale
相同类型和设备的火炬张量。
tmpScale[:, j] = torch.from_numpy(scale).to(tmpScale)
请注意,这是将 scale
从 int64
转换为 float32
,如果 scale
中的值具有大小,则可能会导致 loss of precision大于224(约1600万).
我无法将 int64 分配给 torch 张量。我有以下张量
tempScale = torch.zeros((total, len(scale))).cuda() if useGpu else torch.zeros((nbPatchTotal, len(scale)))
在我的代码中,当我使用以下行时,它会抛出一条错误消息
tmpScale[:, j] = scale
错误信息是
TypeError: can't assign a numpy.int64 to a torch.cuda.FloatTensor
我错过了什么?
你必须在分配之前将 scale
转换为与 tmpScale
相同类型和设备的火炬张量。
tmpScale[:, j] = torch.from_numpy(scale).to(tmpScale)
请注意,这是将 scale
从 int64
转换为 float32
,如果 scale
中的值具有大小,则可能会导致 loss of precision大于224(约1600万).