我正在尝试在Google Cloud ml引擎上使用Tensorflow训练模型。似乎tensorflow无法访问云计算机器上的libcupti文件,因为LD_LIBRARY_PATH没有指向正确的目录,如下面的日志条目暗示的那样:
lineno: 126
message: "Couldn't open CUDA library libcupti.so.8.0.
LD_LIBRARY_PATH: /usr/local/cuda/lib64"
levelname: "INFO"
pathname: "tensorflow/stream_executor/dso_loader.cc"
created: 1491143889.84344
据我所知,libcupti文件都在/usr/local/cuda/extras/CUPTI/lib64
,所以我需要将它附加到LD_LIBRARY_PATH变量,但是如何通过gcloud ml-engine jobs submit training $JOB_NAME
提交作业时这样做命令?或者可能有一个更简单的解决方案?
答案 0 :(得分:0)
我尝试在谷歌云上使用带有tensorflow的GPU,它对我有用。在我的代码中,我没有做任何GPU特定的设置(也没有用LD_LIBRARY_PATH设置任何东西)
我认为您可以尝试使用简单且标准的张量流代码,并在提交附加配置的作业后,作业应自动使用GPU为您进行计算。
尝试使用以下内容在模块中添加cloudml-gpu.yaml
等文件:
trainingInput:
scaleTier: CUSTOM
# standard_gpu provides 1 GPU. Change to complex_model_m_gpu for 4
GPUs
masterType: standard_gpu
runtimeVersion: "1.0"
然后添加一个名为--config=trainer/cloudml-gpu.yaml
的选项(假设您的训练模块位于名为trainer
的文件夹中)。例如:
export BUCKET_NAME=tf-learn-simple-sentiment
export JOB_NAME="example_5_train_$(date +%Y%m%d_%H%M%S)"
export JOB_DIR=gs://$BUCKET_NAME/$JOB_NAME
export REGION=europe-west1
gcloud ml-engine jobs submit training $JOB_NAME \
--job-dir gs://$BUCKET_NAME/$JOB_NAME \
--runtime-version 1.0 \
--module-name trainer.example5-keras \
--package-path ./trainer \
--region $REGION \
--config=trainer/cloudml-gpu.yaml \
-- \
--train-file gs://tf-learn-simple-sentiment/sentiment_set.pickle