基本操作
张量与矩阵、向量、标量的关系是怎么样的?
标量表示值, 矢量表示位置, 张量表示整个空间。可以认为标量是0阶张量,向量是1阶。
Variable”赋予”张量什么功能?
Variable是torch.autograd中的数据类型,主要用于封装Tensor,使得tensor可以进行自动求导。
主要有五个属性:
1.data:被包装的Tensor
2.grad:data的梯度
3.grad_fn:创建Tensor的Function(创建张量所用到的方法,如加法或乘法),是自动求导的关键
4.requires.grad:指示张量是否需要梯度,不需要梯度的张量可以设置为false
5.is_leaf:指示张量在计算图中是否是叶子结点。
采用torch.from_numpy创建张量,并打印查看ndarray和张量数据的地址;
import torch
import numpy as np
x = np.zeros((3, 3))
y = torch.from_numpy(x)
print(y)
print(id(y))
创建张量的三种方法
1.直接创建
2.依据数值
3.依据概率分布
见https://www.cnblogs.com/sakuraie/p/13341453.html
静态图和动态图的区别
动态图:搭建和运算同时进行
静态图:先搭建图,后运算
梯度清零
w = torch.tensor([1.], requires_grad=True)
x = torch.tensor([2.], requires_grad=True)
for i in range(4):
a = torch.add(w, x)
b = torch.add(w, 1)
y = torch.mul(a, b)
y.backward()
print(w.grad)
w.grad.zero_()
此处requires_grad=True代表这个节点需要计算梯度。
数据读取
pytorch建模流程一般是:
数据——模型——损失函数——优化器,几个部分,DataLoader处理数据部分。
DataLoader
; transforms
train_transform = transforms.Compose([
transforms.Resize((32, 32)),
transforms.RandomCrop(32, padding=4),
transforms.ToTensor(),
transforms.Normalize(norm_mean, norm_std),
])
数据标准化能够加快模型的收敛
参考资料
Original: https://blog.csdn.net/lucifer80861/article/details/123540933
Author: lucifer80861
Title: 2022-03-17pytorch基本操作,数据读取
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/761806/
转载文章受原作者版权保护。转载请注明原作者出处!