天天看點

numpy array轉tensor

1、 

torch.

tensor

(data, *, dtype=None, device=None, requires_grad=False, pin_memory=False)   

最推薦

資料類型:和輸入相同,可以使用dtype改變資料類型

拷貝類型:總是深拷貝;  如果資料為tensor,不想拷貝,使用

torch.Tensor.requires_grad_()

 or 

torch.Tensor.detach()

具體參考:https://pytorch.org/docs/stable/generated/torch.tensor.html#torch.tensor

2、

torch.

as_tensor

(data, dtype=None, device=None)

次推薦

資料類型:和輸入相同;可以使用dtype改變資料類型

拷貝類型:data為tensor,如果dtype和device相同,不拷貝,反之則拷貝;

                  data為numpy,如果dtype相同,device=cpu,不拷貝

具體參考:https://pytorch.org/docs/stable/generated/torch.as_tensor.html#torch.as_tensor

3、

torch.

from_numpy

(ndarray) 

資料類型:和輸入相同

拷貝類型:淺拷貝;

4、torch.Tensor()

torch.Tensor

 是預設的tensor類型 (

torch.FloatTensor

) 的簡稱.

資料類型:預設Float32

拷貝類型:深拷貝

具體參考:https://pytorch.apachecn.org/docs/1.0/tensors.html

類似的包含8種張量,上連結均有介紹

5、Transform.ToTensor

def transform():
    return Compose([
    ToTensor(),
    ])
data = transform(data)
           

這是我采坑的地方,ToTensor會自動歸一化,也就是 / 255

隻處理三維資料(HWC),C不一定為3

參考感謝:

https://zhuanlan.zhihu.com/p/345648168

https://blog.csdn.net/github_28260175/article/details/105382060

繼續閱讀