1

我正在尝试在 Google Cloud 机器学习引擎上使用 Tensorflow 训练模型。由于 LD_LIBRARY_PATH 未指向正确的目录,tensorflow 似乎无法访问云计算机上的 libcupti 文件,如下面的日志条目所示:

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 文件都在 中,所以我需要将它附加到 LD_LIBRARY_PATH 变量中,但是通过命令/usr/local/cuda/extras/CUPTI/lib64提交作业时我该怎么做呢?gcloud ml-engine jobs submit training $JOB_NAME或者也许有更简单的解决方案?

4

1 回答 1

0

我尝试在谷歌云上使用 GPU 和 tensorflow,它对我有用。在我的代码中,我没有进行任何 GPU 特定设置(也没有使用 LD_LIBRARY_PATH 设置任何内容)

我认为您可以尝试使用简单且标准的 tensorflow 代码,并在提交作业时附加配置,然后该作业应自动使用 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
于 2017-04-06T09:31:52.507 回答