很多小伙伴都想学习tensorflow,但是苦于其安装过于复杂,再加上国内网络“你懂的”原因又会遇到不能下载google模型和数据集的尴尬,就难上加难了,严重影响了学习的进展。
我就向各位先进介绍以下在树莓派5上实现的过程:

什么是docker?

Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护。Docker 项目后来还加入了 Linux 基金会,并成立推动 开放容器联盟(OCI)。
Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。

树莓派5上安装docker

在终端输入:

sudo su
#把之前安装的删除一下
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do apt-get remove $pkg; done
#安装依赖项
apt-get update
apt-get install ca-certificates curl gnupg
#信任 Docker 的 GPG 公钥并添加仓库:
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/raspbian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/raspbian \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  tee /etc/apt/sources.list.d/docker.list > /dev/null
#安装吧
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

配置国内加速环境

本实例使用的是国内源加速:

sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
    	"https://docker.1ms.run",
        "https://doublezonline.cloud"
    ]
}
EOF

重启以下docker

sudo systemctl daemon-reload && sudo systemctl restart docker

魔法过后就能查询docker hub和下载镜像了

1,查询镜像

docker search docker.1ms.run/jupyter/tensorflow-notebook

2,拉取镜像

docker pull docker.1ms.run/jupyter/tensorflow-notebook

3,查看一下本地镜像

docker images

4,运行镜像

docker run --name tensorflow-notebook -p 8000:8888  docker.1ms.run/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学习笔记呦!

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐