yoyommchocolate 2023-05-28 11:44 采纳率: 0%
浏览 19

关于資料集處理#Python 载入图片#RAM爆炸的问题,如何解决?

有影像处理的前輩知道:
为何在跑模型训练时,载入图片的过程RAM爆炸吗?


我知道通常会先缩小图片数量、大小、或档案格式
但我想不透的是,明明我资料集A的大小是20401404,
资料集B的大小为1248
1140,反而是大图片的资料集消耗比较少RAM


资料集A(大图片)-800张:消耗 8GB,稳定
资料集B(中图片)-1200张:消耗 30GB,逐渐上升到炸掉


是不是網上的公開資料集都有做些什麼處理,
讓圖片分辨率跟大小不變,但是讀入的時候就是不會吃很多RAM?

  • 写回答

2条回答 默认 最新

  • Vous oublie@ 2023-05-28 12:26
    关注

    在模型训练中,载入图片导致RAM消耗爆炸可能有以下原因:

    图片的尺寸和数量:较大的图片和较多的图片会占用更多的RAM。当加载大量高分辨率的图片时,需要将它们全部加载到RAM中进行处理,这可能导致RAM消耗增加。

    图片的格式:不同的图片格式会影响内存消耗。某些图片格式(例如JPEG)可以在解码之前进行压缩,减少内存使用量。而其他格式(如位图格式)可能需要更多的内存来存储像素数据。

    数据加载和预处理:在加载图片之前,可能会进行一些预处理操作,例如调整大小、裁剪、标准化等。这些操作可能需要额外的内存来存储处理后的图像数据。

    内存管理和代码实现:内存消耗也可能与代码实现和内存管理有关。使用不合理的数据结构或算法,或者在代码中存在内存泄漏等问题,都可能导致内存消耗异常增加。

    关于你提到的资料集A和资料集B,尽管资料集A的图片大小更大,但由于缩小了图片数量,可能导致总体的内存消耗较低。另外,公开的数据集可能经过处理,如调整分辨率、压缩格式等,以便在加载时减少内存消耗。

    为了降低内存消耗,你可以考虑以下方法:

    将图片大小调整为适当的尺寸,避免加载过大的图片。
    使用图片压缩格式,如JPEG,以减少内存使用。
    在训练过程中使用批量加载,而不是一次性加载所有图片。
    使用生成器(generator)或数据增强技术,在训练过程中动态生成图片数据,而不是一次性加载到内存中。
    此外,检查代码中是否存在内存泄漏或不合理的内存管理,确保释放不再使用的内存资源,也是减少内存消耗的关键。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月28日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?