返回

一些大用处的trick

麻了

如何解决conda无尽的solving environment

https://github.com/conda/conda/issues/11919

在base下执行:

conda update conda
conda update conda-build

之后安装libmamba并设置解析器:

conda install -n base conda-libmamba-solver
conda config --set solver libmamba

Linux下优雅的后台运行程序

很简单的指令:

nohup xxx >(>>) xxx.out 2>&1 &
# 0是标准输入、1是标准输出、2是标准错误输出。正常来说应该是2>1但是这样实际上会把标准错误输出到1文件中,为了解决这个问题需要加上&,&表示后面的内容是一个文件描述符,所以2>&1就可以理解成是一个merge操作。

但是由于python有输出缓冲,所以不能实时的看到文件内容数据的变更,而是需要添加:

nohup python -u xxx > xxx.out 2>&1 &

关于镜像站

https://mirrors.tuna.tsinghua.edu.cn/

虽然速度不是最快的,但是帮助非常清晰,建议背下来域名

https://developer.aliyun.com/mirror/anaconda?spm=a2c6h.13651102.0.0.5bfd1b117dp2dV

如果需要使用nvidia镜像的话还需要使用aliyun的镜像站。

关于训练过程中的收敛问题

由于现代神经网络越发混沌,选择合适的优化器或是模型结构都有多种选择,但是在测试模型性能的时候,不能只通过loss的变化判断收敛性,还需要同时的注意模型的的准确率等参数!

uv instead pip

最近和群友讨论了一下archlinux下如何避免python环境与原本python环境的混杂导致的软件一场安装问题,而且恰好遇到了arch下系统python更新较快(3.13)导致使用venv创建的虚拟环境会有一些包还没有313版本(venv和系统的python版本是一致的)。这种情况下唯一的可能性就是使用一些在pip之上的管理工具了。当然第一想到的其实是conda,但是考虑到conda还会引入其他语言编程环境而导致环境较重,因此研究完后发现了uv这个工具。

注:其实也可以下载python的二进制来实现自己的版本管理,但是属实没有必要

uv其实更像是conda,但是不同的是uv主要关注于python的包管理,同时具有极快的安装速度。亲测安装pytorch竟然在66ms内就完成了属实震惊我了,同时其仅仅凌驾于pip的层次让我非常愿意使用这个软件。

uv其实更像是pip、python的一个外挂插件,在arch等都能通过非常简单的方式进行uv的安装:

yay -S uv

之后就能使用uv来进行各种操作了,首先来点常见的操作:

uv venv -p 3.12 .venv

创建一个3.12的python虚拟环境,之后需要进行source之后切换到对应的虚拟环境之后进行相关包的安装:

uv pip install xxx

至此所有的uv操作就介绍好了,从各个角度来说都是一个非常舒服甚至完美的工具。

Licensed under CC BY-NC-SA 4.0