首页 文章

使用自定义估算器api包含的tensorflow代码在google cloud-ml引擎或本地机器中有效使用gpu吗?

提问于
浏览
0

我正在谷歌 Cloud ml引擎培训神经网络 . 我使用张量流高级api Build 了网络,如 tf.layerstf.lossestf.dataset . 代码也包含在使用自定义估算器api中 . 这项工作运行了很长时间 . 网络是如此巨大,它应该使用大量的gpu,但在它显示的ml-engine的作业详细信息页面中,它不使用master cpu以及gpu . 虽然主cpu和gpu中的一些内存正在被使用 . 我使用了"complex_model_s"作为主cpu,"standard-gpu"作为worker,以及"standard"类型的参数服务器 . 因为它已经开始训练,所以它也没有输出任何更新的日志或检查点 . 为什么ml-engine没有使用gpu,也没有输出任何新的日志和检查点文件?如果我使用本地机器与NVIDIA gpu进行培训,它会使用gpu吗?或者代码中是否需要进行任何更改?

1 回答

  • 1

    估算器的train_and_evaluate目前支持的分布策略最适合稀疏模型 . 听起来你有一个非常深的模型 .

    因此,为了最大限度地提高培训速度,请尝试使用一台机器(即没有 Worker ) . 要最大限度地降低成本,请使用适合您网络规模的最小机器 .

    如果您愿意尝试,请尝试使用具有多个设备的工作人员并添加镜像分发策略(尽管它仍然是非常早期的原型)

    https://www.tensorflow.org/versions/master/api_docs/python/tf/contrib/distribute

    如果您的用例支持它,最佳选择是使用TPU,以获得最大速度和最低成本 .

相关问题