Torch7 out of memory 解决方法

本文介绍了解决LuaJIT内存限制导致的outofmemory问题的方法。通过使用Lua替代LuaJIT并提供详细的步骤指导,包括卸载原有安装、下载源码、安装依赖及配置安装等过程。

造成out of memory 的主要原因是Lua默认的编译器LuaJIT的内存限制为2GB,解决的方法是用Lua代替LuaJIT,https://github.com/torch/distro介绍了替换方法,具体操作如下:

1. 卸载之间安装的torch

     1.1 进入torch安装路径

              ./clean.sh

     1.2 删除安装的文件

              rm -rf ./install.sh

     1.3 删除添加的环境变量

            在~./bashrc和~./profile这两个文件中,找到torch-activate项删除


2. 下载torch源码

        git clone https://github.com/torch/distro


3. 进入源码目录,安装依赖项

       ./install-deps.sh


4. 安装torch 

    TORCH_LUA_VERSION=LUA51 ./install.sh

### 安装 PyTorch 时遇到的 CUDA 内存不足问题解决方案 当尝试安装或运行 PyTorch 并遇到 `CUDA out of memory` 错误时,这通常意味着 GPU 的显存不足以支持当前的任务需求。对于特定于调整大小(resize)操作引发的问题,可以从多个角度来解决问题。 #### 调整批处理大小(Batch Size) 减少批量数据的数量是一个有效的策略。较大的 batch size 需要更多的 GPU 显存资源。通过降低 batch size 可以显著减轻显存压力[^3]: ```python train_loader = torch.utils.data.DataLoader( dataset=train_dataset, batch_size=16, # 尝试更小的数值如8或4 shuffle=True ) ``` #### 修改输入图像尺寸 如果原始图片分辨率过高,则会占用大量显存空间。适当缩小图像尺寸有助于缓解这一状况。可以利用 torchvision 提供的功能来进行预处理变换[^2]: ```python from torchvision import transforms transform = transforms.Compose([ transforms.Resize((224, 224)), # 设置合适的高度宽度 transforms.ToTensor(), ]) dataset = datasets.ImageFolder(root='path/to/images', transform=transform) ``` #### 使用混合精度训练 启用自动混合精度 (Automatic Mixed Precision, AMP) 训练可以在不牺牲模型性能的情况下节省大约一半的显存量: ```python scaler = torch.cuda.amp.GradScaler() for data, target in train_loader: optimizer.zero_grad() with torch.cuda.amp.autocast(): output = model(data) loss = criterion(output, target) scaler.scale(loss).backward() scaler.step(optimizer) scaler.update() ``` #### 清理缓存释放未使用的张量 有时程序中可能存在不再需要但仍占据着显存的对象。可以通过调用 `torch.cuda.empty_cache()` 来手动清理这些无用的数据结构并回收其占有的显存: ```python import gc import torch gc.collect() # 收集垃圾对象 torch.cuda.empty_cache() # 清除已分配但不再被引用的tensor所占用的空间 ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值