PyTorch學習:PyTorch 當做 NumPy 用

PyTorch 當做 NumPy 用:
PyTorch 的官方介紹是一個擁有強力GPU加速的張量和動態構建網絡的庫,其主要構件是張量,所以我們可以把 PyTorch 當做 NumPy 來用,PyTorch 的很多操作好 NumPy 都是類似的,但是因爲其能夠在 GPU 上運行,所以有着比 NumPy 快很多倍的速度。

import torch
import numpy as np
pytorch_tensor1 = torch.Tensor(numpy_tensor)
pytorch_tensor2 = torch.from_numpy(numpy_tensor)

使用以上兩種方法進行轉換的時候,會直接將 NumPy ndarray 的數據類型轉換爲對應的 PyTorch Tensor 數據類型.

 

# 如果 pytorch tensor 在 cpu 上
numpy_array = pytorch_tensor1.numpy()

# 如果 pytorch tensor 在 gpu 上
numpy_array = pytorch_tensor1.cpu().numpy()

使用上面的方法將 pytorch tensor 轉換爲 numpy ndarray

 

# 第一種方式
dtype = torch.cuda.FloatTensor # 定義默認 GPU 的 數據類型
gpu_tensor = torch.randn(10, 20).type(dtype)

# 第二種方式
gpu_tensor = torch.randn(10, 20).cuda(0) # 將 tensor 放到第一個 GPU 上
gpu_tensor = torch.randn(10, 20).cuda(1) # 將 tensor 放到第二個 GPU 上

使用第一種方式將 tensor 放到 GPU 上的時候會將數據類型轉換成定義的類型,而是用第二種方式能夠直接將 tensor 放到 GPU 上,類型跟之前保持一致

 

cpu_tensor = gpu_tensor.cpu()

將 tensor 放回 CPU

 

# 可以通過下面兩種方式得到 tensor 的大小
print(pytorch_tensor1.shape)
print(pytorch_tensor1.size())
# 得到 tensor 的數據類型
print(pytorch_tensor1.type())
# 得到 tensor 的維度
print(pytorch_tensor1.dim())
# 得到 tensor 的所有元素個數
print(pytorch_tensor1.numel())

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章