代码复现错误

1.

问题:

torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 64.00 MiB (GPU 0; 39.59 GiB total capacity; 37.72 GiB already allocated; 38.19 MiB free; 37.83 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation.  See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

解决方法:

减小batch大小,可以减小每一批次的内存使用。批大小:24➡️12➡️6

减小批量大小(batch size)有几个潜在的好处:

  1. 减少内存占用: 更小的批量大小意味着每个批次需要的内存更少,这有助于减少GPU内存的占用。特别是在处理大型模型或者数据集时,较小的批量大小可以降低内存消耗,从而减少因内存不足而导致的错误。

  2. 加快训练速度: 较小的批量大小可能会导致更频繁的参数更新,这有助于加快模型的训练速度。虽然每轮迭代的计算量可能会增加,但由于参数更新更加频繁,整体上可以获得更快的收敛速度。

  3. 泛化能力: 一些研究表明,通过减小批量大小,模型可能会更好地泛化到新的数据上,从而提高模型的性能。

尽管减小批量大小具有上述好处,但也存在一些潜在的问题:

  1. 训练时间延长: 由于参数更新更频繁,整体训练时间可能会延长,尤其是在处理较大的数据集时。

  2. 训练稳定性: 对于某些模型和数据集,较小的批量大小可能导致训练过程的不稳定性,包括震荡、收敛速度下降等问题。

2.

问题:

RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cpu and cuda:0!

解决;

找到报错的位置,在方法体内,把张量后面加上.to('cuda:0')

补充:

张量(tensor)是深度学习中的一种数据结构,类似于多维数组。在PyTorch等深度学习框架中,张量是进行数值计算的基本数据类型,用来存储和处理数据以及执行各种运算。

张量可以是多维的,可以是标量(0维张量)、向量(1维张量)、矩阵(2维张量)甚至更高维度的数组。在深度学习中,神经网络的输入、输出和参数通常都表示为张量,通过张量之间的运算来实现神经网络模型的训练和推理过程。

张量支持各种数学运算,如加法、减法、乘法、除法、矩阵乘法等,同时也支持广播(broadcasting)、切片(slicing)等操作。在深度学习中,张量是非常重要的数据类型,对于构建和训练神经网络模型起着关键作用。

3.

问题:

AttributeError: 'list' object has no attribute 'float'

4.在计算loss的时候,出现了loss:nan的情况

解决:

(1)推测是值太小,loss = criterion(outputs, batch_y+1e-5) ➡️ loss = criterion(outputs, batch_y+1e-5),但更改后并未解决问题

(2)推测是数据精度问题,如bf16和fp16,但改变精度后并未解决问题

补:

(3)修改学习率learning_rate=0.01 ➡️ 0.001,目前效果良好

学习率在深度学习训练中起着非常重要的作用,它决定了模型参数在每次迭代中更新的幅度。学习率的高低对训练过程和结果有着直接影响:

  1. 学习率过高:

    • 如果学习率设置过高,可能导致参数更新过大,使得模型在参数空间内来回波动,甚至出现数值溢出,最终导致训练不稳定或损失函数出现 NaN。
    • 高学习率可能会导致模型无法收敛到最优解,甚至完全偏离最优解,从而影响模型的性能。
  2. 学习率过低:

    • 如果学习率设置过低,模型参数更新的幅度较小,可能导致模型收敛速度过慢,需要更多的迭代次数才能达到收敛状态。
    • 过低的学习率也可能导致模型陷入局部最优解或者鞍点,难以跳出局部最优解找到更好的全局最优解。

补充:

1.

2.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/428767.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《TCP/IP详解 卷一》第11章 DNS

目录 11.1 引言 11.2 DNS名称空间 11.2.1 DNS命名语法 11.3 名称服务器和区域 11.4 DNS缓存 11.5 DNS 协议 11.5.1 DNS消息格式 11.5.2 DNS 扩展格式(EDNS0) 11.5.3 UDP 或 TCP 11.5.4 问题(查询)和区域区段格式 11.5.…

什么是SpringCloud,有哪些组件?

spring Cloud 是基于spring boot的分布式系统开发工具,它提供了一系列开箱即用的,针对分布式系统开发的特性和组件。用于帮助开发人员快速构建和管理云原生应用程序。 Spring Cloud 的主要目标是解决分布式系统中的常见问题,例如服务发现,负载均衡,配置管理,断路器,消息总…

搜索回溯算法(DFS)1------递归

目录 简介: 递归问题解题的思路模板 例题1:汉诺塔 例题2:合并两个有序链表 例题3:反转链表 例题4:两两交换链表中的节点 例题5:Pow(x,n)-快速幂 结语: 简介&…

C++_哈希表

目录 1、哈希表的用法 2、哈希函数-除留余数法 3、哈希冲突 4、闭散列和开散列 4.1 闭散列 4.1.1 哈希表的扩容 4.1.2 二次探测 4.2 开散列(哈希桶) 4.2.1 开散列的扩容 结语 前言-哈希表概念: 哈希表也是一种存储信息的结构&am…

数据结构(一)——概述

一、绪论 1.1数据结构的基本概念 数据:用来描述客观事物的数、计算机中是字符及所有能输入并被程序识别和处理的符号的集合。 数据元素:数据的基本单位,一个数据元素可由若干数据项组成。 数据结构:指相互之间存在一种或多种特…

“羊驼“入侵CV,美团浙大沈春华团队将LLaMA向CV扩展,构建全新基础模型VisionLLaMA

本文首发:AIWalker https://arxiv.org/abs/2403.00522 https://github.com/Meituan-AutoML/VisionLLaMA 本文概述 大型语言模型构建在基于Transformer的架构之上来处理文本输入, LLaMA 系列模型在众多开源实现中脱颖而出。类似LLaMa的Transformer可以用来处理2D图像吗&#xf…

FreeRTOS学习笔记-基于stm32f103(1)基础知识

一、裸机与RTOS 我们使用的32板子是裸机,又称前后台系统。裸机有如下缺点: 1、实时性差。只能一步一步执行任务,比如在一个while循环中,要想执行上一个任务,就必须把下面的任务执行完,循环一遍后才能执行…

【Java设计模式】三、简单工厂、工厂方法模式、抽象工厂模式

文章目录 0、案例:咖啡屋1、简单工厂模式 静态工厂(不属于23种之列)2、工厂方法模式3、抽象工厂模式4、简单工厂模式 配置文件解除耦合5、JDK源码中对工厂模式的应用 0、案例:咖啡屋 模拟咖啡店点餐。咖啡有多种,抽…

day6 数组 嵌套循环

1&#xff1a;打印杨辉三角 91 int arr[6][6];92 int i,j0;93 for(i0;i<6;i)94 {95 for(j0;j<i;j) 96 {97 if(j0||ij)98 {99 arr[i][j]1; …

14 数值稳定性 + 模型初始化和激活函数【李沐动手学深度学习v2笔记】

1. 数值稳定性 神经网络的梯度 向量对向量求导&#xff08;梯度&#xff09;得到矩阵&#xff0c;太多的矩阵进行乘法会导致常见的两个问题 梯度消失和梯度爆炸 MLP MLP使用ReLU作为激活函数 梯度爆炸的问题 输入很大的时候梯度接近为0 梯度消失 梯度消失的问题 只能训练比…

一个强大的 VS Code 的AI代码插件:Fitten Code

AI 代码助手有 GitHub Copilot&#xff0c;一直想用&#xff0c;但是要爬梯子&#xff0c;还要收费。 一款国产AI写代码神器 Fitten Code&#xff0c;满足了我对AI写代码的幻想。它在功能上基本和 GitHub Copilot 差不多。 重要是的是&#xff0c;免费&#xff0c;免费&#…

【Web - 框架 - Vue】随笔 - Vue的简单使用 - 快速上手

【Web - 框架 - Vue】随笔 - Vue的简单使用 - 快速上手 Vue模板代码 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>模板</title> </head> <body> <div></div>…

安装Docker及DockerCompose

0.安装Docker Docker 分为 CE 和 EE 两大版本。CE 即社区版&#xff08;免费&#xff0c;支持周期 7 个月&#xff09;&#xff0c;EE 即企业版&#xff0c;强调安全&#xff0c;付费使用&#xff0c;支持周期 24 个月。 Docker CE 分为 stable test 和 nightly 三个更新频道…

09 Qt扩展LineEdit组件:Input输入框

系列文章目录 01 Qt自定义风格控件的基本原则-CSDN博客 02 从QLabel聊起&#xff1a;自定义控件扩展-图片控件-CSDN博客 03 从QLabel聊起&#xff1a;自定义控件扩展-文本控件-CSDN博客 04 自定义Button组件&#xff1a;令人抓狂的QToolButton文本图标居中问题-CSDN博客 0…

数仓项目6.0(一)

尚硅谷大数据项目【电商数仓6.0】企业数据仓库项目_bilibili 数据流转过程 用户➡️业务服务器➡️数据库存储➡️数仓统计分析➡️数据可视化 数据仓库处理流程&#xff1a;数据源➡️加工数据➡️统计筛选数据➡️分析数据 数据库不是为了数据仓库服务的&#xff0c;需要…

【开源】SpringBoot框架开发数据可视化的智慧河南大屏

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 数据模块 A4.2 数据模块 B4.3 数据模块 C4.4 数据模块 D4.5 数据模块 E 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的数据可视化的智慧河南大屏&#xff0c;包含了GDP、…

MATLAB环境下基于离散小波变换的心电信号伪影去除及PQRST波检测

可穿戴个人健康监护系统被广泛认为是下一代健康监护技术的核心解决方案。监护设备不断地感知、获取、分析和存储大量人体在日常活动中的生理数据&#xff0c;为人体的健康状况提供必要的、准确的、集成的和长期的评估和反馈。在心电监测领域&#xff0c;可穿戴传感器具有以下应…

C及C++每日练习(1)

一.选择&#xff1a; 1.以下for循环的执行次数是&#xff08;&#xff09; for(int x 0, y 0; (y 123) && (x < 4); x); A.是无限循环 B.循环次数不定 C.4次 D.3次 对于循环&#xff0c;其组成部分可以四个部分&#xff1a; for(初始化;循环进行条件;调整) …

JavaScript实现的计时器效果

之前做过电商网站倒计时的效果&#xff0c;今天在倒计时的基础上&#xff0c;把代码修改了一下&#xff0c;改为计时器效果&#xff0c;实现了以下功能&#xff1a; 1.点击“开始”后&#xff0c;按秒计时且“开始”文字变为“停止”&#xff1b; 2.点击“停止”&#xff0c;计…

【Python实战】——Python+Opencv是实现车牌自动识别

&#x1f349;CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一&#xff5c;统计学&#xff5c;干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项&#xff0c;参与研究经费10w、40w级横向 文…
最新文章