很多小伙伴都想学习tensorflow,但是苦于其安装过于复杂,再加上国内网络“你懂的”原因又会遇到不能下载google模型和数据集的尴尬,就难上加难了,严重影响了学习的进展。
我就向各位先进介绍以下在树莓派5上实现的过程:
什么是docker?
Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护。Docker 项目后来还加入了 Linux 基金会,并成立推动 开放容器联盟(OCI)。
Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。
树莓派5上安装docker
在终端输入:
curl -sSL https://get.docker.com | sh
sudo usermod -aG docker pi
配置国内加速环境
本实例使用的是腾讯云,两个方法只能二选一:
第一种:
sudo nano /usr/lib/systemd/system/docker.service
#ExecStart句做如下修改,原句注释掉
ExecStart=/usr/bin/dockerd --registry-mirror=https://mirror.ccs.tencentyun.com
第二种:
sudo nano /etc/default/docker
#原句已经注释,在其下添加
DOCKER_OPTS="--registry-mirror=https://mirror.ccs.tencentyun.com"
重启以下docker
sudo systemctl daemon-reload
sudo systemctl restart docker
#或者
sudo service docker restart
魔法过后就能查询docker hub和下载镜像了
1,查询镜像
docker search jupyter/tensorflow-notebook
2,拉取镜像
docker pull jupyter/tensorflow-notebook
3,查看一下本地镜像
docker images
4,运行镜像
docker run --name tensorflow-notebook -p 8000:8888 jupyter/tensorflow-notebook
5,树莓派互联网打开firefox浏览器在地址栏输入127.0.0.1:8888,然后填入token。
开始练习tensorflow
1,新建一个.ipynb文件,查看一下tensorflow的版本
2,可以迅捷的下载google的模型和训练集
3,跑一下经典的手写数字训练
训练二十遍,看看树莓派5的优异性能。
docker中使用容器
1,查询所有的容器:
pi@raspberrypi:~ $ docker ps -a
#显示
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f949b38376d5 jupyter/tensorflow-notebook "tini -g -- start-no? About an hour ago Up About an hour (healthy) 0.0.0.0:8888->8888/tcp, :::8888->8888/tcp elastic_poincare
2,停止运行的容器
注意上面查询的CONTAINER ID就是运行的容器。
docker stop f949b38376d5
3,再次启动容器
docker start f949b38376d5
4,删除运行的容器
docker rm -f f949b38376d5
5,将文件传递到容器中,文件已经放到了共享文件夹里面。此处不能加sudo,否则后期删除不掉。
docker cp /home/pi/shared/beginner.ipynb f949b38376d5:/home/jovyan/work/
删除此文件
docker exec -it f949b38376d5 rm -rf /home/jovyan/work/beginner.ipynb
卸载docker
sudo apt autoremove docker-ce
sudo apt autoremove docker-ce-cli
我们今天从一个示例出发简单介绍了docker 镜像和容器,大家先体会一下她的运行机制。希望对小伙伴的机器学习计划有促进作用,更期待您能够分享tensorflow的jupyter-notebook学习笔记呦!