修改默认conda环境(在win中)

修改默认conda环境(在win中)

1.修改环境

安装conda,用conda安装专用的环境

bash 复制代码
conda create -n yolov5 python=3.10(目前选用3.10,很稳,适配yolov5)

默认是在C盘创建的环境,如果不想存储在C盘,(比如存在e盘中),修改 Conda 默认环境路径通过修改 Conda 的配置文件 .condarc,改变所有新环境的默认创建位置。

首先,在你想存放所有 Conda 环境的 E 盘目录下创建一个文件夹,例如 E:\conda_envs。

找到 Conda 的配置文件 .condarc。它通常位于:Windows: C:\Users<你的用户名>.condarc,如果不存在,可以用命令生成:

bash 复制代码
conda config

之后就可以看到 .condarc文件了,打开之后会有一个括号,是json格式的 但是文件时yaml格式,所以要把括号删掉,然后添加

bash 复制代码
channels:
  - defaults
envs_dirs:
  - E:\conda_envs      #把你想要的环境输入到第一个位置,后面依次是备选
  - C:\Users\Administrator\.conda\envs

写入之后,保存,在此创建环境,就会默认保存在e盘,如果想把之前的环境都移过来的话,逐个克隆每个环境到 E 盘比较安全

bash 复制代码
conda create -p E:\conda_envs\labelimg --clone labelimg -y
conda create -p E:\conda_envs\yolo --clone yolo -y
conda create -p E:\conda_envs\yolov5 --clone yolov5 -y

弄完之后验证克隆结果

bash 复制代码
conda info --envs

目前只是把环境克隆过去了,但是包缓存的位置还是在c盘的 ,要在e盘中创建一个存储缓存包的位置

bash 复制代码
mkdir E:\conda_pkgs

再次打开.condarc 添加配置

bash 复制代码
pkgs_dirs:
  - E:\conda_pkgs  # 新的包缓存位置
  - C:\Users\Administrator\.conda\pkgs  # 保留原位置作为备份

验证配置

bash 复制代码
conda config --show pkgs_dirs

移动现有的包缓存

bash 复制代码
xcopy "C:\Users\Administrator\.conda\pkgs" "E:\conda_pkgs" /E /H /I /K

以下步骤如果C盘不紧张,完全可不做,因为之后的包缓存都会保存在新的位置了,

创建符号链接(这样现有环境还能找到包)

bash 复制代码
mklink /J "C:\Users\Administrator\.conda\pkgs" "E:\conda_pkgs"

如果紧张的话 就执行下面的操作

bash 复制代码
# 删除c盘之前的包缓存
rmdir /S /Q C:\Users\Administrator\.conda\pkgs

# 重新创建空文件夹(Conda 可能需要)
mkdir C:\Users\Administrator\.conda\pkgs

# 验证清理结果
dir C:\Users\Administrator\.conda\pkgs

创建好之后 会有提示,分别是进入环境的命令和退出环境的命令,如果是移到了其他盘的话,打开的命令要加入路径 "conda activate E:\conda_envs\labelimg,如果是默认的话 直接输入

bash 复制代码
conda activate yolov5  # (进入环境)
conda deactivate # (退出环境)
conda env remove -n myenv  # (删除环境:myenv)

进入环境

bash 复制代码
conda activate yolov5

前面会出现"(yolov5)"字样,代表进入环境成功,然后去项目的路径

bash 复制代码
cd E:\yolo\yolov5

2.出现的一些问题

在下载瑞芯微 rv106 板子的 yolo5的代码的时候出现的一些问题

1.报这个错误

bash 复制代码
import pkg_resources as pkg
E:\yolo\yolov5\utils\general.py:27: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.

解决方法:这是一个 YOLOv5 中使用了已弃用的 pkg_resources 包的问题。pkg_resources 是 setuptools 的一部分,现在已被弃用

bash 复制代码
pip install setuptools==68.2.2  # 一个稳定的旧版本

2.报这个错误

bash 复制代码
E:\yolo\yolov5\train.py:270: FutureWarning: `torch.cuda.amp.GradScaler(args...)` is deprecated. Please use `torch.amp.GradScaler('cuda', args...)` instead.
  scaler = amp.GradScaler(enabled=cuda)

这是 PyTorch 2.0+ 中混合精度训练的 API 变更。需要修改 train.py 中 GradScaler 的初始化方式。以下是几种修改方法

train.py 中找到第 270 行附近:

scaler = amp.GradScaler(enabled=cuda)

替换为:

根据 PyTorch 版本自动选择正确的 GradScaler 初始化方式

bash 复制代码
import torch
if hasattr(torch, 'amp') and hasattr(torch.amp, 'GradScaler'):
    # PyTorch 2.0+ 的新 API
    scaler = torch.amp.GradScaler('cuda', enabled=cuda)
else:
    # PyTorch 1.x 的旧 API
    scaler = torch.cuda.amp.GradScaler(enabled=cuda)

3.报这个错误

bash 复制代码
E:\yolo\yolov5\train.py:329: FutureWarning: `torch.cuda.amp.autocast(args...)` is deprecated. Please use `torch.amp.autocast('cuda', args...)` instead.
  with amp.autocast(enabled=cuda):
这是另一个 PyTorch 2.0+ 的 API 弃用警告。torch.cuda.amp.autocast() 已经过时,需要使用新的 torch.amp.autocast('cuda', ...) API。

问题:在 train.py 的第 329 行: with amp.autocast(enabled=cuda):

解决方案: 修改 train.py 第 329 行

找到这一行代码(通常在训练循环中):

原代码:

with amp.autocast(enabled=cuda):

修改为:

bash 复制代码
# PyTorch 2.0+ 兼容的写法

 if torch.__version__ >= '2.0.0':
	with torch.amp.autocast('cuda', enabled=cuda):
		pred = model(imgs)  # forward 前向
		loss, loss_items = compute_loss(pred, targets.to(device))  # loss scaled by batch_size 损失 scaled by batch_size
		if RANK != -1:
			loss *= WORLD_SIZE  # gradient averaged between devices in DDP mode 梯度平均 between devices in DDP mode
		if opt.quad:
			loss *= 4. # 四倍
else:
	with torch.cuda.amp.autocast(enabled=cuda):
		pred = model(imgs)  # forward 前向
		loss, loss_items = compute_loss(pred, targets.to(device))  # loss scaled by batch_size 损失 scaled by batch_size
		if RANK != -1:
			loss *= WORLD_SIZE  # gradient averaged between devices in DDP mode 梯度平均 between devices in DDP mode
		if opt.quad:
			loss *= 4. # 四倍

之后就可以根据官方文档进行运形了。

4.报这个错误

训练前先输入这个,允许重复加载相同的动态链接库(DLL),解决多个库同时使用 Intel MKL 时的冲突

避免 "OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized" 错误

bash 复制代码
set KMP_DUPLICATE_LIB_OK=TRUE # 如果没有这个问题就不用了

3.训练时的数据解读:

bash 复制代码
	box:   0.0376  # 边框回归损失,应持续下降
	obj:   0.02422 # 目标检测损失,应持续下降  
	cls:   0       # 分类损失(r如果是单类别,就是0)
	P (Precision): 0.839  # 精确率,越高越好
	R (Recall):    0.772  # 召回率,越高越好
	mAP@0.5:       0.836  # 主要评估指标,>0.8优秀
	mAP@0.5:0.95:  0.419  # 严格评估,会低一些
	gpu_mem: 3.81G    # GPU内存使用,确保不溢出
	labels:  39       # 每张图平均目标数,应稳定
	img_size: 640     # 输入图像大小
相关推荐
多米Domi01139 分钟前
0x3f 第49天 面向实习的八股背诵第六天 过了一遍JVM的知识点,看了相关视频讲解JVM内存,垃圾清理,买了plus,稍微看了点确定一下方向
jvm·数据结构·python·算法·leetcode
人工智能训练6 小时前
【极速部署】Ubuntu24.04+CUDA13.0 玩转 VLLM 0.15.0:预编译 Wheel 包 GPU 版安装全攻略
运维·前端·人工智能·python·ai编程·cuda·vllm
yaoming1686 小时前
python性能优化方案研究
python·性能优化
码云数智-大飞7 小时前
使用 Python 高效提取 PDF 中的表格数据并导出为 TXT 或 Excel
python
biuyyyxxx8 小时前
Python自动化办公学习笔记(一) 工具安装&教程
笔记·python·学习·自动化
极客数模9 小时前
【2026美赛赛题初步翻译F题】2026_ICM_Problem_F
大数据·c语言·python·数学建模·matlab
小鸡吃米…10 小时前
机器学习中的代价函数
人工智能·python·机器学习
Li emily11 小时前
如何通过外汇API平台快速实现实时数据接入?
开发语言·python·api·fastapi·美股
m0_5613596711 小时前
掌握Python魔法方法(Magic Methods)
jvm·数据库·python
Ulyanov11 小时前
顶层设计——单脉冲雷达仿真器的灵魂蓝图
python·算法·pyside·仿真系统·单脉冲