tensorflow1和2的安装部署,演示2.14版本(最新是2.15版本)
windows和linux用法一致,我是在win10和ubuntu2204下都手动测试过的
本文使用的conda的方式,2024年3月10日更新
如果中间有任何报错,参考最后一节的处理
链接:tensorflow官网
注意:如果因为网络问题出现错误或卡住,多次尝试,或者设置国内源或者其他方式。
一、基本配置
1.需要安装anaconda
如果没有安装,按照我的这个教程(windows和linux都有):
因为notebook使用很方便,所以不要用miniconda,那样就没有notebook!
链接: anaconda安装
当然如果不用notebook,也可以安装miniconda,
链接:miniconda安装
初学者建议用cpu版本,gpu配置相对复杂,坑多
我这里的教程是直接装完包括依赖的,无需手动编译
2.gpu版本需要cuda和cudnn
在gpu的conda环境里面安装即可,建议也在系统环境中安装
cuda11.8,cudnn 8.6
链接:cuda安装(linux)
链接:cuda安装(windows)
3.windows用户想使用linux的
可以参考我的linux安装图解(详细)
unbuntu:ubuntu2204安装
debian: debian 11 12安装
二、安装tensorflow1.15(1的最后一个cpu版本)
在windows和linux下一致。
由于现在主要用2了,1就用cpu版本吧,ts1的gpu版本用的cuda8,版本过老,很多现在的显卡已经不能很好支持。
1.15是tensorflow1的最后一个版本,已经多年不再更新了,如果装2跳过这一步。
1.安装python3.6环境
conda create -n tensorflow1 python=3.6
2.激活环境
conda activate tensorflow1
3.安装tensorflow1.15
通过国内源安装
pip install tensorflow==1.15.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/
4.方便在notebook中使用
通过国内源安装
pip install ipykernel -i https://pypi.tuna.tsinghua.edu.cn/simple/
python -m ipykernel install --name tensorflow1
5.打开notebook后,可以看到tensorflow的环境了
6.验证
打开notebook,输入以下并运行,显示版本号即可
import tensorflow as tf
print(tf.__version__)
三、安装tensorflow2.16.1(cpu版本)
更新这篇时(2024.3.10),最新版为2.16.1,以此为演示
官方给的兼容性:tensorflow兼容性
1.安装python3.10环境(3.9-3.11之间)
这里选用3.10的python
conda create -n tensorflow2_cpu python=3.10
激活环境
conda activate tensorflow2_cpu
2.安装tensorflow2.16.1
pip install tensorflow-cpu==2.16.1 -i https://pypi.tuna.tsinghua.edu.cn/simple/
3.适配notebook
pip install ipykernel -i https://pypi.tuna.tsinghua.edu.cn/simple/
python -m ipykernel install --name tensorflow2_cpu
4.验证
打开notebook,输入以下并运行,显示版本号即可
import tensorflow as tf
print(tf.__version__)
print(tf.config.list_logical_devices())
四、安装tensorflow2.16.1(gpu版本,仅限于linux)
2.12版本后,没有tensorflow-gpu这个分支了,实际上tf2对gpu的支持是自动的,但是考虑到不同版本的方便性,所以我是分开来装
由于一直在linux上部署安装,没注意到新gpu版本的变化,新版本gpu版对于windows用户相对麻烦,wsl可以尝试,不过可能坑比较多。这里就不额外写了。如果非要用windows,安装早一点的版本吧。
可以不看兼容性:官方兼容性网址
1.安装python3.10环境(3.9-3.11之间)
这里选用3.10的python
conda create -n tensorflow2_gpu python=3.10
激活环境
conda activate tensorflow2_gpu
2.安装
python3 -m pip install tensorflow[and-cuda] -i https://pypi.tuna.tsinghua.edu.cn/simple/
3.适配notebook
pip install ipykernel -i https://pypi.tuna.tsinghua.edu.cn/simple/
python -m ipykernel install --name tensorflow2_gpu
4.在conda环境中安装cuda和cudnn(可选)
如果在系统环境中安装了对应的cuda和,这一步跳过
安装cuda,当然如果在系统环境中安装过可以跳过,如果系统环境中的版本不一致,这里也可以按安装
默认源暂时没有这么高版本的,必须走conda-forge,不过可能已经无法直连了,如果无法解决网络问题,在系统里装吧
添加conda-forge源
conda config --add channels conda-forge
安装
conda install cudatoolkit=12.3
安装cudnn
pip install nvidia-cudnn-cu12==8.9.6.50 -i https://pypi.tuna.tsinghua.edu.cn/simple/
备注:查看源的cudatoolkit版本命令如下
conda search cudatoolkit
5.验证
在notebook中输入下面的进行验证
import tensorflow as tf
tf.config.list_physical_devices('GPU')
结果类似如下:
五、其它问题和解决
1.如何使用指定的环境进行开发
方法一:在notebook中写
方法二:使用命令行进入conda的指定环境,然后使用
方法三:使用远程开发,本地安装开发工具,同时远程连接命令行
2.cpu优化使用avx2
使用的时候可能会提示开启avx2的字样(可以不管他)
avx2能够加速cpu,需要cpu的支持和在bios中开启,开启avx2可能会显著增加功耗
3.successful NUMA node read from SysFS had negative value (-1)
报错如下
successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
链接:解决numa报错
解决思路就是指定gpu,完成后不会报错,根据上面的链接的方法,可以有效的解决问题,我这里再操作写一次:
查找N卡
lspci | grep -i nvidia
注意前面的这个设备号,每个人不一样,找到你需要的显卡前面的数字,下面有用。
显示所有的pcie设备
下面的命令,可以看到上面的设备号对应的文件夹
cd /sys/bus/pci/devices/ && ls
指定gpu
echo 0 | tee -a /sys/bus/pci/devices/0000:21:00.0/numa_node
4.Cannot dlopen some GPU libraries
cuddn没有装好的问题
解决方法是在conda里面装cudnn
5.配置环境变量(自动激活方式)
gpu版本如果出现问题
这种方式不需要每次手动配置这个环境下的环境变量
创建配置文件
mkdir -p $CONDA_PREFIX/etc/conda/activate.d
使用命令写入环境变量
echo 'CUDNN_PATH=$(dirname $(python -c "import nvidia.cudnn;print(nvidia.cudnn.__file__)"))' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
echo 'export LD_LIBRARY_PATH=$CONDA_PREFIX/lib/:$CUDNN_PATH/lib:$LD_LIBRARY_PATH' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
刷新环境变量(上面的操作会在每次进入conda环境后自动加载,下面这条是首次加载)
source $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
6.TF-TRT Warning: Could not find TensorRT
pip install tensorrt