本文主要讲解在Ubuntu系统中,如何在Anaconda下安装TensorFlow以及配置Jupyter Notebook远程访问的过程。
在官方文档中提到,TensorFlow的安装主要有以下五种形式:
1.Pip安装:这种安装形式类似于安装其他的Python安装包。会影响到机器上当前的Python环境,可能会与已安装的某些版本相冲突。
2.Virtualenv安装:将TensorFlow安装在指定路径下,与当前的Python环境相隔离。
3.Anaconda安装:以Anaconda为基础安装TensorFlow,和上面的形式相同,也与当前Python环境相隔离。在使用TensorFlow时不影响其他Python应用的使用。
4.Docker安装:在Docker中隔离安装TensorFlow
5.从源码安装:编译源码生成TensorFlow的安装whell文件。
在安装过程中,尝试了Pip安装和Anaconda安装两种形式。其中Pip安装过程比较简单,按照官方文档中的步骤进行即可。接下来主要描述的是Anaconda安装的过程。
一、Anaconda和TensorFlow环境
1、Anaconda安装
首先去本文最后的Anaconda官方下载地址下载Anaconda安装文件Anaconda2-4.2.0-Linux-x86_64.sh。
下载完成后上传到服务器中,在文件路径下执行如下命令:
bash Anaconda2-4.2.0-Linux-x86_64.sh
接下来按照提示设置一些安装路径等参数,Anaconda安装完成后,会安装很多Python中常用的package,比如ipython和jupyter等。
2、TensorFlow环境配置和切换
安装完成后,使用如下命令生成一个名为tensorflow的conda环境,根据python版本选择正确的命令执行即可
# Python 2.7
$ conda create -n TensorFlow python=2.7
# Python 3.4
$ conda create -n TensorFlow python=3.4
# Python 3.5
$ conda create -n TensorFlow python=3.5
生成conda环境主要是可以自由切换tensorflow环境和普通python环境。
(1)进入TensorFlow环境
使用如下命令进入TensorFlow环境:
source activate tensorflow
此时界面如图所示,可以看到,在这里会将/usr/local/ml/anaconda2/envs/tensorflow/bin配置到PATH变量前
(2)退出tensorflow环境
使用如下命令可以从tensorflow环境中退出:
source deactivate
结果如下,可以看到这两种环境下python的执行路径是不相同的
二、TensorFlow安装
1、安装
在官方文档中介绍了在Anaconda中安装TensorFlow有两种方法,一种是使用conda安装,另一种是使用pip安装。在实际操作时发现由于网络原因,稍大一点的安装包就会长时间卡住无响应。可以考虑将需要的安装包下载后以local模式进行安装,在操作中发现pip安装可下载的资源比较多,而conda安装资源比较难找,所以接下来以pip的方式进行安装。
在conda安装时,可以看到TensorFlow需要依赖的package及版本如下:
在pip安装模式下,根据安装过程的提升,将对应版本的安装文件从本文最末的Python安装包下载地址中下载到本地。比如在此次安装过程中,我手动下载了几个比较大的安装文件,如下所示
pip install numpy-1.11.2-cp27-cp27mu-manylinux1_x86_64.whl
pip install protobuf-3.0.0-py2.py3-none-any.whl
pip install tensorflow-0.11.0rc0-cp27-none-linux_x86_64.whl
2、遇到的报错
安装完成后,在tensorflow环境下执行示例代码时发现了如下的一个报错
ImportError: libcudart.so.7.0: cannot open shared object file: No such file or directory
...
Error importing tensorflow. Unless you are using bazel
经排查发现是tensorflow安装文件下载错误导致的。我本想安装的是CPU Only版本,而错误安装了一个GPU enabled版本。
有关该错,还可以参考官方文档中的详细描述(https://www.tensorflow.org/versions/r0.11/get_started/os_setup.html#common-problems)
重新安装对应版本后错误消失。
3、验证安装是否正确
官方文档中提供一段检查tensorflow安装是否正确的代码,如下所示
$ python
...
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
Hello, TensorFlow!
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print(sess.run(a + b))
42
>>>
运行结果如下所示:
到这里TensorFlow已经正确安装,可以继续进行后续学习了。
但是考虑到TensorFlow安装在虚拟机中,使用不是很方便,接下来考虑配置一个jupyter notebook server服务可以在浏览器中远程访问,更加方便的使用tensorflow。
三、Jupyter Notebook远程访问
在TensorFlow官方文档中正确安装TensorFlow后,还有一小部分文档描述在tensorflow环境下安装IPython。如果完全按照官方文档的提升安装所需组件后,是无法通过浏览器远程使用TensorFlow的。需要在TensorFlow环境下手动安装Jupyter Notebook并且配置其Server方式。
1、Jupyter安装
去Python安装包下载地址中下载Jupyter安装文件,并按安装过程中的依赖提示,下载并安装Jupyter依赖的安装包。
2、Jupyter Notebook Server配置
Jupyter安装完成后,需要进行以下一系列操作并配置好配置文件。配置完成后,建议在Chrome浏览器中远程使用,由于浏览器原因遇到的报错会在最后描述。
参考Jupyter Notebook官方文档中的步骤就可以实现远程访问的功能。
(1)生成配置文件
使用如下命令
jupyter notebook --generate-config
会在~/.jupyter目录下生成一个名为jupyter_notebook_config.py的配置文件
(2)准备配置的密码
如下所示,
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'
注意保存上面的Out[2]中生成的内容
(3)生成pem和key文件
使用如下命令会在当前路径下生成一个mykey.key和一个mycert.pem文件,这两个文件会在后面的配置中使用到。下面的命令会生成有效期为365天的certificate文件。
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mykey.key -out mycert.pem
(4)配置配置文件
这里主要配置第一步中的jupyter_notebook_config.py文件。需要配置的选项如下:
c.NotebookApp.certfile = u'/absolute/path/to/your/certificate/mycert.pem'
c.NotebookApp.keyfile = u'/absolute/path/to/your/certificate/mykey.key'
# Set ip to '*' to bind on all interfaces (ips) for the public server
c.NotebookApp.ip = '*'
c.NotebookApp.password = u'sha1:bcd259ccf...<your hashed password here>'
c.NotebookApp.open_browser = False
# 指定端口号
c.NotebookApp.port = 8888
配置完成后,在TensorFlow环境下输入jupyter notebook命令,在远程中打开Chrome浏览器,输入`https://ip:9999就可以远程访问并使用TensorFLow了。
最终效果如下:
注意事项:
注意这里最好使用Chrome浏览器,以免遇到莫名其妙的文件。比如我在使用猎豹浏览器时在页面上遇到了404 : Not Found的错误
在后台输出的日志中显示
[W 08:33:55.116 NotebookApp] 404 GET
换到Chrome浏览器后,问题消失。
主要参考和使用的资源网站:
1、TensorFlow官方文档(https://www.tensorflow.org/versions/r0.11/get_started/index.html)
2、TensorFlow Github地址(https://github.com/tensorflow/tensorflow)
3、jupyter远程访问(http://jupyter-notebook.readthedocs.io/en/latest/public_server.html)
4、Anaconda官方下载地址(https://www.continuum.io/downloads#linux)
5、Python安装包下载地址(https://pypi.python.org/)
- Windows+anaconda+jupyter notebook+R+python3.6
Windows+anaconda+jupyter notebook+R+python3.6 环境配置 1. 设置国内清华大学镜像 打开 anaconda prompt,输入命令 conda confi ...
- anaconda jupyter notebook 启动方法
介绍 anaconda jupyter notebook是一种基于浏览器的python编译环境.(大概) 使用时可能因为浏览器缓存造成问题. 但是很方便. 启动方法 anaconda navigato ...
- 第一节 anaconda+jupyter+numpy简单使用
数据分析:是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究对象的内在规律 数据分析三剑客:Numpy,Pandas,Matplotlib 一 Anaconda 1 下载 官网:http ...
- anaconda jupyter notebook修改默认文件路径
使用anaconda附带的jupyter,想要改变默认运行文件路径,直接在cmd中输入jupyter notebook会提示:jupyter不是内部命令! 可能是anaconda代理了他所安装的软件, ...
- 配置tensorflow环境(anaconda+jupyter notebook)
很早之前,tensorflow环境之前我也曾装过,但是用的不是很舒服,很多问题都不明所以然.今天想要系统地学习一下tensorflow,于是又重新搭建了一遍,这次还是踩了不少坑.特此写下此文,供有兴趣 ...
- anaconda+jupyter notebook 安装配置
安装Anaconda 从清华大学开源软件镜像站选择合适自己的版本 wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda ...
- 配置服务器(anaconda + jupyter + R)
总结一下整体的流程: 1. 服务器安装anaconda 首先清华镜像站下载anaconda3. 2. 将下载好的文件用scp命令传入服务器 注意:指定端口用-P命令 p大写 本机地址 用户名@服务器I ...
- Anaconda Jupyter WinError2:The system cannot find the file specified
Traceback (most recent call last): File "C:\Users\builder\Miniconda3\Scripts\conda-build-script ...
- Centos7安装 Anaconda + jupyter notebook
一.安装Anaconda 1 下载Anaconda安装脚本 为了避免漫长的等待,镜像源选择国内的清华镜像源,镜像源地址:https://mirrors.tuna.tsinghua.edu.cn/ana ...
随机推荐
- JavaFX本地应用自己主动更新功能的实现FXLauncher
JavaFX本地应用自己主动更新功能的实现--FXLauncher 作者:chszs,未经博主同意不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 一. ...
- BIEE11G Rpd合并
Rpd合并 如图,合并两个rpd须要用三个rpd文件来操作.一个是blank.rpd.这是一个空白rpd,在biee合并的时候作为"原始主资料档案库":另一个是modified.R ...
- 【cl】字符串
使用单引号(') 你可以用单引号指示字符串,就如同‘How are you’这样.所有的空白,即空格跟制表符都照原样保留 使用双引号(“) 在双引号中的字符串与单引号中的字符串的使用完全相同,例如“W ...
- Java封装FushionCharts
近期公司接了个关于数据统计的系统.须要用到报表功能.找了几天认为还是FushionCharts 适合.所以就对FushionCharts进行了java代码封装,方便,前台,后台调用. 1.报表Mode ...
- xargs命令【转】
本文转载自:http://man.linuxde.net/xargs
- php执行运算符
php执行运算符 简介 php 支持一个执行运算符:反引号(``).反引号(``)位于键盘Tab键左上方.php 将尝试将反引号中的内容作为外壳命令来执行,并将其输出信息返回(例如,可以赋给一个变量而 ...
- 基于mkdocs-material搭建个人静态博客
基于mkdocs-material搭建个人纯静态博客,没有php,没有mysql 如果你只是想安安静静的放一些技术文章,发布到个人站点或github-pages,mkdocs-material很适合你 ...
- JDBC基础02
今日知识 1. sql注入问题2. jdbc批处理3. 事务 SQL注入问题解决 1.什么是sql注入. * 用户通过相关的特殊关键字sql语句非法访问数据库 *例如: Xxx(' or '1'='1 ...
- js与jquery基础知识对比(一)---2017-05-06
用表格做的,想要对比的内容一目了然,红色部分为重点 js jquery 取元素 id: document.getElementById("aa"); 取到的是dom对象 cla ...
- Mysql数据库概述
阅读目录 引擎介绍 表介绍 创建表 查看表结构 mysql中的数据类型 表的完整性约束 修改表结构 删除表 多表结构的创建与分析 练习 返回顶部 引擎介绍 mysql中的存储引擎(https://ww ...