项目场景:

在使用Git Bash进行深度学习项目开发时,需要在特定的PyTorch环境中运行一个.sh脚本来进行模型的微调。这个脚本包含了一系列的训练命令,需要在配置好PyTorch的Conda环境中执行,以确保所有依赖都能被正确加载。

问题描述

在Git Bash中尝试直接运行.sh脚本时,遇到了环境激活问题。由于Git Bash默认不加载Conda环境,直接运行脚本时无法识别其中用到的PyTorch以及其他依赖,导致脚本执行失败。

$ bash lora_finetune.sh
20240226205032
lora_finetune.sh: line 21: deepspeed: command not found

原因分析:

Git Bash默认不集成Conda环境的初始化,因此在Git Bash中直接运行命令时,Conda环境并不会被自动激活。即使系统中已经安装了Anaconda并配置了PyTorch环境,但在Git Bash会话中这些环境是不可见的。因此,当尝试在Git Bash中执行需要特定Conda环境的脚本时,由于环境未激活,脚本中的命令(如调用PyTorch等)会因为找不到相应的命令或库而失败。

解决方案:

初始化Conda环境:在Git Bash会话开始时,手动运行Conda的初始化脚本来使Conda命令可用。这可以通过在Git Bash中执行以下命令实现:

source /c/Users/888/anaconda3/etc/profile.d/conda.sh

注意将路径/c/Users/888/anaconda3替换为实际的Anaconda安装路径。

激活PyTorch环境:一旦Conda命令在Git Bash中可用,就可以使用以下命令来激活包含PyTorch的Conda环境:

conda activate your_pytorch_env

your_pytorch_env替换为你的PyTorch环境名称。

运行脚本:在正确的环境中,使用以下命令运行你的.sh脚本:

bash /path/to/your_script.sh

#example
#cd /d/myproject/MiniCPM/finetune
#bash lora_finetune_ds.sh

将**/path/to/your_script.sh**替换为你脚本的实际路径。

通过这种方式,.sh脚本将在激活了PyTorch环境的Git Bash会话中执行,确保所有依赖都能被正确加载和使用。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐