修改默认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     # 输入图像大小
相关推荐
萧鼎2 小时前
深入解析 Python 的 Word 模板引擎:docxtpl 全面指南
开发语言·python·word
Yeats_Liao2 小时前
昇腾910B与DeepSeek:国产算力与开源模型的架构适配分析
人工智能·python·深度学习·神经网络·机器学习·架构·开源
智航GIS2 小时前
11.3 Pandas 模块功能概览
python·信息可视化·pandas
浩子智控2 小时前
开源RPA选择
python·c#·软件工程
kszlgy2 小时前
Day48 随机函数与广播机制
python
子午2 小时前
【2026原创】昆虫识别系统~Python+深度学习+卷积算法+模型训练+人工智能
人工智能·python·深度学习
nju_spy2 小时前
动手学强化学习上交张伟楠(一)导论 + 多臂老虎机 MAB(ε-greedy+上置信界+汤普森采样)
人工智能·python·强化学习·actor-critic·多臂老虎机·汤普森采样·探索与利用
tjjucheng2 小时前
专业做小程序定制开发的企业
python