[Tensorflow] Anaconda+Tensorflow-gpu+Juypter Notebook安装配置踩坑记录

本文详细记录了在Ubuntu系统下安装Anaconda、TensorFlow及配套库的全过程,包括解决权限问题、配置Jupyter Notebook、适配不同Python版本等常见坑点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前序安装步骤请参考
Ubuntu下NVIDIA driver+CUDA+cuDNN安装踩坑记录

安装anaconda

  • 下载 anaconda
    在https://repo.continuum.io/archive/上查找目前可以下载的Anaconda版本。
    我的一台工作站选择了最新的Anaconda3-2019.10-Linux-x86_64.sh,另外两条则选择了 Anaconda3-5.2.0-Linux-x86_64.sh。
    5.2.0 自带的python版本是3.6, 而之后的版本则支持python3.7。在文末的踩坑记录里会讲到这个python版本会带来许多麻烦。
wget https://repo.continuum.io/archive/Anaconda3-2019.10-Linux-x86_64.sh
wget https://repo.continuum.io/archive/Anaconda3-5.2.0-Linux-x86_64.sh
  • 安装anaconda
sudo sh Anaconda3-4.3.1-Linux-x86_64.sh

一路回车+yes即可,最后确认将路径加入用户的.bashrc中。
最后一步如果忘记点yes ,需要手动在~/bashrc 中手动添加 export PATH=/home/ubuntu/anaconda2/bin:$PATH

  • 生效.bashrc
source .bashrc

创建python 3的独立环境

创建 python3的独立环境

conda create -n python3-tensorflow-gpu python=3.7

报错
在这里插入图片描述
这是因为没有权限访问目录,须在conda命令前加上sudo再次尝试。

sudo conda create -n python3-tensorflow-gpu python=3.7

依旧报错Command not found。网上查了一下文档,原因是编译sudo的时候加入了–with-secure-path 选项。解决方案如下。

vim  ~/.bashrc

编辑.bashrc里添加以下内容。

alias sudo="sudo env PATH=$PATH"

再执行soruce让改动生效,再次运行使用sudo conda来创建新环境就成功了。

source ~/.bashrc
sudo conda create -n python3-tensorflow-gpu python=3.7

启动创建的环境。

source activate python3-tensorflow-gpu

安装tensorflow-gpu

查看tensorflow 的版本信息

anaconda show anaconda/tensorflow

安装 tensorflow。tensorflow 是cpu版本,而tensorflow-gpu是gpu版本。目前tensorflow最新版本是2.0,tensorflow2.0和之前1.x版本的差异比较大,老的tensorflow1.x的代码在2.0上函数不兼容,跑不起来,因此选择安装版本1.14.0。

sudo conda install --channel https://conda.anaconda.org/anaconda tensorflow-gpu=1.14.0

安装 opencv,matplotlib,pillow, jupyter notebook, nb_conda, pillow, pydot, graphviz。这次安装倒是一切顺利。值得一提的是

sudo conda install numpy pandas jupyter notebook matplotlib cython nb_conda pillow pydot graphviz

配置 Jupyter Notebook

jupyter notebook --generate-config
Writing default config to: /home/ubuntu/.jupyter/jupyter_notebook_config.py
jupyter notebook password
Enter password: 
Verify password: 
[NotebookPasswordApp] Wrote hashed password to /home/ubuntu/.jupyter/jupyter_notebook_config.json
vim ~/.jupyter/jupyter_notebook_config.py

编辑配置文件里的以下内容

c = get_config()

# Kernel config
# if you want plotting support always in your notebook
c.IPKernelApp.pylab = 'inline'  

# Notebook config
c.NotebookApp.certfile = u'/home/ubuntu/certs/mycert.pem' #location of your certificate file
c.NotebookApp.ip = '*'
#so that the ipython notebook does not opens up a browser by default
c.NotebookApp.open_browser = False  
#the encrypted password we generated above
c.NotebookApp.password = u'sha1:68c136a5b064...'  
# It is a good idea to put it on a known, fixed port
c.NotebookApp.port = 8888

修改好配置文件,创建一个jupyter notebook启动Home目录,就叫Notebooks吧,进入该目录后启动jupyter notebook即可。

mkdir Notebooks
cd Notebooks
jupyter notebook

在另外一台window电脑的浏览器里输入
http://[workstation的ip地址]:8888/tree
即可以看到输入密码的提示,登录jupyter notebook,大功告成。

在这里插入图片描述
要再后台运行jupyter notebook, 不会因为ssh的断开连接而意外关闭jupyter notebook,可以使用nohup来启动jupyter notebook。

nohup jupyter notebook> /dev/null 2>&1 &

要关闭jupyter notebook则可以使用ps来查看进程id,在kill进程。

ps -ef | grep 'jupyter notebook'

输出

hadoop 22136 21983 0 09:10 pts/1 00:00:00 grep jupyter notebook

这里21983就是进程号。

kill -9 21983

此时浏览器无法再连接jupyter notebook了。

踩坑总结

  • 在完成jupyter notebook配置后, 无法远程访问
    查看了非常多的网上资料,始终没有找到合适的方法。浏览器提示是远程端口存在,但没有响应,因此怀疑是防火墙的原因,于是网上查到关闭防火墙的命令如下。
sudo systemctl stop firewalld.service 

关闭防火墙后,在启动jupyter notebook,问题解决。

  • ** anaconda 权限问题**
    我的一台工作站是直接在其他人安装好的ubuntu系统上继续设置的。在安装完了anaconda后发现在使用conda install时总是出现权限问题,必须使用sudo conda install才能可以成功,但是其他的工作站上却没有这个问题。
    我仔细回想了一下,这条工作站上的ubuntu是我后来建的,并且赋予了root权限。使用ll查看anaconda的安装目录 anaconda3,发现该目录的owner是root而不是ubuntu。而在其他工作站上,anaconda3的owner都是ubuntu。于是便怀疑这可能就是导致权限不足的原因,使用以下命令更改anaconda3的目录owner,问题解决了。
sudo chown -R ubuntu:ubuntu anaconda3
  • Tensorflow 和 Python的兼容问题
    我最初安装的Python环境是3.7, Tensorflow是1.16。但是因为CUDA9.0和Tensorflow的兼容问题,我不得不把Tensorflow降到了1.12, 但是却无论如何装不上Tensorflow。网上查了一下资料,发现Tensorflow1.12最高仅支持Python3.6,实际上tensorflow1.13.1之前的所有版本都不支持python3.7。因此,卸载了python3.7的环境,重新创建了Python3.6的环境,再次安装Tensorflow 1.12

以下信息引用于 https://www.jianshu.com/p/464fefb5c5d8
在这里插入图片描述

  • Tensorflow不使用GPU运算

之前我有提过我安装的三台工作站分布是三块不同的显卡,其中有一块是非常老的 型号 Quadro 2000。就是这台工作站在完成了所有安装之后,跑Tensorflow代码是却不使用GPU。一度以为是驱动安装的问题,但用nvidia-smi命令查看驱动正常。后来,查Tensorflow的资料才发现Tensorflow使用GPU需要GPU的算力在3.0以上。而我这块老显卡的GPU算力仅2.1,因此就不会被Tensorflow使用。
以下链接可以查看老版本的nvidia显卡算力。
https://developer.nvidia.com/cuda-legacy-gpus

  • Windows 下后台启动jupyter notebook
start /b jupyter notebook >nul 2>nul
  • Windows 下查看运行中的jupytet notebook
jupyter notebook list
> Currently running servers:
> http://localhost:8888/ :: C:\Users\wangdi\notebook
  • Windows 下停止运行中的jupytet notebook
jupyter notebook stop <port>
  • 添加jupyter lab中的环境
conda install ipykernel
python -m ipykernel install --user --name <my_env> --display-name "Python (<my_env>)"
  • 移除jupyter lab中的环境
# List all kernels and grap the name of the kernel you want to remove
jupyter kernelspec list
# Remove it
jupyter kernelspec remove <kernel_name>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程小白的逆袭日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值