1.1 pytorch的基础使用方法|自动求导机制

文章目录

      • 基本使用方法
      • 自动求导机制

基本使用方法

import torch
# 创建一个矩阵
x = torch.empty(5,3)
print(x)
# 赋值随机值
x = torch.rand(5,3)
print(x)
# 初始化一个全为零的矩阵
x = torch.zeros(5,3, dtype=torch.long )
print(x)
# 传入一个矩阵,值得关注的时当数据为两个的时候,应当时[[][]]
x = torch.tensor([1,2,3])
print(x)
x = torch.tensor([[1,2,3],[4,5,6]])
print(x)
# 构造相同大小维度的矩阵
x = x.new_ones(5,3,dtype = torch.double)
print(x)
x = torch.randn_like(x,dtype=torch.float)
print(x)
# 展示矩阵大小
print(x.size())
# 计算加法
y = torch.rand(5,3)
print(x+y) # 或者直接使用torch.add(x+y)
# 索引
print(x[1])
# view改变矩阵的维度
x = torch.randn(4,4)
print(x)
y = x.view(16)
print(y)
z = x.view(-1,8)
print(z)
print(x.size()," ",y.size()," ",z.size())
# 转换为numpy格式
import numpy
a = x.numpy()
print(a,type(a))
# numpy转化为torch格式
a = numpy.ones(5)
print(a)
b = torch.from_numpy(a)
print(b)

自动求导机制

# 自动求导机制
import torch
x1 = torch.randn(1)
# require代表着自动求导机制
x2 = torch.randn(1,requires_grad=True)
y1 = torch.randn(1,requires_grad=True)
y2 = x1*x2
z = y1+y2
print(x1.requires_grad,x2.requires_grad,y1.requires_grad,y2.requires_grad)
# 输出结果False True True True,即相乘的数据结果会自动转化为自动求导机制。
# 做反向传播,也即会产生自动求导
z.backward(retain_graph=True)
# 求出下面的式子即z关于对应的变量的偏导
print(y1.grad)
print(x2.grad)

你可能感兴趣的:(pytorch,pytorch,python,numpy)