Pytorch个人学习记录总结 10

目录

优化器


优化器

官方文档地址:torch.optimicon-default.png?t=N6B9https://pytorch.org/docs/stable/optim.html 

Debug过程中查看的grad所在的位置:

model --> Protected Atributes --> _modules --> ‘model’ --> Protected Atributes --> _modules --> ‘0’(任选一个conv层) --> weight(查看weight下的data和grad的变化)

 简易训练代码,添加了Loss、Optim。

import torch
import torchvision
from torch import nn
from torch.nn import Conv2d, MaxPool2d, Flatten, Linear, Sequential
from torch.utils.data import DataLoader
from torchvision.transforms import transforms

dataset = torchvision.datasets.CIFAR10('./dataset', train=False, transform=transforms.ToTensor(), download=True)
dataloader = DataLoader(dataset, batch_size=2, shuffle=True)


class Model(nn.Module):
    def __init__(self):
        super(Model, self).__init__()
        self.model = Sequential(
            Conv2d(in_channels=3, out_channels=32, kernel_size=5, stride=1, padding=2),
            MaxPool2d(kernel_size=2, stride=2),
            Conv2d(in_channels=32, out_channels=32, kernel_size=5, stride=1, padding=2),
            MaxPool2d(kernel_size=2, stride=2),
            Conv2d(in_channels=32, out_channels=64, kernel_size=5, stride=1, padding=2),
            MaxPool2d(kernel_size=2, stride=2),
            Flatten(),
            Linear(1024, 64),
            Linear(64, 10)
        )

    def forward(self, x):  # 模型前向传播
        return self.model(x)


model = Model()  # 定义模型
loss_cross = nn.CrossEntropyLoss()  # 定义损失函数
optim = torch.optim.SGD(model.parameters(), lr=0.01)  # lr不能过大或者过小。刚开始的lr可设置得较大一点,后面再对lr进行调节
len = len(dataloader)

for epoch in range(20):
    total_loss = 0.0
    for imgs, targets in dataloader:
        outputs = model(imgs)
        res_loss = loss_cross(outputs, targets)

        optim.zero_grad()  # 优化器对model中的每一个参数进行梯度清零
        res_loss.backward()  # 损失反向传播
        optim.step()  # 对model参数开始调优
        total_loss += res_loss
    print('epoch:{}\ttotal_loss:{}\tmean_loss:{}.'.format(epoch, total_loss, total_loss / len))
# epoch:0	total_loss:9374.806640625	mean_loss:1.8749613761901855.
# epoch:1	total_loss:7721.240234375	mean_loss:1.544248104095459.
# epoch:2	total_loss:6830.775390625	mean_loss:1.3661550283432007.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 2022年10月,PyTorch深度学习框架将继续保持其在深度学习领域的领先地位。随着人工智能技术的不断发展,PyTorch将不断更新和改进,以适应新的挑战和需求。此时,PyTorch已经成为实现机器学习深度学习的最先进、最强大的框架之一,广泛应用于各种领域,如图像识别、自然语言处理、语音识别等。 随着深度学习技术的普及和不断发展,PyTorch将不断优化其已有的功能和性能,提供更多的高级算法和工具。这将使得开发者可以更加轻松地实现更为复杂和精细的深度学习模型,从而提高机器学习的效率和精度。另外,PyTorch还将与其他先进技术结合,比如对抗生成网络(GANs)和强化学习,以实现更为高级的应用。 2022年10月,PyTorch深度学习框架还将更加注重安全和隐私保护,增加安全性和使用方便性,为用户提供更为广泛的应用场景。同时,PyTorch团队将持续进行社区建设,与全球的开发者和研究者合作,探索更具前瞻性的深度学习技术和应用。这将为2022年和未来的深度学习领域带来更多的新机遇和挑战。 ### 回答2: pytorch是一个开源机器学习框架,广泛应用于深度学习领域。随着人工智能和机器学习技术的不断进步,pytorch也在不断发展和完善。到2022年10月,pytorch肯定会有更多强大的功能和特性。 在未来,pytorch会更加注重开发人员的使用体验,提供更加易用和便捷的API和工具。同时,pytorch也将进一步推进自动化领域的研究和开发,自动化超参数、模型结构等方面的选择,不仅能够大幅提高模型训练的效率,同时也能够减少人工智能研究者的工作量和时间成本。 随着AI和大数据技术的不断发展,pytorch也会更加注重数据处理和分析能力,在大规模数据集和复杂任务下进行更加高效、准确和可靠的数据分析和处理。 总之,pytorch作为深度学习领域的知名框架,将会不断发展和完善,为广大人工智能开发者和研究人员带来更加优秀的工具和平台,助力科学家们实现更多技术的创新和改变。 ### 回答3: 2022年10月,PyTorch深度学习已经成为当今最受欢迎和使用的深度学习框架之一。PyTorch是一个由Facebook开发和维护的开源深度学习框架,它具有高度的灵活性、易于使用和热门的社区支持,而且在深度学习域内受到了广泛的认可。 在2022年10月,PyTorch深度学习应用已开始深入我们的生活和工作领域,它被应用于各种各样的领域,包括计算机视觉、自然语言处理、自动驾驶、医疗诊断等。 在计算机视觉领域,PyTorch深度学习被广泛应用于图像分类和目标检测,例如使用Convolutional Neural Network (CNN)实现人脸识别和图像分割。 在自然语言处理领域,PyTorch深度学习可用于文本分类、情感分析、机器翻译等任务,以及生成模型的研究和开发。 在自动驾驶领域,PyTorch深度学习可以用于道路识别、车辆识别和自动驾驶决策的学习和优化等。 在医疗诊断领域,PyTorch深度学习被应用于疾病识别、医学影像分类等任务中,帮助医生进行更准确、及时、可靠的诊断。 因此,可以预见,在2022年10月,PyTorch深度学习将继续在其应用范围和影响力上发挥着重大的作用,它将继续为深度学习领域带来更多的创新和进步。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值