首页 > 其他分享 >pytorch学习了解

pytorch学习了解

时间:2023-09-19 17:00:13浏览次数:32  
标签:loss train step 学习 pytorch 了解 test total data

import torchvision
from model1test import *
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter

trian_data=torchvision.datasets.CIFAR10('./datasets',train=True,transform=torchvision.transforms.ToTensor())
test_data=torchvision.datasets.CIFAR10('./datasets',train=False,transform=torchvision.transforms.ToTensor())

print('训练集长度 {}'.format(len(trian_data)))
print('测试集长度 {}'.format(len(test_data)))

traindata_loader=DataLoader(trian_data,batch_size=64)
testdata_loader=DataLoader(test_data,batch_size=64)

# 创建模型
mymodel1=mymodel()
if torch.cuda.is_available():
    mymodel1=mymodel1.cuda()

# 创建损失函数
loss_fn=nn.CrossEntropyLoss()
loss_fn=loss_fn.cuda()
# 创建优化器
learing_rate=0.001
optimzer=torch.optim.SGD(mymodel1.parameters(),lr=learing_rate)


# 开始训练
# 训练次数
total_train_step=0

# 测试次数

total_test_step=0
writer=SummaryWriter('first-train')
# 训练轮数
epoch=10
for i in range(epoch):
    print('第{}轮'.format(i+1))
#     开始训练
    for data in traindata_loader:
        imgs,targets=data
        imgs=imgs.cuda()
        targets=targets.cuda()
#         用模型训练
        outputs=mymodel1(imgs)

#         计算损失
        loss=loss_fn(outputs,targets)

#         优化器优化
        optimzer.zero_grad()
        loss.backward()
        optimzer.step()
#         总步数
        total_train_step+=1
        if total_train_step % 100 ==0:
            print('训练次数{},loss{}'.format(total_train_step,loss.item()))
            writer.add_scalar('train',loss.item(),total_train_step)

    # 开始测试模型
    total_test_loss=0
    with torch.no_grad():
        for data in testdata_loader:
            imgs,targets=data
            imgs=imgs.cuda()
            targets=targets.cuda()
            outputs=mymodel1(imgs)
            loss=loss_fn(outputs,targets)
            total_test_loss=total_test_loss+loss
    print('整体测试集{}'.format(total_test_loss))

    writer.add_scalar('test',total_test_loss.item(),total_test_step)
    total_test_step+=1

    torch.save(mymodel1,'number{}'.format(i))



writer.close()

标签:loss,train,step,学习,pytorch,了解,test,total,data
From: https://www.cnblogs.com/tgfoven/p/17715140.html

相关文章

  • sass 系统性学习
    学习随笔(Sass)该随笔是根据b站小满zs的Vue3+vite+Ts+pinia+实战+源码+electron的视频学习写的,Vue3+vite+Ts+pinia+实战+源码+electronbem格式类名中--代表,这个类的样式一样,仅颜色不一样。类名中__代表,这个类是上个类的子类。......
  • 《动手学深度学习 Pytorch版》 7.2 使用块的网络(VGG)
    importtorchfromtorchimportnnfromd2limporttorchasd2l7.2.1VGG块AlexNet没有提供一个通用的模板来指导后续的研究人员设计新的网络,如今研究人员转向了块的角度思考问题。通过使用循环和子程序,可以很容易地在任何现代深度学习框架的代码中实现这些重复的架构。......
  • Java学习随笔——1
    Java学习拉开学习Java的第一篇,本篇内容来自遇见狂神说,感谢狂神老师的细节无私,干货满满的课程内容什么是JavaJava是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态......
  • QT学习之OpenGL
    在公司内网找到一本第一版的《QtCreator快速入门》,然后到:https://www.yafeilinux.com/下载了第一版的源码,因为最近对三维动画比较感兴趣,所以直接开撸第12章:OpenGL问题1.如下图 搜索得到解决方案如下:这东西改完好像保存不了,下次打开还提示!问题2:提示找不到gluPerspective......
  • 知识付费平台开发技术实践:构建数字学习的未来
    引言知识付费平台的兴起正在塑造着数字学习的未来。本文将介绍一些关键的技术实践,帮助开发者构建强大的知识付费平台,提供出色的数字学习体验。1.选择适当的技术栈在开始知识付费平台的开发之前,首要任务是选择适当的技术栈。这包括后端开发语言、数据库、前端框架等。常用的后端语......
  • 学习规划和路线
    学习规划第一个月掌握Oracle入门学习掌握Oracle在虚拟机中的windows中安装oracle11g以及创建数据库尝试用不同的用户登录oracle、以及学习常用命令掌握如何使用SQLPLUS数据库管理工具掌握Oracle数据库数据文件的管理以及控制文件的管理第二个月学习Oracle结构管理以及安......
  • 08_了解STM32串口通讯
    了解STM32串口通讯TTL原理图RS232原理图串口差分:对比一根线发送一根线接收,抗干扰能力更强485舵机......
  • 综合性学习:难忘小学生活
    一轻轻敲醒沉睡的心灵慢慢张开你的眼睛看看忙碌的世界是否依然孤独地转个不停春风不解风情吹动少年的心让昨日脸上的泪痕随记忆风干了从哪里说起呢?从一首歌说起吧。每天的下午四点,放学的下课铃便会准时响起。如今我早就忘记了那段下课铃声的旋律,这大概是因为下课铃声不......
  • 软件测试学习
    软件测试学习笔记      职业规划。你现在怎么办?你10年之后怎么办?学一门技术?开发的薪资多,。你天天在干嘛?这不学那不学。这三年,在焦虑,学不会咋怎。这个会一点,那个会一点没什么用,往一个方向去,找一个方向去学出来,再找工作。做得出来。。。。。。懂,学计算机很简单......
  • C++系列十:日常学习-Lambda表达式
    目录前言必备理论知识:例子:前言有C#经验,使用起来,驾轻就熟。就是语法糖。但是也要熟悉用法,才好众享丝滑。内容参考:Chatjpt、文心一言必备理论知识:捕获列表:[]:默认不捕获任何变量;[=]:默认以值捕获所有变量;内部有一个相应的副本[&]:默认以引用捕获所有变量;[x]:仅以值捕获x,其它......