espnet的安装

1.首先是需要换源:

https://www.cnblogs.com/Uriel-w/p/16387090.html

2.创建conda环境:

创建环境:
conda create -n espnet python=3.7.3
退出环境:
conda deactivate
删除环境:
# conda remove -n 环境名称 --all
conda remove -n tensorflow --all

3.激活环境:

conda activate espnet

4.创建目录,下载espnet到目录下:

mkdir espnet_work
cd espnet_work
git clone https://github.com/espnet/espnet.git

5.查看系统最高可以安装的CUDA版本:

nvidia-smi

6.进入tools路径下,将Makefile文件中默认下载pytorch版本改为当前系统匹配的版本:

cd espnet/tools/
vim Makefile

 

 7.进入安装torch文件下将下载torch的源换为默认源:

vim installers/install_torch.sh

 

 8.tools路径下跑she脚本setup_anaconda.sh设置环境anaconda,其中包括编译器:bash:;编译文件:setup_anaconda.sh;输出路径: /home/anaconda3/ ;环境名:espnet;python版本:3.7

bash setup_anaconda.sh /home/anaconda3/ espnet 3.7

9.tools路径下使用make命令去编译Makefile文件,去下载适配的包,其中make -j 32 表示并行运行,提高速度(注意:这里可能需要反复多次运行,确保所有包都安装成功):

make -j 32

 当然如果前面第6步对Makefile对版本的选择也不用去改文件,可以通过make命令时给变量赋值就好:

make -j 32 TH_VERSION=1.8.0

 跑完make命令后,如果需要一些额外的包,比如longformer之类的,也可以直接跑shell脚本去安装:

 

10.跑两个demo测试⼀下

 看输出的结果 有cer这些⽇志反馈则表明成功了 

cd ../egs2/yesno/asr1
bash run.sh

 

cd egs2/an4/asr1
bash run.sh

 

11.可能会出现的报错:

当发现去跑aishell等语料库时,首先跑是数据的处理部分:

CUDA_VISIBLE_DEVICES=0 bash run.sh --stop_stage 5

在这个过程中报告kenlm未安装错误,此时需要到tools路径下,跑命令:

bash installers/install_kenlm.sh

下载成功后,重复数据处理部分,会出现如下错误:

ImportError: libffi.so.7: cannot open shared object file: No such file or directory

这是由于创建了新的虚拟环境,环境中的python版本被强制更新,导致找不到 libffi.so.7 文件,进入文件位置:

/home/anaconda3/envs/espnet/lib

这里给出一个可行方案:将所缺失文件设置成一个软连接,连接到该目录下同一性质文件,这里报错是缺失libffi.so.7文件,但是该目录下存在libffi.so.6文件,故将其软连接于libffi.so.6文件上,问题得到解决。

ln -s libffi.so.6 libffi.so.7

 

12.实现单机多GPU分布式并行训练:

 将asr.sh文件的ngpu=1改为ngpu=n(n表示并行训练的GPU数量)

 

 最后训练指令为:

 CUDA_VISIBLE_DEVICES=0,1,2 nohup bash run.sh --stage 9

 

posted @ 2022-06-18 14:52  Uriel-w  阅读(1029)  评论(1编辑  收藏  举报