TensorFlow学习笔记(一)

开始学习TensorFlow

@Author:LF
@Date:2017-12-2

首先是安装,TensorFlow是运行在Linux上的框架,因此要先搞定Linux系统,那么我的系统是Win10家庭版,所以首要解决的问题是如何搞一个Linux的系统。解决这个问题一般有三种方法:VM、docker、双系统。

  • 1、VM里的系统在性能上是大打折扣的,我的电脑是8G内存四核CPU,在虚拟机里运行一个Linux只能分配到2G内存。不太可行

  • 2、docker是一个可行的解决途径,但是win10家庭版没有hyper-v(虚拟服务功能),无法直接从docker官网下载安装包正常安装,可以下载dockertool安装。
    非家庭版即拥有Hyper-v服务的教程地址:
    http://blog.csdn.net/shi1451042748/article/details/52996046

  • 3、安装双系统也可以(教程网址:https://www.zhihu.com/question/19867618),但是对磁盘容量要求比较高。我的磁盘容量只有500G,所以并没有首选这个方法。先试一试安装docker。

docker的安装过程

DockerTool下载网址:https://get.daocloud.io/toolbox/

这是一个云服务器上的下载地址,国内下载很快,后缀为.exe的可执行程序下载下来后根据提示安装。(安装过程中反正我是所有的勾都打了)

图片(1.2.3)这里写图片描述这里写图片描述桌面生成了这三个图标,第三个据说是镜像库,第二个不知道干啥的,估计应该是一个虚拟机啥的。第一个就是Docker的终端,单击Docker的终端,第一次运行会自动生成一些目录下没有的文件夹之类的。但是

图片(4)

这一条信息显示它找不到这个默认的boot2docker.ISO文件,然后自动连接github那边的一个地址进行下载,然而会发现一个error,connection失败,然后就挂了。这里其实boot2docker.ISO文件已经在docker的安装目录下了,只需要将它复制到对应的目录下(第一次启动时候终端前两行会给它的查找目录,就是那个)一般默认C:\Users\Administrator.Docker\machine\cache这个目录。

然而并没有什么用。。。

图片(5)

这里继续提示ISO文件版本太低,继续下载最新的。然后依旧连接失败。

图片(6)

所以我选择自己下载。。。。。。(用迅雷是真的快。。。 )

下载的地址在终端里已经显示了

https://github.com/boot2docker/boot2docker/releases/download/v17.11.0-ce/boot2docker.iso

然后把下载好的ISO文件如上面的步骤一样拷贝,再打开终端。

图片(7)

全程自动,然后出现以下界面则docker运行成功!

图片(8)

到这里Docker的安装就结束了。下面即要学习docker的使用并且在docker中导入包含TensorFlow的镜像


Docker安装TensorFlow

阿里云提供了一个镜像仓库,反正肯定够我用的了。

阿里云docker镜像仓库地址:https://dev.aliyun.com/search.html

我这里随便选了一个下载次数最多的,然后pull镜像到我的docker中:


docker pull registry.cn-hangzhou.aliyuncs.com/denverdino/tensorflow

图片(9)

pull完成,可以运行做这个镜像了(说实话目前我对容器和镜像这个东西并不是分得很清,倒是实例比较好理解,docker是容器,镜像是实例。)

docker运行镜像命令


docker run -it -p 8888:8888 --name=TensorFlowContainer registry.cn-hangzhou.aliyuncs.com/denverdino/tensorflow bash

选项-i进入终端,-t获得一个交互式的连接,通过获取container的输入,两个选项使得当前的窗口可以像一个linux的bash一样运行。 -p指定运行端口号,前面的8888指定windows主机端口号,后面的8888指定容器里系统的端口号。-name可不用,这里是自己起一个名字(应该是这个意思)然后接要启动的实例的名字,就是刚才pull下的。

图片(10.11)

这里写图片描述
当出现这个时,代表你已经进入了这个镜像中,相当于已经在使用Linux系统了。然后开始测试一下TensorFlow。

图片(12)

成功运行,虽然中途出现了几个warning。但是这是因为我pull的镜像中没有编译相关工具,不会影响我们的测试,以后进一步学习可以换镜像。


退出镜像:exit

在docker中查看已经存在的镜像:docker ps -a

图片(13)


TensorFlow的主要依赖包

当然之前各种下载的等待过程中看了下书,这里简单介绍下TensorFlow的主要依赖包Protocol Buffer(处理结构化数据的工具)和Bazel(自动化构建工具)。

Protocol Buffer

处理结构化数据的工具。那么啥是结构化数据?个人理解为和C++里面的Struct类型差不多,多种属性的数据构成一个大的东西就是结构化数据,比如一个人有年龄 姓名 出生日期等属性,那么某一个具体的人包含这些属性的Struct实例就相当于一个结构化的数据。而Protocol Buffer就是来处理这种数据的工具。和XML、Json很像。只不过书上说它的效率比较高,解析时间和数据大小都非常小。Protcol Buffer定义数据格式的文件一般保存在.proto文件中,而且还定义了每个属性的属性(比如required、repeat、optional等等感觉和网页开发里的标签的属性差不多 = .=),TensorFlow中的数据基本是通过Protocol Buffer来组织的。(上一次在南京的培训中跟着样例修改了一下神经网络中的某一层,里面的参数组织方式和JSON的数据格式非常相似(当时的想法),现在想想应该和Protocol Buffer有点关系)

Bazel

自动化构建的工具。书中将它和Makefile这些进行了一下小对比。那我估计他们属于同一类工具。Makefile我接触过一点点,是一个编译工具(虽然至今不太会用= .=),那Bazel应该就是一个用来编译源代码的工具。具体的原理以后深入了解了再说。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值