在看Udacity的DL课的时候,要用TensorFlow,新电脑还没装Linux, 就尝试以下win下的TensorFlow安装,遇到一些小问题,记录一下。
1.首先安装docker。
docker的原理我不是很懂,但是一个很有用的东西,据说适合云上部署之类,有空再了解。
Windows版的docker官网下载地址为:https://www.docker.com/products/docker#/windows
如果是win10以下的版本选之前的Docker Toolbox,我下的就是Docker Toolbox。
然后是标准的exe安装流程,安装完成后出现以下三个图标,分别为virtual box(可以看创建的虚拟机),kitematic(好像用来找镜像)和Docker quickstation terminal(docker的命令行)。
2.启动Docker Quickstart Terminal
启动后画面是这样的:
3.安装TensorFlow
坑是从这里开始的,uda给的镜像pull的地址是这样的
然后就一直出错,pull不下来,后来把这个地址输到浏览器一看,是google云平台上的,猜测可能是被墙了,ss全局试了,可惜还是不行,各种重启都没用,到后来查了很多网页,问了一些小伙伴,说ss命令行下可能不行,需要才可以。于是找到一个试了下,果然可以pull了。但是速度很慢,最终采用了一个网友说的别的方法。
方法是:到docker hub注册个账号,然后docker命令行下
(1)登录,docker login -u 账号 -p 密码
(2)docker run -it tensorflow/tensorflow,就可以成功的下载了。
4.启动和试用TensorFlow
用下面的指令启动TensorFlow镜像
docker run -it tensorflow/tensorflow bash (好像没有bash也是可以的)
做一点简单的测试
选项-i用于保持STDIN在当前的窗口上,-t用于分配一个pesudo-tty,两个选项使得当前的窗口可以像一个linux的bash一样运行。第一个参数指定了使用的镜像,第二个参数指定了启动这个镜像后启用的命令,用bash启动方便我们开始第一次的探索。
(参考博客的图)
5.jupyter notebook下用TensorFlow
TensorFlow的镜像其实是带了jupyter notebook编辑器,numpy等一些库,这就方便很多了,命令行毕竟不方便。
开始试用jupyter的时候坑又开始了。
看网上说在浏览器登录:localhost:8888就可以用jupyter,试了n遍不行。
用指令docker-machine ls看虚拟机的地址,是192.168.99.100:2376,在浏览器输了也没成功。
后来试了网上找到的以下方法成功了,先设置以下虚拟机的网络:
然后在命令行内输入:docker run -it-p 8888:8888 tensorflow/tensorflow
查了下-p的意思,是这样的:
如果使用-p或者-P,那么container会开发部分端口到host,只要对方可以连接到host,就可以连接到container内部。当使用-P时,docker会在host中随机从49153 和65535之间查找一个未被占用的端口绑定到container。你可以使用docker port来查找这个随机绑定端口。(网上说明)
这么一设置以后,果然可以了,在浏览器里输入:localhost:8888或者192.158.99.100:8888,都可以在用jupyter了。
最后特别感谢冯立和宁缺两个小伙伴,告诉了我docker的一些用法,TensorFlow镜像的知识,还有的东西,十分感谢。
参考资料:
1.http://www.itdadao.com/articles/c15a659981p0.html
2.http://www.jianshu.com/p/fbb16a40fac9
3.http://blog.csdn.net/neilron/article/details/51387161
4.http://www.cnblogs.com/huidong/p/5426556.html
5.http://www.neilron.xyz/set-up-docker-on-windows/#port