前言
最近想配置一个基于tensorflow的NLP环境,主要配置了transformers和tf-models-official这两个常用的库,其中一些库版本的选择基于自己的先前配置环境的经验,并参考了大量网上的资源,最终才艰难确定的版本。记录下配置过程:
配置过程
- conda创建虚拟环境
conda create -n tf23 python=3.8
注:基于先前配置环境的经验,经过反复验证发现,tensorflow 2.3版本问题比较少,所以创建的环境是以tensorflow 2.3为核心,选择的python版本为3.8(最终下载的python版本为3.8.13)。
- 下载Tensorflow 2.3.0
pip install tensorflow==2.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/
注:
- pip install命令后面建议加上源,本次配置环境使用的是清华源,为了简化书写,在后续下载相关库时省略配置pip下载源,记得自行加上:
https://pypi.tuna.tsinghua.edu.cn/simple/
加上后,体验飞一般的感觉。 - 由于在配置这个环境之前,我已经用 conda install命令下载了许多库,在创建环境的过程中发现,下载一些库的时候,总是会默认从Anaconda的本地pkgs(缓存)文件夹中拉过来想要下载的相关库,这有时候会导致下载tensorflow库的时候,其关联的一些库版本不对,比如tensorflow-estimator,然后一直不知道怎么解决这个问题,因此配置这个环境的时候,选择主要以 pip install 命令为主。
- 执行完上述命令后发现,tf23(正在配置的虚拟环境)已经包含了numpy=1.18.5。
- 下载NLP相关库,我这里主要是transformers和tf-models-official
pip install tf-models-official==2.3.0
pip install transformers==4.16.2
pip install tensorflow-hub
注:
(1) 经过测试,tf-models-official版本的选择一般要和虚拟环境中的tensorflow版本一致,否则可能会报错
(2) 一般官网会对transformers各个版本有描述和相应的python、tensorflow、pytorch版本要求,可以自行选择相应的版本,地址:transformers版本选择
-
transformers简介:transformers是Hugging Face公司开发,一家专注于NLP的公司,其在github上的星数很高。
-
tf-models-official官方介绍: tf-models-official是使用TensorFlow高级API的模型,为TensorFlow用户提供了许多不同的最先进(SOTA)模型和建模解决方案。
-
TensorFlow Hub官方介绍: TensorFlow Hub 是包含各种预训练模型的综合代码库,这些模型稍作调整便可部署到任何设备上。借助 tensorflow_hub 库,您可以下载训练过的最新模型,并且只需编写少量代码即可使用这些模型。
- 其他下载
pip install matplotlib==3.3.4
pip install pandas==1.1.5
pip install scikit-learn==0.24.2 # sklearn版本貌似可以有更多的选择,大家可以试一下
# 其他所需......
注:
以上各个库版本的选择是经过我配置了好几个环境、历经了大量版本不兼容问题才得来的结果,供大家参考吧。
问题
- 如果你出现了这个问题:
conda list和pip list中numpy的版本不一致,pip list下的numpy=1.23.1,而conda list下的numpy=1.18.5,通过以下方法解决:
删除tf23虚拟环境中的numpy-1.18.5.dist-info文件夹,路径为:你的所有虚拟环境所在的目录\tf23\Lib\site-packages\numpy-1.18.5.dist-info,我的是E:\zp\appdata\annoconda\envs\tf23\Lib\site-packages
参考:pip list和conda list不一致冲突
出现这个问题的原因可能是你下载库的顺序不对,下载原则是:
- 优先下载比较大的库,比如tensorflow和tf-models-official等,一般下载了比较大的库,就会相应下载一些兼容的库,这样就可以少掉几根头发哈哈哈。
- 如果配置好以上相关库好,在jupyter notebook中导入相关库时,发现以下问题:
TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See Installation — Jupyter Widgets 7.6.5 documentation from .autonotebook import tqdm as notebook_tqdm
- 可以这样解决:
pip install ipywidgets widgetsnbextension pandas-profiling
jupyter nbextension enable --py widgetsnbextension
参考:TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. 报错处理方式
接下来就愉快的玩耍(掉头发)吧~