使用 keras 和 tensorflow 作为后端在 aws sagemaker 中配置 GPU
Configuring GPU in aws sagemaker with keras and tensorflow as backend
我是 aws sagemaker 的新手。
我正在尝试使用支持 GPU 的 keras 在 aws sagemaker 中设置模型。
docker 用于推断模型的基础图像如下
FROM tensorflow/tensorflow:1.10.0-gpu-py3
RUN apt-get update && apt-get install -y --no-install-recommends nginx curl
...
这是我用来检查 GPU 是否被 flask 中的 keras 识别的 keras 代码。
import keras
@app.route('/ping', methods=['GET'])
def ping():
keras.backend.tensorflow_backend._get_available_gpus()
return flask.Response(response='\n', status=200,mimetype='application/json')
当我使用 GPU 在 sagemaker 中启动笔记本实例时,keras 代码显示可用的 GPU。
因此,为了在推理阶段(模型)访问 GPU,我是否需要在 docker 文件中安装除 tensorflow GPU 基本图像之外的任何其他库?
提前致谢。
您应该不需要安装任何其他东西。 Keras 依赖于 TensorFlow 进行 GPU 检测和配置。
唯一值得注意的是训练时如何使用多个GPU。我建议将 'gpu_count' 作为超参数传递,并像这样设置:
from keras.utils import multi_gpu_model
model = Sequential()
model.add(...)
...
if gpu_count > 1:
model = multi_gpu_model(model, gpus=gpu_count)
model.compile(...)
我是 aws sagemaker 的新手。 我正在尝试使用支持 GPU 的 keras 在 aws sagemaker 中设置模型。 docker 用于推断模型的基础图像如下
FROM tensorflow/tensorflow:1.10.0-gpu-py3
RUN apt-get update && apt-get install -y --no-install-recommends nginx curl
...
这是我用来检查 GPU 是否被 flask 中的 keras 识别的 keras 代码。
import keras
@app.route('/ping', methods=['GET'])
def ping():
keras.backend.tensorflow_backend._get_available_gpus()
return flask.Response(response='\n', status=200,mimetype='application/json')
当我使用 GPU 在 sagemaker 中启动笔记本实例时,keras 代码显示可用的 GPU。 因此,为了在推理阶段(模型)访问 GPU,我是否需要在 docker 文件中安装除 tensorflow GPU 基本图像之外的任何其他库?
提前致谢。
您应该不需要安装任何其他东西。 Keras 依赖于 TensorFlow 进行 GPU 检测和配置。
唯一值得注意的是训练时如何使用多个GPU。我建议将 'gpu_count' 作为超参数传递,并像这样设置:
from keras.utils import multi_gpu_model
model = Sequential()
model.add(...)
...
if gpu_count > 1:
model = multi_gpu_model(model, gpus=gpu_count)
model.compile(...)