这里写自定义目录标题
每日学习记录01:numpy和torch.tensor中对张量的基本操作
在深度学习中,经常要对张量进行操作,这些对张量的基本操作,我们必须掌握。
使用numpy和torch.Tensor新建一个张量
numpy
import numpy as np
array1 = np.array([1, 2, 3, 4, 5])
array2 = np,array([[1,2],[3,4]])
array3 = np.zeros((30, 40), dtype = np.float32)
Tensor
import torch
tensor = torch.Tensor([1, 2, 3, 4, 5])
tensor_2d = torch.Tensor([[1, 2, 3], [4, 5, 6]])
zero_tensor = torch.zeros(3, 4)
基本运算
维度调整
reshape vs view
print(arr2)
arr3=arr2.reshape(1,4)
print(arr3)
********************************************
[[1 2]
[3 4]]
[[1 2 3 4]]
tensor2 = tensor1.view(3,4)
view前
tensor([[ 1, 3, 24, 5, 123, 4],
[ 2, 3, 4, 5, 1, 3]])
view后
tensor([[ 1, 3, 24, 5],
[123, 4, 2, 3],
[ 4, 5, 1, 3]])
transpose vs permute
>>> arr2
array([[1, 2],
[3, 4]])
>>> arr2.transpose(1,0)
array([[1, 3],
[2, 4]])
>>> tensor2
tensor([[ 1, 3, 24, 5],
[123, 4, 2, 3],
[ 4, 5, 1, 3]])
>>> tensor2.permute(1,0)
tensor([[ 1, 123, 4],
[ 3, 4, 5],
[ 24, 2, 1],
[ 5, 3, 3]])
截断
img_denoise = torch.clamp(img_denoise + noise, 0, 255)
img_denoise = np.clip(img_denoise + noise, 0, 255)
这两个函数用于将数组中的元素限制在指定的最小值和最大值之间。如果数组中的元素值低于最小值,它们将被设置为最小值;如果元素值高于最大值,它们将被设置为最大值。如果未指定最小值或最大值,则相应的限制不会被应用