【发布时间】:2020-05-25 05:14:16
【问题描述】:
我在 ml.p2.xlarge 实例上使用自定义 Docker 容器与 SageMaker 一起使用。
基础镜像是tiangolo/python-machine-learning:cuda9.1-python3.7,它通常带有所需的CUDA工具包。 python 包通过 conda 安装,使用以下极简主义environment.yaml:
dependencies:
- boto3
- joblib
- keras
- numpy
- pandas
- scikit-learn
- scipy
- tensorflow=2.0
但是,当我为小型 lenet5 CNN 运行训练作业时,我在日志中看不到任何 GPU 活动(并且训练持续时间与在非 GPU 实例上一样长)。
更令人担忧的是,len(tf.config.experimental.list_physical_devices('GPU') 返回0,而K.tensorflow_backend._get_available_gpus() 为空。最后,如果我在如下基本操作中检查设备放置(使用tf.debugging.set_log_device_placement(True)):
a = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
b = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
c = tf.matmul(a, b)
print(c)
我明白了
Executing op _MklMatMul in device /job:localhost/replica:0/task:0/device:CPU:0
确认操作已在 CPU 上进行。
起初我以为我的用例太轻而无法触发 GPU 使用,但似乎根本没有检测到 GPU!我是否缺少此工作所需的任何步骤或组件?
【问题讨论】:
标签: keras gpu amazon-sagemaker