Using device: cuda:0 D:\BaiduNetdiskDownload\anaconda3\Lib\site-packages\torch\optim\lr_scheduler.py:62: UserWarning: The verbose parameter is deprecated. Please use get_last_lr() to access the learning rate. warnings.warn( Traceback (most recent call last): File "D:\BaiduNetdiskDownload\anaconda3\Lib\site-packages\IPython\core\interactiveshell.py", line 3577, in run_code exec(code_obj, self.user_global_ns, self.user_ns) File "<ipython-input-2-a9712fedbb0f>", line 1, in <module> runfile('D:\\留痕\\任务\\寒假作业\\network\\CNN_CBAM_z.py', wdir='D:\\留痕\\任务\\寒假作业\\network') File "D:\BaiduNetdiskDownload\PyCharm 2023.1\pycharm\PyCharm 2023.1\plugins\python\helpers\pydev\_pydev_bundle\pydev_umd.py", line 198, in runfile pydev_imports.execfile(filename, global_vars, local_vars) # execute the script ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\BaiduNetdiskDownload\PyCharm 2023.1\pycharm\PyCharm 2023.1\plugins\python\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile exec(compile(contents+"\n", file, 'exec'), glob, loc) File "D:\留痕\任务\寒假作业\network\CNN_CBAM_z.py", line 372, in <module> trained_model = train_model(root_dir='pic', num_epochs=25, batch_size=32) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\留痕\任务\寒假作业\network\CNN_CBAM_z.py", line 231, in train_model for inputs, labels in train_loader: File "D:\BaiduNetdiskDownload\anaconda3\Lib\site-packages\torch\utils\data\dataloader.py", line 491, in __iter__ return self._get_iterator() ^^^^^^^^^^^^^^^^^^^^ File "D:\BaiduNetdiskDownload\anaconda3\Lib\site-packages\torch\utils\data\dataloader.py", line 422, in _get_iterator return _MultiProcessingDataLoaderIter(self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\BaiduNetdiskDownload\anaconda3\Lib\site-packages\torch\utils\data\dataloader.py", line 1146, in __init__ w.start() File "D:\BaiduNetdiskDownload\anaconda3\Lib\mult
时间: 2025-05-25 08:45:43 浏览: 20
### 关于 CUDA 训练模型时出现的警告和错误
在使用 PyTorch 和 CUDA 进行模型训练时,可能会遇到一些常见的警告和错误。以下是针对 `UserWarning` 和 `verbose parameter deprecated` 的解释以及解决方案。
#### 1. **关于 `UserWarning: verbose parameter is deprecated`**
此警告通常来自某些函数或类中已弃用的参数设置。例如,在较新的 PyTorch 版本中,`verbose` 参数可能已被移除或不再推荐使用。如果代码中有类似的配置,则需要更新代码逻辑以适配新版本的行为[^1]。
可以通过以下方式解决:
- 查找并删除任何传递给函数的 `verbose=True/False` 参数。
- 如果确实需要日志输出功能,可以考虑通过其他手段实现,比如手动打印调试信息或将日志重定向到文件。
#### 2. **关于 `_MultiProcessingDataLoaderIter` 错误**
该错误通常是由于数据加载器 (`DataLoader`) 配置不当引起的。具体原因可能是多线程或多进程处理过程中出现了同步问题或者资源争抢情况。常见触发条件包括但不限于:
- 数据集过大导致内存不足;
- 工作线程数量过多超出系统承载能力;
- GPU/CPU 资源分配不均等问题;
为了修复此类问题,可以尝试调整以下几个方面:
```python
data_loader = DataLoader(
dataset,
batch_size=32,
shuffle=True,
num_workers=0, # 设置为0禁用多进程模式
pin_memory=False # 减少不必要的性能开销
)
```
另外需要注意的是,当切换不同的依赖库版本(如从旧版升级至最新版),有时也会引发兼容性问题。因此建议始终确保所使用的软件包之间保持一致性和稳定性[^3]。
#### 示例代码片段展示如何正确初始化PyTorch环境及定义简单的神经网络结构如下所示:
```python
import torch
from torch import nn, optim
from torchvision import datasets, transforms
device = 'cuda' if torch.cuda.is_available() else 'cpu'
transform = transforms.Compose([transforms.ToTensor(), ])
train_dataset = datasets.MNIST(root='./mnist/', train=True, transform=transform, download=True)
class SimpleNet(nn.Module):
def __init__(self):
super(SimpleNet, self).__init__()
self.fc = nn.Linear(784, 10)
def forward(self, x):
return self.fc(x.view(-1, 784))
model = SimpleNet().to(device)
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)
```
以上代码展示了基本的数据预处理流程、自定义模型构建过程以及损失计算与反向传播机制[^2]。
---
阅读全文
相关推荐














