小编Aks*_*rya的帖子

类型错误:无法将 cuda:0 设备类型张量转换为 numpy。首先使用 Tensor.cpu() 将张量复制到主机内存(使用 yolact 边缘进行分割)

我正在 yolac Edge 上运行分段。我正在尝试使用我自己的算法找到掩模的最小和最大 x 和 y 像素坐标。我正在尝试将元组的值转换为 numpy。但是我收到以下错误

TypeError: can't convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first.
Run Code Online (Sandbox Code Playgroud)

代码


    xmin = []
    xmax = []
    y = []
    print(np.shape(t[3]))
    print(type(t[3][:][:][:]))
    #row = (t[3][1][360][:]==1).nonzero(as_tuple=True) 
    for i in range (0, 2):
        t_cpu = t[3].clone().detach().cpu()
        horizontal_translation = torch.where(t[3][i][:][:]==1)
        print(horizontal_translation)
        horizontal_translation_numpy = np.asarray(horizontal_translation[1])
        x_min = np.amin(horizontal_translation_numpy)
        x_max = np.amax(horizontal_translation_numpy)
        np.append(xmin,x_min)
        np.append(xmax, x_max)
    print(xmin)
    print(xmax)
Run Code Online (Sandbox Code Playgroud)

注意:t是默认程序输出的pytorch张量,其中包含t[3]中的掩码数据。我该如何解决?

输出:

torch.Size([2, 720, 1280])
<class 'torch.Tensor'>
(tensor([105, 105, 105, …
Run Code Online (Sandbox Code Playgroud)

python image-segmentation pytorch tensor

6
推荐指数
1
解决办法
6565
查看次数

标签 统计

image-segmentation ×1

python ×1

pytorch ×1

tensor ×1