python - 在 TensorFlow Docker 映像中使用 Keras?
问题描述
我有一个使用 Keras 构建的情绪分类器,我想使用我的 GPU 运行它。正如Tensorflows GPU 支持页面所推荐的那样,我已经安装了 Docker 并下载了一个 Tensorflow Docker 映像。
现在,当我尝试在其中一个 Tensorflow 图像上运行我的代码时,我在尝试导入 Keras 或 Pandas 等内容时收到错误代码。
当谈到 Docker 时,我有点新手,但据我了解,这些图像根本没有安装这些库。那么,如果我想使用除 Tensorflow 之外的其他内容或图像上安装的任何其他内容,我该怎么办?如何将这些添加到图像中?
解决方案
选项 1:将包添加到容器中:
docker exec <container_name> pip install ...
缺点是每次重新创建容器时都必须重复此操作。
选项 2:创建自己的图像,使用 tensorflow 图像作为基础
创建一个名为Dockerfile
:
FROM tensorflow/tensorflow:latest-gpu-jupyter # change if necessary
RUN pip install ...
# Visit https://docs.docker.com/engine/reference/builder/ for format reference
然后从中构建一个图像:
cd /directory/with/the/Dockerfile
docker build -t my-tf-image .
然后使用您自己的图像运行:
docker run --gpus all -d -v /some/data:/data my-tf-image
我还建议在开发环境中使用docker-compose,这样您就不必记住所有这些命令。您可以使用 YAML 格式创建docker-compose.yml
和描述容器。然后你可以docker-compose build
构建和docker-compose up
运行。
推荐阅读
- python - 使用 graphics.py 和键盘,如何根据键盘输入使字符移动?
- flutter - 是否可以在一个小部件中使用两次 SharedPreferences?
- dataframe - 按类型从 pyspark 数据框中删除行
- c# - 服务器端 Blazor Autorize 属性不起作用
- java - 已解决 - 从 Java Spring 写入 Angular 9 套接字 - 被 CORS 策略阻止
- node.js - axios 多部分表单数据
- swift - 如何通过设置 UILabel 左上角的位置在 Swift 中定位 UILabel?
- javascript - 将给定单词的索引查找到短语中
- java - 为什么错误处理程序不处理我的错误?
- ruby - 有没有办法向 Thor 类添加钩子以便在所有命令之前/之后运行代码?