torch的基本使用方法
一、创建矩阵\张量
1、创建一个m*n*c的空矩阵:
x = torch.empty(m,n,c)
2、创建一个m*n*c的随机数值矩阵:
x = torch.rand(m,n,c)
3、创建一个m*n*c的0矩阵:
y = torch.zeros(m, n, c)
创建矩阵时,可以使用dtype参数来指定矩阵内存储的数据类型:
y = torch.zeros(5,5,5, dtype=torch.long)
4、读取图片,其类型为ndarray,将其转换为tensor类型:
img = cv.imread('road.jpeg')
print(type(img))
img = torch.tensor(img)
print(img)
print(type(img))
5、使用.size查看维度:
img = cv.imread('road.jpeg')
print(type(img))
img = torch.tensor(img)
print(img.size())
二、矩阵基本运算
1、加法:
def tensor_add():
x = torch.ones(25, 25)
y = torch.ones(25, 25)
c = x + y
d = torch.add(x, y)
2、减法(也能使用加法函数):
x = torch.ones(25, 25)
y = torch.ones(25, 25)
c = x - y
d = torch.add(x, -y)
3、索引、切片操作,与numpy操作类似:
x = torch.ones(25, 25)
print(x[:, 1])
# 索引再重新赋值
x[:, 1] = 25
print(x[:, 1])
4、view操作改变矩阵形状:
x = torch.ones(25, 25)
# -1的意思表示自动计算,这里就是将矩阵平展为一维
x = x.view(-1)
print(x.size())
5、numpy与torch转换:
上面已经用过了一种方法,就是读取的图片然后将其转换为tensor类型,另外一种方法:
def numpy2tensor():
a = np.linspace(0, 100, 100)
b = torch.from_numpy(a)
print(type(a), type(b))