TensorFlow(1):使用Docker镜像搭建TensorFlow环境
1,关于TensorFlow
TensorFlow 随着AlphaGo的胜利也火了起来。
google又一次成为大家膜拜的大神了。google大神在引导这机器学习的方向。
同时docker 也是一个非常好的工具,大大的方便了开发环境的构建,之前需要配置安装。
看各种文档,现在只要一个 pull 一个 run 就可以把环境弄好了。
同时如果有写地方需要个性化定制,直接在docker的镜像上面再加一层补丁就好了。
自己的需求就能满足了,同时还可以将这个通用的方法分享出去。
2,下载TensorFlow images
使用hub.docker.com的镜像
docker pull tensorflow/tensorflow:latest
使用daocloud 的镜像,在国内用速度还是挺快的,如果docker.io的镜像慢,可以用daocloud的。
这个速度非常的快。一样用的。版本也挺新的。
docker pull daocloud.io/daocloud/tensorflow:latest
3,启动镜像
启动命令,设置端口,同时配置volume 数据卷,用于永久保存数据。加上 –rm 在停止的时候删除镜像。
sudo mkdir -p /data/tensorflow/notebooks
docker run -it --rm --name myts -v /data/tensorflow/notebooks:/notebooks -p 8888:8888 daocloud.io/daocloud/tensorflow:latest
启动的时候并不是daemon 模式的,而是前台模式,同时显示了运行的日志。
W 06:48:13.425 NotebookApp] WARNING: The notebook server is listening on all IP addresses and not using encryption. This is not recommended.
[I 06:48:13.432 NotebookApp] Serving notebooks from local directory: /notebooks
[I 06:48:13.432 NotebookApp] 0 active kernels
[I 06:48:13.432 NotebookApp] The Jupyter Notebook is running at: http://[all ip addresses on your system]:8888/?token=2031705799dc7a5d58bc51b1f406d8771f0fdf3086b95642
[I 06:48:13.433 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 06:48:13.433 NotebookApp]
Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://localhost:8888/?token=2031705799dc7a5d58bc51b1f406d8771f0fdf3086b95642
打开浏览器就可以直接看到界面了。
同时可以编辑内容:
写第一个 hello world:
import tensorflow as tf
a = tf.constant(10)
b = tf.constant(32) with tf.Session():
c = tf.add(a,b)
print(c)
print(c.eval())
其他的使用参考中文手册:
https://github.com/jikexueyuanwiki/tensorflow-zh
里面有pdf 可以下载使用。
还有一个超级炫酷吊炸天的playground :
http://playground.tensorflow.org/
5,打个补丁
vi run_jupyter.sh
#!/usr/bin/env bash
jupyter notebook --no-browser --NotebookApp.token='token1234' > /notebooks/jupyter-notebook.log
然后重新打一个docker镜像。
vi Dockerfile
FROM daocloud.io/daocloud/tensorflow:latest
RUN rm -f /run_jupyter.sh
COPY run_jupyter.sh /run_jupyter.sh
ENTRYPOINT ["/run_jupyter.sh"]
这样就固定token了。
docker build -t mytf:1.0 .
docker run -it --rm --name myts -v /data/tensorflow/notebooks:/notebooks -p 8888:8888 -d mytf:1.0
然后就可以 -d 参数,将docker 运行放到后台。然后就可以使用 docker exec -it xxx bash 登录进去查看系统的状况了。
4,总结
本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/70237003 未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys
docker 真的是非常好的技术,能够快速的搭建好环境,省去了繁琐的安装配置过程。
最后使用参数将环境跑起来,同时也可以根据自己的需求,给镜像增加新的功能,就像是盖房子。
一层一层的盖。所有的层,构成了一个整体的房子。
同时对于 TensorFlow 来说是一个程序员必须的技能了。就像是 lucence一样,其实大家都不太了解那个索引算法的。
但是还是可以创建出一个索引分词来。
TensorFlow 也是一样的。当做一个工具来使用就好了,具体的算法也不太精通。
有一个说法,数据量上去了,用大数据优化,比算法优化要效果好。
TensorFlow(1):使用Docker镜像搭建TensorFlow环境的更多相关文章
- PyCharm使用之利用Docker镜像搭建Python开发环境
在我们平时使用PyCharm的过程中,一般都是连接本地的Python环境进行开发,但是如果是离线的环境呢?这样就不好搭建Python开发环境,因为第三方模块的依赖复杂,不好通过离线安装包的方式安装 ...
- 傲视Kubernetes(二):Docker镜像搭建与本地Kubernetes环境搭建
主要内容: 1.Docker与Kubernetes的关系 2.SpringBoot微服务的Docker镜像创建 3.Kubernetes本地环境搭建 一.Docker与Kubernetes的关系 在说 ...
- spring boot / cloud (十八) 使用docker快速搭建本地环境
spring boot / cloud (十八) 使用docker快速搭建本地环境 在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情 特别是现在,系统越来越复杂,所需要连接的一些中间件也越 ...
- 使用Docker快速搭建ELK环境
今天由于Win系统的笔记本没带回家,其次Docker在非Linux系统下都需要安装额外的软件去镜像才行 所以感觉没有差别,先直接用Mac搭建一遍呢, 本篇部分命令和配置内容为摘抄 Mac下使用Dock ...
- python开发笔记-Python3.7+Django2.2 Docker镜像搭建
目标镜像环境介绍: 操作系统:ubuntu16.04 python版本:python 3.7.4 django版本:2.2 操作步骤: 1. 本地安装docker环境(略)2. 拉取ubunut指定 ...
- 在docker镜像中加入环境变量
原文链接 前言 reference:https://vsupalov.com/docker-build-time-env-values/ 很多时候,我们需要在docker镜像中加入环境变量,本人了解的 ...
- 使用Docker快速搭建Tensorflow开发环境
当我刚开始学习使用scikit-learn时,总是会出现各种各样的包依赖问题,兜兜转转了一遍才全部安装好,现在的机器学习算法开发者大都使用tensorflow.pytorch来实现自己的想法,但依然会 ...
- 基于 docker容器搭建机器学习环境
下载docker镜像 docker pull ubuntu:18.04 进入ubuntu系统命令 docker run -ti ubuntu /bin/bash 正确退出系统方式 先按,ctrl+p ...
- docker中搭建jenkins环境
想在docker中搭建一个jenkins环境.开始的时候我想在先pull centos,然后在里面自己搭建环境,搭建后的环境可以运行,但是不知道挂载哪的数据,这也是我不熟悉jenkins的原因. 同事 ...
随机推荐
- js 从URL上获取参数
//获取匹配的 function getUrlParam(name) { var reg = new RegExp("(^|&)" + ...
- C#与java中的AES加解密互解算法
一.C#版AES加解密算法 public class AESCode { public string Key { get; set; } public string Encrypt(string va ...
- iftop 命令
在Linux中有一个可以实施监控网络流量的一个工具那就是我们这次要说的iftop命令,这个命令不是系统自带的内置命令,在使用之前是需要先进行安装的 安装方式:yum -y install iftop就 ...
- Android /data/local/tmp目录的好处
在Android中,访问data目录一般需要root权限,但是有个另外那就是/data/local/tmp目录. 注意: (1)cd /data/local/tmp可以打开这个目录,而不是一级一级目 ...
- Jemeter 连接数据库
1.打开Jmeter添加测试计划,(http://central.maven.org/maven2/mysql/mysql-connector-java/6.0.6/mysql-connector-j ...
- 解决:Tomcat 局域网IP地址 访问不了
解决:Tomcat 局域网IP地址 访问不了 2014年10月17日 ⁄ 综合 ⁄ 共 1000字 ⁄ 字号 小 中 大 ⁄ 评论关闭 如果连最基本的localhost:8080都失败的话. 原因就一 ...
- skype客户端搜不到联系人解决办法
1.确认skype客户端登陆的配置信息 按住Ctrl 键不放,右击右下角任务栏 skype 图标,选择:配置信息,确认skype的:GAL搜索或基于服务器的搜索为:基于服务器的搜索,如下图所示: 2. ...
- javascript模块导入导出
第一次知道javascript有模块的概念通常都是使用<script>标签进行引入,不过只能在html文件上使用 增加的模块就如同php里的include.require可以使用引入的内容 ...
- /etc/sudoers文件的分析以及sudo的高级用法
高级用法总结: sudo命令是普通用户的提权操作指令.在权限控制中,我们可以使用/etc/sudoers文件中来进行设置.基本的用法比较熟悉.比如设置一个普通用户可拥有root用户的运行权限,那么设置 ...
- plsqldev、oracle插入中文乱码问题解决
最近在开发项目时用到Oracle数据库,需要手动插入一些数据,但插入中文的sql值时出现了乱码. 中文乱码就是编码不统一所导致的了,解决办法只需要把编码统一下即可解决了. 此种情况最大的可能就是客户端 ...