2022-03-17pytorch基本操作,数据读取

基本操作

张量与矩阵、向量、标量的关系是怎么样的?

标量表示值, 矢量表示位置, 张量表示整个空间。可以认为标量是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_()#不清零的话会累积
    #  w.add_(1)
    #"""
    #autograd小贴士:
    #    梯度不自动清零 
    #   依赖于叶子结点的结点,requires_grad默认为True     
    #   叶子结点不可执行in-place 
    ###"""

此处requires_grad=True代表这个节点需要计算梯度。

数据读取

pytorch建模流程一般是:
数据——模型——损失函数——优化器,几个部分,DataLoader处理数据部分。

DataLoader

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

transforms

在这里插入图片描述

train_transform = transforms.Compose([#有序组合transforms方法
    transforms.Resize((32, 32)),
    transforms.RandomCrop(32, padding=4),#卷积裁减
    transforms.ToTensor(), # 转成张量并归一化
    transforms.Normalize(norm_mean, norm_std),#标准化
])

数据标准化能够加快模型的收敛

参考资料

https://github.com/TingsongYu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值