Pytorch變數型別轉換
Pytorch的資料型別為各式各樣的Tensor,Tensor可以理解為高維矩陣。與Numpy中的Array類似。Pytorch中的tensor又包括CPU上的資料型別和GPU上的資料型別,一般GPU上的Tensor是CPU上的Tensor加cuda()函式得到。通過使用Type函式可以檢視變數型別。一般系統預設是torch.FloatTensor型別。例如data = torch.Tensor(2,3)是一個2*3的張量,型別為FloatTensor; data.cuda()就轉換為GPU的張量型別,torch.cuda.FloatTensor型別。
下面簡單介紹一下Pytorch中變數之間的相互轉換。
(1)CPU或GPU張量之間的轉換
一般只要在Tensor後加long(), int(), double(),float(),byte()等函式就能將Tensor進行型別轉換;
例如:Torch.LongTensor--->Torch.FloatTensor, 直接使用data.float()即可
還可以使用type()函式,data為Tensor資料型別,data.type()為給出data的型別,如果使用data.type(torch.FloatTensor)則強制轉換為torch.FloatTensor型別張量。
當你不知道要轉換為什麼型別時,但需要求a1,a2兩個張量的乘積,可以使用a1.type_as(a2)將a1轉換為a2同型別。
(2)CPU張量 ----> GPU張量, 使用data.cuda()
(3)GPU張量 ----> CPU張量 使用data.cpu()
(4)Variable變數轉換成普通的Tensor,其實可以理解Variable為一個Wrapper,裡頭的data就是Tensor. 如果Var是Variable變數,使用Var.data獲得Tensor變數
(5)Tensor與Numpy Array之間的轉換
Tensor---->Numpy 可以使用 data.numpy(),data為Tensor變數
Numpy ----> Tensor 可以使用torch.from_numpy(data),data為numpy變數
相關文章
- 變數型別轉換變數型別
- Javascript基礎:變數型別轉換JavaScript變數型別
- Pytorch框架之tensor型別轉換(type, type_as)PyTorch框架型別
- JAVA型別轉換怎麼變Java型別
- JavaScript 字串轉換數值型別JavaScript字串型別
- 型別轉換型別
- java- 型別-轉換:基本型別以及包裝型別的轉換Java型別
- 資料型別,型別轉換資料型別
- 腦圖學習 JavaScript 之犀牛書【三 · 二】型別轉換、變數JavaScript型別變數
- js型別轉換JS型別
- 型別轉換(cast)型別AST
- Convert型別轉換型別
- Python pytorch 座標系變換與維度轉換PythonPyTorch
- Java資料型別及型別轉換Java資料型別
- JNI常用型別轉換型別
- 容器,型別轉換。List。型別
- c++ 型別轉換C++型別
- interface{} 型別的轉換型別
- 型別轉換注意點型別
- Spring型別轉換(Converter)Spring型別
- 資料型別轉換資料型別
- golang的型別轉換Golang型別
- 型別轉換運算子型別
- C# 型別轉換C#型別
- 型別轉換工具類型別
- 強制型別轉換型別
- go interface{}型別轉換Go型別
- 第11章 使用類——型別轉換(二)將自定義型別轉換為內建型別型別
- PHP變數型別PHP變數型別
- Java 變數型別Java變數型別
- 變數型別-Set變數型別
- mysql bigint型別和datetime型別的轉換MySql型別
- C#快速入門教程(9)——浮點數、Decimal型別和數值型別轉換C#Decimal型別
- JavaScript隱式型別轉換JavaScript型別
- 強制型別轉換之(==)型別
- JavaScript 資料型別轉換JavaScript資料型別
- 型別轉換(int 和 String)型別
- javascript資料型別轉換JavaScript資料型別