import torch圖片
"""數學
pytorch 基本數據類型string
1)不支持內建string類型,使用one-hot ,Embedding表示;io
使用one-hot表示時,如表示單詞較多,則one-hot會比較長,但其中只有一個元素值爲1,故整個向量表現得很稀疏。而且one-hot不能表示語義相關性,故使用Embedding表示;class
2)內建類型:import
CPU GPU數據類型
float torch.FloatTensor torch.cuda.FloatTensorfloat
double torch.DoubleTensor torch.cuda.DoubleTensornumpy
byte torch.ByteTensor torch.cuda.ByteTensorim
int torch.IntTensor torch.cuda.IntTensor
long torch.LongTensor torch.cuda.LongTensor
3)類型推斷:
"""
a = torch.randn(2,3)#隨機初始化2row3col
print(a.type(),type(a),isinstance(a,torch.FloatTensor))#torch.FloatTensor <class 'torch.Tensor'> True
"""
4)cpu與gpu轉換
"""
print(isinstance(a,torch.cuda.FloatTensor))#false
a = a.cuda()
print(isinstance(a,torch.cuda.FloatTensor))#true
"""
5)標量:主要用於計算loss時
Dimension 0 / Rank 0
a = torch.Tensor(1.0)#早期支持,最新版不支持
b = torch.Tensor(.3)
print(a,b)
標量的意思時沒有方向的量,如買5個蘋果,重量2.5KG,這裏即爲標量;
6)向量:注意這裏注意數學和計算機不一樣表示 方式,本質上兩者是一個東西。主要用於偏置,注意其是有方向的
Dimension 1 / Rank 1
"""
a = torch.FloatTensor([1.1])
b = torch.Tensor([1.1])#兩者相同
c = torch.Tensor(2)#隨機初始化
print(a,b,c)#tensor([1.1000]) tensor([1.1000]) tensor([1.0962e+09, 4.5874e-41])
import numpy as np
data = np.ones(2)
d = torch.from_numpy(data)#從numpy引入
print(d)#tensor([1., 1.], dtype=torch.float64)
print(torch.__version__)#1.1.0
print(d.shape,d.size())#torch.Size([2]) torch.Size([2])注意dimension和rank是一個東西,rank是數學上叫法;如[2,3]則其rank爲2;size和shape指的是具體形狀;
"""
Dimension2,Dimension3(適合RNN),Dimension4(適合圖片)
7)
"""
a = torch.randn(2,3)
print(a.size(0),a.shape[0])#第0個元素
a = torch .randn(2,3,4)
print(a.size(0))