《动手学深度学习 PyTorch版》学习笔记(一):数据操作
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                《动手学深度学习 PyTorch版》学习笔记(一):数据操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                一、數據操作
在PyTorch中,torch.Tensor是存儲和變換數據的主要工具。
"tensor"這個單詞一般可譯作“張量”,張量可以看作是一個多維數組。 標量可以看作是0維張量,向量可以看作1維張量,矩陣可以看作是二維張量。1、torch.arange() 和torch.linspace
# arange(s, e, step) => 從s到e,步長為step x8 = torch.arange(1, 10, 2) # print(x8)# linspace(s, e, steps) => 從s到e,均勻切分成steps份 x9 = torch.linspace(2,8,3) # print(x9)2、torch.range() 和torch.arange() 的區別
>>> y=torch.range(1,6) >>> y tensor([1., 2., 3., 4., 5., 6.]) >>> y.dtype torch.float32>>> z=torch.arange(1,6) >>> z tensor([1, 2, 3, 4, 5]) >>> z.dtype torch.int643、torch.randn與torch.rand的區別
randn
torch.randn(*sizes, out=None) → Tensor返回一個包含了從標準正態分布中抽取的一組隨機數的張量
size:張量的形狀
out:結果張量
rand
torch.rand(*sizes, out=None) → Tensor返回一個張量,包含了從區間[0, 1)的均勻分布中抽取的一組隨機數
4、NumPy數組與Tensor的互相轉換(共享內存)
NumPy轉Tensor:torch.from_numpy()
 Tensor轉NumPy:numpy()
 另:可以使用 torch.tensor() 將NumPy數組轉換成Tensor,但不再共享內存
5、Tensor on GPU
if torch.cuda.is_available():device = torch.device("cuda") # GPUy = torch.ones_like(x, device=device) # 直接創建一個在GPU上的Tensorx = x.to(device) # 等價于 .to("cuda")z = x + yprint(z)print(z.to("cpu", torch.double)) # to()還可以同時更改數據類型6、索引
索引出來的結果與元數據共享內存
x = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(x) y = x[0, :] # 取出第一行 print(y) y += 1 print(y) print(x[0, :]) # 源tensor也被改了輸出
tensor([[1, 2, 3],[4, 5, 6]]) tensor([1, 2, 3]) tensor([2, 3, 4]) tensor([2, 3, 4])7、廣播機制
當對兩個形狀不同的Tensor按元素運算時,可能會觸發廣播(broadcasting)機制:先適當復制元素使這兩個Tensor形狀相同后再按元素運算
x = torch.arange(1, 3).view(1, 2) print(x) y = torch.arange(1, 4).view(3, 1) print(y) print(x + y)輸出
tensor([[1, 2]]) tensor([[1],[2],[3]]) tensor([[2, 3],[3, 4],[4, 5]]) 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的《动手学深度学习 PyTorch版》学习笔记(一):数据操作的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 成员变量、局部变量、实例变量、静态变量、
 - 下一篇: 计算机网络——速率相关的性能指标