背景
为对交通数据进行预测,调试STSGCN算法模型
1. 报错—— ray.tune.sugges 导入不成功
from ray.tune.suggest import HyperOptSearch
解决过程
前提:已经尝试过网上(包括官网)的方法
1. pip install ray
// "[]"中是想要导入的包
2. pip intall ray[]
查看官网
发现有一个使用
所以试着按照这个库进行导入,调试后可以运行
2. 报错 AttributeError: executor is not found
解决过程
查阅资料:
应该是版本的问题 【Tensorboard报错解决】AttributeError:module ‘distutils‘ has no attribute ‘version‘-CSDN博客
查看 tensorboard 的版本
tensorboard版本高于1.15(含),手动注释掉 错误抛出 部分的代码
3. 报错GPU内存不够
解读
错误表明你的 CUDA 内存不足。在 PyTorch 中,模型的参数和中间计算结果需要存储在 GPU 上,但当前 GPU 上的剩余内存不足以容纳模型的某些部分。
解决过程
清理 GPU 内存: 在每个训练迭代结束后,调用 torch.cuda.empty_cache() 来清理 GPU 内存。
添加代码
- 在 pdformer_exrcutor.py 中加入
with torch.no_grad() - 在epoch或batch循环结尾加上 torch.cuda.empty_cache()
4. 报错 对不需要梯度的张量进行反向传播
Variable._execution_engine.run_backward( RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn
错误解读
这个错误通常是因为尝试对不需要梯度的张量进行反向传播。在 PyTorch 中,只有那些 requires_grad 被设置为 True 的张量,才会构建梯度计算图。
解决过程
检查你正在尝试反向传播的张量,确保它们是需要梯度的 在 pdformer_executor.py 中添加修改代码
这里的loss默认的requires_grad是False,因此在backward()处不会计算梯度,导致出错
方法:将loss的requires_grad属性设为True
至此,除了上述所提到的问题,我遇到的其余都是缺少包的问题,只需对应下载即可