一、说明
使用深度学习前,我认为最好先提一下如何正确设置一个包含我们想要的大多数库的环境。当你进入数据科学的竞争领域时,大多数人都会遇到Kaggle。
Kaggle 为用户提供预装数据科学工具的云计算机。我们还将使用预装的环境来加速我们的数据科学工作流程,并避免正确设置环境的负担,而不会出现任何兼容性或依赖性问题。
我们将使用 Docker 容器来存储我们的环境。Kaggle 免费向其用户提供其当前和过去的 Docker 容器。在这篇文章中,我将介绍如何为AMD64和Apple Silicon / ARM64机器设置这些容器。
二、首先安装Docker🐬
首先,您需要安装 Docker 来运行其容器。您可以按照适合您的链接进行操作。您还应该小心设置 Docker 的超级用户权限,以便顺利初始化容器。
AMD64 例程
- 具有 NVIDIA GPU 的机器:
您需要安装 NVIDIA-Docker 才能正确设置具有 GPU 支持的环境。为此,您可以按照 NVIDIA 的设置例程进行操作,其中还包括设置 Docker:
https ://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html
我不会把整个流程放在这里,因为它可能会因为一些主要版本的更改而更新并发生巨大变化,但您应该非常乐意通过此链接进行安装,因为它非常简单和干净。
- 没有 NVIDIA GPU 的机器:
在这种情况下,只需安装基础 Docker 即可。您可以轻松按照以下链接中的步骤操作:
https://docs.docker.com/desktop/install/linux-install/
- Apple Silicon / ARM64 例程
最新 Apple Silicon 硬件的 GPU 支持仍处于测试阶段,可能会导致 Dockerized 环境出现一些问题。因此,我们将遵循 Kaggle 环境的 CPU 版本。
您可以轻松地按照以下链接为 macOS 机器设置 Docker Desktop:
https://docs.docker.com/desktop/install/mac-install/
您可能希望继续使用“带有 Apple 芯片的 Mac”选项。
三、获取 Dockerized Kaggle 环境
由于您已经安装了 Docker,您可以将容器拉到本地机器。
熟悉 Docker 的用户可以通过以下链接探索旧版本的容器:
GPU: https ://console.cloud.google.com/gcr/images/kaggle-gpu-images/GLOBAL/python
CPU: https ://console.cloud.google.com/gcr/images/kaggle-images/GLOBAL/python
新用户可以继续关注以下内容。
配备 NVIDIA GPU 的AMD64 常规机器:
您只需运行下面的代码即可在您的机器上获取最新的 Kaggle-GPU 容器:
docker pull gcr.io/kaggle-gpu-images/python:latest
没有 NVIDIA GPU 的机器:
如果您的机器没有 NVIDIA GPU,您可以拉取 CPU 版本:
docker pull gcr.io/kaggle-images/python:staging
Apple Silicon / ARM64 例程
您应该运行以下行来获取最新的 CPU 兼容容器:
docker pull gcr.io/kaggle-images/python:staging
四、设置快捷方式
我们已经下载了我们的环境,并且可以开始使用它了。但我们也可以定义一些快捷方式来加速我们的使用。我们将定义一个快捷方式,按顺序启动我们的 dockerized 环境和 jupyter 服务器。那会很好,对吧?
为此,我们应该为系统终端定义一个函数。你可以使用简单的文本编辑器或终端编辑器(如vim、nano等)编辑我将提到的rc文件……
AMD64 例程
您应该将以下几行添加到您的~/.bashrc:
配备 NVIDIA GPU 的机器:
kjupyter() {
docker run -v $PWD:/tmp/working -w=/tmp/working -p 8888:8888 --gpus all --rm -it gcr.io/kaggle-gpu-images/python:latest jupyter notebook --no-browser --ip="0.0.0.0" --notebook-dir=/tmp/working --allow-root
}
没有 NVIDIA GPU 的机器:
kjupyter() {
docker run -v $PWD:/tmp/working -w=/tmp/working -p 8888:8888 --rm -it gcr.io/kaggle-images/python:staging jupyter notebook --no-browser --ip="0.0.0.0" --notebook-dir=/tmp/working --allow-root
}
Apple Silicon / ARM64 例程
默认情况下,你的机器会启用zsh作为默认 bash。如果是这样,你应该将以下几行添加到你的~/.zshrc中:
kjupyter() {
docker run -v $PWD:/tmp/working -w=/tmp/working -p 8888:8888 --rm -it gcr.io/kaggle-images/python:staging jupyter notebook --no-browser --ip="0.0.0.0" --notebook-dir=/tmp/working --allow-root
}
如果您的默认终端是bash,则应将该行添加到您的~/.bashrc。
五、开始使用
我们设置了环境,创建了快捷方式。最后,我们可以开始行动了。
如果你完成了上述步骤,你需要重新打开终端以启用你所做的kjupyter定义。然后只需在终端中写入:
kjupyter
瞧!这将启动您的 dockerized 环境,然后启动 jupyter 服务器并为您提供访问该服务器的链接。您只需复制以127.0.0.1开头的链接并将其粘贴到您的浏览器中,即可立即开始处理您的项目。
六、结论
您可以在任何项目中使用此工作流程!它在参加 Kaggle 比赛时特别有用,因为它可以在您的本地机器上完全重现结果。祝你好运!