Tensorflow学习笔记(一)环境配置

目标:完成tensorflow的环境配置
写在前面:第一次构建神经网络,本来想用Tensorflow的……但是Windows上使用Tensorflow需要用Docker,然后在使用过程中挂载磁盘一直报错(mount:permission denied)……
使用Docker安装Tensorflow的教程我使用的是在Windows上玩TensorFlow(一)——安装Docker
因为在国内下载tensorflow一直有问题,所以我在这个博客找了打包好的文件,然后导入就可以了。


数据集

使用的数据集是MNIST的数据集,也是Tensorflow的入门教程里提到的,下载地址在THE MNIST DATABASE of handwritten digits
注意:
1.数据集中的图片格式不是常见的格式,需要自己编写程序读取;
2.数据集的数据如果是以包围盒中心而不是以聚集中心进行分类的话,会提高错误率;
3.SD-3的数据来自工作人员,SD-1的数据来自高中生,SD-3的数据会更干净一些,所以SD-3的数据更容易识别,但是实验需要把这些数据混合(下载的数据已经将这些都弄好了)


Docker

因为是windows系统……很多软件只能在Linux的平台上用,然而装个Linux什么的又实在虐心,所以Docker就是一个很好的选择。

什么是Docker

Docker的内核是LXC,Linux Container 容器,是一个轻量级的虚拟化技术。它的概念与虚拟机差不多,就是将各种程序打包放在合适的平台上运行,但是不同点是:它不包含操作系统内核
普通的虚拟机:将需要运行的程序放在完整的操作系统中,虚拟操作系统运行在虚硬件平台上
Docker:是LXC的一种高级封装,Docker的操作下,容器直接运行在宿主操作系统上,每个容器之间互不干扰。

Docker引擎

Docker的引擎分为三个部分,从底至上分别是:
1.Server:Docker的Server是一个一直运行的虚拟进程,可以实现容器、镜像的创建和管理。
2.REST API:与虚拟进程的通信接口
3.Commend Line Interface: 命令行接口,交互入口

Docker架构

Docker是CS架构,用户通过客户端来操作内核。
Docker Image:【构成组件】Docker镜像是一个只读的模版,所以同一个Docker的Ubuntu系统可以用来创建多个容器,而所有的容器中的操作都不会影响这个镜像。要实现这一点,就需要将用户的所有操作都控制在同一层,这一层就叫做Docker Container
Docker Container:【运行组件】这个就像一个文件夹,包含了所有项目需要的文件,各个Container之间互不影响。
Docker Registries:【分布组件】用来存储各种镜像文件,网上有各种Docker镜像,可以下载。

Docker 运行

一个容器包含了操作系统、用户文件、元数据。每次创建一个容器就会在只读镜像上创建一个读写层。

$ docker run -i -t ubuntu /bin/bash

运行一个Docker容器,Docker引擎会……
1.检查镜像,如ubuntu,如果存在,就根据这个镜像创建一个容器
2.创建文件系统和一个读写层
3.分配网络/桥接口
4.找一个IP
5.运行程序
6.输出运行结果

Docker Engine & Docker Machine

一般大家说Docker 都是指Docker Engine,然而!我安装的其实是Docker Machine!
在Linux系统上,直接用Docker Engine就可以了,如果要同时控制多个Docker 主机,或者分布式架构的话,就需要Docker Machine了。
Docker Machine的命令都是docker-machine 开头的,Docker Engine的命令是docker开头的。

使用Docker Machine

根据上一篇博客内容,创建的ron-docker 的docker machine之后,安装好了tensorflow。
1. 启动ron-machine
2. 输入 docker-machine env ron-docker

Init...
ron-docker is shutdown.
Starting "ron-docker"...
(ron-docker) Check network to re-create if needed...
(ron-docker) Waiting for an IP...
Machine "ron-docker" was started.
Waiting for SSH to be available...
Detecting the provisioner...
Started machines may have new IP addresses. You may need to re-run the `docker-machine env` command.
Configuring Environment...
Init Finished.
root@ca56af647b49:/# docker-machine env ron-docker
bash: docker-machine: command not found//已经进入ron-docker 所以不能使用docker-machine的命令了
root@ca56af647b49:/# uname -a //查看ron-docker的信息
Linux ca56af647b49 4.4.17-boot2docker #1 SMP Mon Aug 15 17:12:38 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
  1. 端口转发
    在VirtualBox完成了端口转发(8080)之后,
    docker run -it -p 8080:8080 b.gcr.io/tensorflow/tensorflow
    然后在cmd中docker-machine ip ron-docker查看ron-docker的ip 192.168.99.100
    http://192.168.99.100:8080/ 进入这个页面却发现“拒绝连接请求”ERR_CONNECTION_REFUSED
    然后发现是因为容器里没有运行 run_jupyter.sh 文件,网上的教程里会说这个程序是自动运行的,而实际上没有,所以要单独运行才能在宿主机器的浏览器中看到这个网页。
  2. 挂载磁盘
    一开始我在docker-machine里挂载磁盘的时候使用mount命令都会提示permission denied的提示,后来发现是因为权限问题?不过为了解决4,5两个问题的方法就是通过
docker run -it -p 8888:8888 -v /home/project/data:/data b.gcr.io/tensorflow/tensorflow bash

这个命令打开docker machine就可以了。
到现在开始——tensorflow的环境就配置好了。接下来就是tensorflow的学习啦~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值