一、写在前面:
ctcdecode代码较早,安装过程有许多坑。本文章为ctcdecode安装成功的记录,可能存在不适用的情况,欢迎大家补充。
二、致谢:
感谢文章https://blog.csdn.net/u011550545/article/details/87926995提供的宝贵参考。
三、主机环境
1、硬件:
Nvidia Gecforce RTX3060桌面版
2、软件
操作系统:Ubuntu20.04
显卡驱动:510.39.01
安装驱动时同时安装的CUDA版本:11.6
四、Python环境1(成功安装ctcdecode)
1、使用conda虚拟环境
2、python版本:3.6.7
# 1 2 命令
conda create -n py367 python==3.6.7
3、wget包
# 在py367中,给pythohn安装wget包
conda activate py367
python -m pip install wget
4、torch版本:
pytorch-cpu 1.1.0
torchvision 0.10.1
# 要先安装torch,再安装ctcdecode
# mamba是辅助conda的工具,先安装mamba,这里mamba换为conda也可以
mamba install pytorch torchvision cudatoolkit=11.1 -c pytorch-lts -c conda-forge
5、ctcdecode 0.4
因国内网络问题,有些依赖无法下载,会导致ctcdecode安装失败。这里再次感谢感谢文章https://blog.csdn.net/u011550545/article/details/87926995提供的源码安装包,下载链接:https://pan.baidu.com/s/1sZMbzzYtBoT35zHtDifVqQ ,提取码:a05y。下载解压后可直接安装。
#下载上述ctcdecode源码包后
# 解压
tar -xvf ctcdecode.tar.gz
#
cd ctcdecode
python -m pip install .
五、Python环境2(成功安装ctcdecode)
1、使用conda虚拟环境
2、python版本:3.6.11
3、wget包
4、orch版本
torch: 1.8.1+cu111
torchvision: 0.9.1+cu11
# 官方安装命令,此次安装使用此命令安装失败
pip install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html
# 成功的解决方案是使用pip安装离线的torh和torchvision安装包。下载链接如下:
https://download.pytorch.org/whl/torch_stable.html
5、ctcdecode 1.0.3
# 推荐的安装方式。但此次安装过程使用该方式安装失败。
python -m pip install ctcdecode==1.0.3
# 成功的解决方案是源码编译安装ctcdecode。源码安方式见下文。
六、源码安装ctcdecode 的master版本
1、下载ctcdecode 的master分支的源码
# 此命令是官方推荐的克隆方式,可以递归地把需要的第三方源码包同时下载下来。但是因国内网络原因
# 该命令无法成功下载第三方源码包。第三包的源码的准备方式见下文。
git clone --recursive https://github.com/parlance/ctcdecode.git
# 下载master分支的源码使用如下命令
git clone https://github.com/parlance/ctcdecode.git
# 下载tag是1.0.2的源码,使用如下命令:
git clone --branch 1.0.2 https://github.com/parlance/ctcdecode.git
2、下载第三方包的源码
(1)第三方包的源码的位置
在ctcdecode源码的third_party文件夹中。
(2)下载目录可见的第三方源码
①说明:这里目录可见是指在源码的third_party中可以发现的第三方包的名称。如下图的ThreadPool和kenlm(utf8不用专门另外下载)。
②下载ThreadPool和kenlm。(以ThreadPool为例)
a、根据上图的git链接,进入ThreadPool的git仓库
b、使用git clone将ThreadPool的源码下载至本地ctcdecode的third_party文件夹中。
# 示例
cd ctcdeocode/third_party
git clone https://github.com/progschj/ThreadPool.git
(3)下载目录不可见的第三方包
①说明:这里的目录不可见对应(2)中的目录可见。这些包会在编译ctcdecode源码的过程中以错误提示的形式给出,因此要认真阅读编译的报错信息。这些包大多被声明在源码中的build.py文件中。因此在错误提示中,build.py字符串之后,很快就是缺少的第三方包。这些包需要下载的位置,也是源码中的third_party。
3、编译源码并安装ctcdecode
cd ctcdecode
python -m pip install .
4、说明
源码编译和目录不可见的第三方包的安装可能要反复进行