当前位置: 首页 > news >正文

【LLM学习之路】9月16日 第六天

【LLM学习之路】9月16日 第六天

损失函数

L1Loss

可以取平均也可以求和

参数解析

input (N,*) N是batchsize,星号代表可以是任意维度 不是输入的参数,只是描述数据

target 形状要同上

MSELoss平方差

CrossEntropyLoss交叉熵

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

inputs的形状要是(N, C) N是批次大小

x = torch.tensor([0.1,0.2,0.3]) #形状为 (3,) 的 1D 张量
y = torch.tensor([1])
x = torch.reshape(x,(1,3)) #inputs 的形状要是 (N, C)
loss_cross = nn.CrossEntropyLoss()
result_cross = loss_cross(x,y)

反向传播

result_loss.backward()

优化器

套路是这样的

optim = torch.optim.SGD(tudui.parameters(),loss=0.01)
optim.zero_grad() 进行梯度清零
result_loss.backward() 反向传播计算梯度
optim.step() 对模型参数进行调优

后面自己添加了如何使用显卡

import torch
import torchvision.datasets
from torch import nn
from torch.nn import Conv2d, MaxPool2d, Flatten, Linear, Sequential
from torch.utils.data import DataLoader
# 检查是否有 GPU 可用
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(f"Using device: {device}")dataset = torchvision.datasets.CIFAR10("./data",train = False,download=True,transform=torchvision.transforms.ToTensor())
dataloader = DataLoader(dataset,batch_size=1)
class Tudui(nn.Module):def __init__(self):super(Tudui,self).__init__()self.conv1 = Conv2d(3,32,5,padding=2)self.maxpool1 = MaxPool2d(2)self.conv2 = Conv2d(32,32,5,padding=2)self.maxpool2 = MaxPool2d(2)self.conv3 = Conv2d(32,64,5,padding=2)self.maxpool3 = MaxPool2d(2)self.flatten = Flatten()self.linear1 = Linear(1024,64)self.linear2 = Linear(64,10)self.model1 = Sequential(Conv2d(3, 32, 5, padding=2),MaxPool2d(2),Conv2d(32, 32, 5, padding=2),MaxPool2d(2),Conv2d(32, 64, 5, padding=2),MaxPool2d(2),Flatten(),Linear(1024, 64),Linear(64, 10))def forward(self,x):x = self.model1(x)return x
loss = nn.CrossEntropyLoss()
tudui = Tudui().to(device)
optim = torch.optim.SGD(tudui.parameters(),lr=0.01)for epoch in range(20):running_loss = 0.0for data in dataloader:imgs,targets = dataimgs,targets = imgs.to(device), targets.to(device)outputs = tudui(imgs)# print(outputs)# print(targets)result_loss = loss(outputs,targets)optim.zero_grad()result_loss.backward()optim.step()# print("ok")running_loss = result_loss + running_lossprint(running_loss)

完整的模型验证套路

利用已经训练好的模型,然后给它提供输入

http://www.lryc.cn/news/443500.html

相关文章:

  • Qt_窗口界面QMainWindow的介绍
  • 华为云centos7.9按装ambari 2.7.5 hostname 踩坑记录
  • 重生之我们在ES顶端相遇第15 章 - ES 的心脏-倒排索引
  • 金刚石切削工具学习笔记分享
  • 【文献阅读】基于原型的自适应方法增强未见到的构音障碍者的语音识别
  • Kafka-Go学习
  • Nginx反向代理出现502 Bad Gateway问题的解决方案
  • 通信工程学习:什么是VLAN虚拟局域网
  • python qt5 常用
  • 漏洞复现_永恒之蓝
  • PyCharm的使用
  • 浅谈C#之AutoResetEvent和ManualResetEvent
  • 【网络安全 | 靶机搭建】修改镜像源、更新软件源、安装git、更改python版本等
  • VuePress搭建文档网站/个人博客(详细配置)主题配置
  • Go语言笔记
  • java缓存介绍
  • react中diff的选择性子树渲染
  • Git clone远程仓库没有其他分支的问题
  • 山东潍坊戴尔存储服务器维修 md3800f raid恢复
  • Hive企业级调优[6]——HQL语法优化之任务并行度
  • Excel 冻结多行多列
  • 基于微信小程序的智慧物业管理系统
  • 【论文笔记】BEVNeXt: Reviving Dense BEV Frameworks for 3D Object Detection
  • 基于open-gpu-kernel-modules的p2p vram映射bar1提高通信效率
  • java之斗地主部分功能的实现
  • 我的AI工具箱Tauri版-VideoIntroductionClipCut视频介绍混剪
  • 【鸿蒙OH-v5.0源码分析之 Linux Kernel 部分】011 - 第一个用户空间进程 init 进程 第一阶段初始化过程 源码分析
  • MyBatis 源码解析:Mapper 文件加载与解析
  • (11)(2.1.2) DShot ESCs(二)
  • yolov5/8/9模型在COCO分割数据集上的应用【代码+数据集+python环境+GUI系统】