张量操作
学习如何操作 PyTorch 张量。
import torch # 导入 PyTorch import numpy as np
arr1 = np.array([[1., 2., 3.], [4., 5., 6.]]) arr1_tsr = torch.from_numpy(arr1)
print(f"arr1: \n{arr1}\n") print(f"arr1_tsr: \n{arr1_tsr}")
import torch import numpy as np
创建一个大小为 (3, 4) 的张量,元素服从标准正态分布(均值=0,标准差=1)
t1 = torch.randn(3, 4)
t1_arr = t1.numpy()
print(f"t1: \n{t1}\n") print(f"t1_arr: \n{t1_arr}")
import torch import numpy as np
t1 = torch.randn(3, 3) t2 = torch.exp(t1)
print(f"t1 =\n{t1}") print(f"t2 =\n{t2}")
import torch
t1 = torch.randn(2, 3) t2 = torch.randn(2, 3) t3 = torch.randn(2, 3) t4 = t1 * t2 + t3
print(f"t1 =\n{t1}") print(f"t2 =\n{t2}") print(f"t3 =\n{t3}") print(f"t4 =\n{t4}")
import torch
t1 = torch.tensor([[2, 3, 4], [5, 6, 7]]) t2 = torch.tensor([[1, 2], [2, 3], [3, 4]]) t3 = torch.matmul(t1, t2)
print(f"t1 =\n{t1}") print(f"t2 =\n{t2}") print(f"t3 =\n{t3}")
代码示例
1t3 = torch.add(torch.mul(t1, t2), 2)
代码示例
1t3 = t1 * t2 + 2
import torch
t1 = torch.tensor([[-2.0, 0.], [-3., 1.]]) t2 = torch.tensor([[1., 2.], [-2., 3.]]) t3 = t1 * t2 + 2 print(f"t3 =\n{t3}") print(f"t3.grad_fn = {t3.grad_fn}")
import torch
t1 = torch.tensor([[-2.0, 0.], [-3., 1.]], requires_grad=True) t2 = torch.tensor([[1., 2.], [-2., 3.]]) t3 = t1 * t2 + 2 print(f"t3 =\n{t3}") print(f"t3.grad_fn = {t3.grad_fn}")
import torch import cv2
electronic_board_img = cv2.imread("./images/electronics/beaglebone.jpg") electronic_board_tsr = torch.from_numpy(electronic_board_img) print(f"electronic_board_tsr.shape = {electronic_board_tsr.shape}")
cv2.imwrite("./output/0_board.png", electronic_board_img)
import torch import cv2
electronic_board_img = cv2.imread("./images/electronics/beaglebone.jpg") # (H, W, C) electronic_board_tsr = torch.from_numpy(electronic_board_img) # (H, W, C) electronic_board_tsr = torch.moveaxis(electronic_board_tsr, 2, 0) # 将第2个轴(即通道C)移动到第0位 print(f"electronic_board_tsr.shape = {electronic_board_tsr.shape}") # (C, H, W)
cv2.imwrite("./output/0_board.png", electronic_board_img)