在Linux中配置TensorFlow训练环境
2021/11/15 7:13:04
本文主要是介绍在Linux中配置TensorFlow训练环境,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. 安装NVIDIA 驱动程序
-
禁用nouveau。
sudo vim /etc/modprobe.d/blacklist.conf #在后面添加以下内容 blacklist nouveau blacklist lbm-nouveau options nouveau modeset=0 alias nouveau off alias lbm-nouveau off # lsmod | grep nouveau 没显示即成功。
-
下载对应显卡的NVIDIA驱动
wget https://cn.download.nvidia.com/tesla/418.226.00/NVIDIA-Linux-x86_64-418.226.00.run
-
添加可执行权限
chmod +x NVIDIA-Linux-x86_64-418.226.00.run
-
安装驱动
./NVIDIA-Linux-x86_64-418.226.00.run --no-opengl-files
-
查看驱动是否安装成功
nvidia-smi
2. 安装cuda
-
卸载已安装的cuda
sudo yum remove cuda
-
如果/usr/local/目录下,还有cuda的文件目录,删了吧
cd /usr/local/
-
下载cuda
首先,前往下载:CUDA Toolkit Download,根据自己实际需要下载对应的版本。
# 这是Centos7对应的10.1的cuda版本下载地址 wget https://developer.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.105_418.39_linux.run # 这是Ubuntu对应的10.1的cuda版本下载地址 wget https://developer.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.105_418.39_linux.run
-
安装cuda
sh cuda_10.1.105_418.39_linux.run
-
设置环境变量
-
打开
~/.bashrc
文件,将下面内容添加到文件的最后:export CUDA_HOME=/usr/local/cuda export LD_LIBRARY_PATH=${CUDA_HOME}/lib64 export PATH=${CUDA_HOME}bin:${PATH}
-
运行:
source ~/.bashrc
-
打开
/etc/profile
文件,将下面内容添加到文件的最后:export PATH=“/usr/local/cuda/bin:$PATH”
-
然后,运行:
source /etc/profile
-
测试
# 查看版本 nvcc -V # 如果失败,运行下列命令 echo 'export PATH=/usr/local/cuda-10.1/bin/:$PATH'>>~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64:$LD_LIBRARY_PATH'>>~/.bashrc source ~/.bashrc
-
-
测试是否安装成功
cd /usr/local/cuda/samples/1_Utilities/deviceQuery make sudo ./deviceQuery
3. 安装cudnn
-
下载cudnn
-
解压下载的文件并进入解压目录
tar -zxvf cudnn-10.1-linux-x64-v7.6.5.32.tgz
-
逐行运行下列命令
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ sudo chmod a+r /usr/local/cuda/include/cudnn.h sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
-
完成后,通过下面的命令查看安装情况,如果结果逐行显示版本号,则安装成功。
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
4. 安装GCC 7.3.0
-
下载GCC7.3.0到路径
/usr/local
cd /usr/local wget http://mirrors.concertpass.com/gcc/releases/gcc-7.3.0/gcc-7.3.0.tar.gz
-
解压安装包并进入解压包
tar -xvf gcc-7.3.0.tar.gz cd gcc-7.3.0
-
下载编译所需要的依赖项
./contrib/download_prerequisites cd ..
-
建立编译后文件存放目录
mkdir gcc-build-7.3.0 cd gcc-build-7.3.0 ../gcc-7.3.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
-
编译
make
-
安装
make install
5. 安装 Bazel
第 1 步:添加 Bazel 分发 URI 作为包源
注意:这是一次性设置步骤。
sudo apt install apt-transport-https curl gnupg curl -fsSL https://bazel.build/bazel-release.pub.gpg | gpg --dearmor > bazel.gpg sudo mv bazel.gpg /etc/apt/trusted.gpg.d/ echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
组件名称“jdk1.8”仅出于遗留原因保留,与支持或包含的 JDK 版本无关。Bazel 版本与 Java 版本无关。更改“jdk1.8”组件名称会破坏存储库的现有用户。
第 2 步:安装和更新 Bazel
sudo apt update && sudo apt install bazel
安装后,您可以升级到更新版本的 Bazel 作为正常系统更新的一部分:
sudo apt update && sudo apt full-upgrade
该bazel
软件包始终安装最新的 Bazel 稳定版本。除了最新版本之外,您还可以安装特定的旧版本 Bazel,例如:
sudo apt install bazel-2.0.0 bazel --version
6. 安装Anaconda并设置远程访问
-
下载anaconda
从anaconda官网下载适合本机版本的anaconda
注意:下载对应tensorflow版本的python的anaconda
wget https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh
-
安装anaconda
-
切换至anaconda文件所在的文件夹
# 运行sh命令开始安装程序 sh Anaconda3-2021.05-Linux-x86_64.sh
-
配置文件
# 在家目录路径下 cd ~ # 在.bashrc文件中添加环境变量 alias mypython='/root/anaconda3/bin/python' export PATH=/root/anaconda3/bin:$PATH # 添加完成之后,重新载入配置文件 source .bashrc
-
创建tensorflow2的运行环境
conda create --name tensorflow2 -y conda activate tensorflow2
-
-
配置Jupyter Notebook
-
生成
jupyter notebook
的配置文件jupyter notebook --generate-config
-
配置密码
jupyter notebook password
-
配置ssh
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mykey.key -out mycert.pem
-
写入配置文件
# Set options for certfile, ip, password, and toggle off # browser auto-opening #c.NotebookApp.certfile = u'/home/mango/.jupyter/mycert.pem' # c.NotebookApp.keyfile = u'/home/mango/.jupyter/mykey.key' # Set ip to '*' to bind on all interfaces (ips) for the public server c.NotebookApp.ip = '*' c.NotebookApp.password = u'argon2:$argon2id$v=19$m=10240,t=10,p=8$5OEPDBDtBosBGgMG/8UfFg$ZrUtCCZHBAjWg9DZSsQ4NQ' c.NotebookApp.open_browser = False # It is a good idea to set a known, fixed port for server access c.NotebookApp.port = 8888
-
如果出现远程访问不了
非常可能的原因是服务器防火墙没有开放端口,导致远程访问失败。排查过程如下:
-
查看防火墙状态
$ sudo systemctl status firewalld.service
-
查看防火墙已开放端口列表
$ sudo firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens33 sources: services: dhcpv6-client ssh ports: 8888/tcp # 如果这里没有出现你需要的端口,则端口未开放,需要添加来开放端口 protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
-
防火墙添加端口
# 添加端口 $ sudo firewall-cmd --permanent --add-port=8888/tcp # 移除端口 # sudo firewall-cmd --permanent --remove-port 8888/tcp # 重新载入 $ sudo firewall-cmd --reload
-
-
-
使jupyter识别虚拟环境
jupyter notebook 默认安装在 base环境下 那么我们需要在base环境里安装 `nb_conda_kernels` 首先进入 base 环境
conda install nb_conda_kernels
接着使用 conda list 查看ipykernel的版本
conda list
我这里的版本是5.3.4。如果ipykernel缺失,需要自己安装。
接着进入目标虚拟环境
activate your_env_name conda list
观察发现缺失 ipykernel 包
那么我们直接使用conda安装 缺失的 ipykernel包
conda install ipykernel=5.3.4
然后在命令行启动jupyter notebook 发现 jupyter notebook已经可以识别到虚拟环境了
-
nohup的开启和停止
# 使jupyter notebook永久运行 nohup jupyter notebook # 找到jupyter notebook的进程ID ps -A # 使用kill结束jupyter notebook进程 kill -9 ID
参考资料
[1].https://www.cnblogs.com/thousfeet/p/10647102.html
[2] https://blog.csdn.net/Brephos/article/details/118723717
[3] https://blog.csdn.net/weixin_39818014/article/details/113490396
这篇关于在Linux中配置TensorFlow训练环境的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法