tensorflow1.x环境搭建
大约 3 分钟tensorflow1.x环境搭建tensorflow
Ubuntu20.24(WSL) tensorflow环境搭建
说明
30系显卡仅支持CUDA11以上的版本,目前最新的Tensorflow和PyTorch虽然都可以直接使用,然而谷歌不再维护的tensorflow1.x却无法安装在CUDA11环境下。好在NVIDIA一直在维护一个1.15版本的nvidia-tensorflow可以使用在30系显卡上。具体安装要求如下:
如果WIN平台下安装了支持WSL2的显卡驱动,则WSL下的Ubuntu会自带驱动,不需要再次安装,同时nvidia-tensorflow 这个项目已经集成cuda和cudnn以支持最新的nvidai驱动,因此也不需要再安装cuda和cudnn, 查询 Ubuntu 是否已经安装了显卡驱动。
经过测试此方案可以安装官方最新的显卡驱动。
安装 Miniconda
下载并安装最小集成版本的 anaconda ,这里选择python3.8版本
bash Miniconda3-py38_23.1.0-1-Linux-x86_64.sh
添加环境变量
vim ~/.bashrc
# 最后一行添加
export PATH=/home/xxx/miniconda3/bin/:$PATH
source ~/.bashrc
conda --version
配置tensorflow1.x环境
创建环境
conda create --name nvidia-tf1.x python==3.8.16
conda install python==3.8 -n "nvidia-tf1.x"
# 激活 conda
source activate
# 退出 conda 或 conda环境
conda deactivate
conda env list
配置环境
source activate
conda activate nvidia-tf1.x
pip install --upgrade pip
pip install nvidia-pyindex
pip install nvidia-tensorflow[horovod]
pip install nvidia-tensorboard==1.15
vim ~/tensorflow1-gpu.py
python tensorflow1-gpu.py
# 退出nvidia-tf1.x环境
conda deactivate
# 退出conda环境
conda deactivate
conda remove -n nvidia-tf1.x --all
# tensorflow1-gpu.py
import tensorflow as tf
import tensorboard
tf.enable_eager_execution()
a = tf.random.uniform([1000, 1000])
b = tf.random.uniform([1000, 1000])
print("tensorflow version:",tf.__version__)
print("gpu:",tf.test.is_gpu_available())
print("cuda:",tf.test.is_built_with_cuda())
print(tf.matmul(a, b))
关于 TFLite 支持的问题
NVIDIA 为了兼容最新的显卡驱动,舍弃了对 TFLite 的支持。
因此不得不安装 TF2 来提供模型转换功能的支持,而anaconda可以很方便的管理多个版本的python环境,这也是前面使用anaconda安装 TF1的原因。在此暂时不建议使用NVIDIA提供的Docker方式安装。
- 查阅版本要求
在 tensorflow查询支持的配置,以避免不必要的麻烦 。
配置环境
conda create --name nvidia-tf2.x python=3.9
source activate
conda activate nvidia-tf2.x
pip install --upgrade pip
# 查看可以用来安装的cudatoolkit的所有版本都有哪些
conda search cudatoolkit
# 查看所有列出来的cudatoolkit的详细信息,包括版本号version,文件网址url,依赖项dependencies
conda search cudatoolkit --info
conda install cudatoolkit=11.3
conda search cudnn --info
conda install cudnn=8.2
conda search keras --info
# conda search tensorflow-gpu --info# 只更新到了2.4版本,改用pip安装
pip install tensorflow-gpu==2.6
vim ~/tensorflow2-gpu.py
python tensorflow2-gpu.py
# 退出nvidia-tf1.x环境
conda deactivate
# 退出conda环境
conda deactivate
# tensorflow2-gpu.py
import tensorflow as tf
import tensorboard
#tf.enable_eager_execution()
a = tf.random.uniform([1000, 1000])
b = tf.random.uniform([1000, 1000])
print("tensorflow version:",tf.__version__)
print("gpu:",tf.test.is_gpu_available())
print("cuda:",tf.test.is_built_with_cuda())
print(tf.matmul(a, b))
备份安装好的系统
wsl --export Ubuntu-20.04 D:\WindowsSubsystemLinux\img\Ubuntu-20.04-tf-backup.tar
常见问题FAQ
下载速度巨慢,或因为超时问题而安装失败,可以尝试以下解决方案。
- 使用默认源,合理配置代理
Clash for Windows 规则模式代理配置
parsers: # array
- url: https://linkuserssnk.xxyjx.cc/link/XmCwv00Wm03z5eup?clash=1
yaml:
prepend-rules:
- DOMAIN-SUFFIX,nvidia.com,🔰国外流量
- DOMAIN-SUFFIX,typingclub.com,🔰国外流量
- DOMAIN-SUFFIX,pypi.org,🔰国外流量
- DOMAIN-SUFFIX,pythonhosted.org,🔰国外流量
- DOMAIN-SUFFIX,ubuntu.com,🔰国外流量
- DOMAIN-SUFFIX,launchpad.net,🔰国外流量
- DOMAIN-SUFFIX,readthedocs.io,🔰国外流量
- DOMAIN-SUFFIX,pjreddie.com,🔰国外流量
- DOMAIN-SUFFIX,bazel.build,🔰国外流量
- DOMAIN-SUFFIX,googleapis.com,🔰国外流量
- 更改系统源,改到合适为止
略