当前位置: 首页 > news >正文

github代码中遇到的问题-解决方案

下面内容介绍的是我个人在复现github代码遇到的一些问题,如果也可以帮到你,请点个关注吧~

1.我的项目位置在D盘,但是为什么下面终端的位置在E盘

-》cd /d D:\Users\xxxx(后面的xxxx是你具体的文档位置)

2.怎么知道我原来的创建的环境是不是含有gpu版本呢?

->方法 1:在激活的环境中运行 Python 代码

  1. 激活环境

    bash

    conda activate HSDGNN
    

  2. 运行 Python 检查代码

    bash

    python -c "import torch; print('CUDA可用:', torch.cuda.is_available()); print('CUDA版本:', torch.version.cuda); print('GPU名称:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'None')"
    
    • 输出解释
      • 如果显示 CUDA可用: True,说明环境支持 GPU。
      • 如果显示 CUDA可用: False,说明环境仅安装了 CPU 版本。

->方法 2:查看已安装的 PyTorch 包

  1. 激活环境

    bash

    conda activate your_eve
  2. 检查 PyTorch 包

    pip list | grep torch
    
     
    • 输出示例

      plaintext

      torch                     2.0.1+cu117
      torchaudio                2.0.2+cu117
      torchvision               0.15.2+cu117
      
       
      • 包名中包含 +cu117 表示 GPU 版本(CUDA 11.7)。
      • 如果只显示 torch 2.0.1(无 +cu 后缀),通常是 CPU 版本。

->方法 3:查看 conda 环境配置

  1. 列出所有 conda 环境

    conda env list
    
  2. 查看指定环境的详细配置

    conda list -n your-eve | grep torch
    
     
    • 如果输出中包含 pytorch-cuda 或 cudatoolkit,说明安装了 GPU 支持。

3. CUDA 内存不足的问题(torch.cuda.OutOfMemoryError

1. 降低批次大小(Batch Size)

这是最直接的解决方法。在命令行中添加--batch_size参数,减小每个批次的样本数量

如果仍然 OOM,可以继续减小到 4 或 2。

2. 优化模型内存使用

2.1梯度累积(Gradient Accumulation)

通过多次前向 / 反向传播后再更新参数,模拟大批次训练的效果

2.2使用半精度训练(Mixed Precision)

PyTorch 的torch.cuda.amp可以减少显存占用

3. 释放不必要的显存

在每个训练步骤后手动释放缓存

4. 减少模型复杂度

如果上述方法仍无法解决,可以尝试:

  • 减小隐藏层维度(--embed_dim--rnn_units
  • 减少网络层数
  • 使用更小的输入序列长度(--lag

其他建议

  • 监控显存使用:使用nvidia-smi实时监控 GPU 显存占用
  • 检查数据加载:确保没有不必要的数据被加载到 GPU
  • 分阶段训练:如果模型特别大,可以考虑先在小数据集上训练,再逐步扩展

4.为什么需要__init__.py

->Python 通过__init__.py文件识别包结构,没有该文件时,Data目录不会被视为可导入的模块。

导入路径为什么是from Data.dataloader import ...

  • sys.path.append(parent_dir)后,Python 会在Titantic/目录下搜索模块,因此Data是包名,dataloader是模块名(即dataloader.py).

  • PyCharm 的 “未解析的引用” 警告如何消除?


  • 除了设置源根目录,还可以在train_and_visualize.py开头添加:

  • # noinspection PyUnresolvedReferences
    

    这将忽略 IDE 的引用检查警告。

验证导入是否成功

train_and_visualize.py中添加调试代码:

print("已导入的模块:")
print("main:", callable(main))
print("TitanicDataset:", issubclass(TitanicDataset, torch.utils.data.Dataset))
print("collate_fn:", callable(collate_fn))

运行后若输出True,则说明导入成功。

http://www.lqws.cn/news/598645.html

相关文章:

  • RNN和LSTM
  • flv.js视频/直播流测试demo
  • npm link的使用方法详细介绍
  • 动手实践:如何提取Python代码中的字符串变量的值
  • QML通过XMLHttpRequest实现HTTP通信
  • RocketMQ的广播消息和集群消息有什么区别?
  • 密码学(斯坦福)
  • 突破性进展:超短等离子体脉冲实现单电子量子干涉,为飞行量子比特奠定基础
  • 分布式爬虫数据存储开发实战
  • Hadoop、Spark、Flink 三大大数据处理框架的能力与应用场景
  • (LeetCode 面试经典 150 题) 42. 接雨水 (单调栈)
  • 数据分析与做菜的关系,makedown
  • 630,百度文心大模型4.5系列开源!真香
  • 牛客笔试AI智能监考:革新远程招聘,打造公平高效的笔试新时代
  • 力扣网C语言编程题:寻找两个正序数组的中位数
  • (LeetCode 每日一题) 3330. 找到初始输入字符串 I (字符串)
  • 8.4 Jmter实践不同线程组之间的全局变量的传递和使用
  • opencv入门(5)图像像素的读写操作和算术运算
  • VCenter SSL过期,登录提示HTTP 500错误解决办法
  • 应急响应靶机-linux1-知攻善防实验室
  • 动态库与符号表综合指南
  • Github CLI 快速 clone下载到本地教程
  • C# WPF + Helix Toolkit 实战:用两种方式打造“六面异色立方体”
  • OpenCV图像梯度处理详解:原理、API与实战代码解析
  • Java 中 List.stream() 的全面使用指南(含完整示例)
  • jQuery 安装使用教程
  • OpenCV CUDA模块设备层-----二值化阈值操作函数thresh_binary_func()
  • android车载开发之HVAC
  • Conda 虚拟环境克隆与 PyCharm 配置教程
  • C# 程序:查看 PageUp 热键消息映射表