也有人可以列出在 Gcloud 上训练和部署 tensorflow 模型的详细步骤吗?我有自己不想更改的代码。似乎代码必须采用某种严格的格式才能在 Gcloud 上使用,例如 task.py 文件等。
2 回答
让我看看我是否可以帮助您——这可能需要超出此高级答案的后续问题(欢迎提出)。
首先是文档 - 希望您已经看到https://cloud.google.com/ml-engine/docs/how-tos/training-steps链接到此处相关的各种主题。
让我尝试总结一些您要记住的关键事项。
在非常高的层次上,您需要编写一个接受一组命令行参数的 python 程序,因此接口相当通用。您不需要将事物命名为 task.py。
您确实需要打包您的 python 代码并声明依赖项,以便在您的作业在云上运行时安装它们。(见https://cloud.google.com/ml-engine/docs/how-tos/packaging-trainer)
在分布式训练的情况下,您需要使用 TF_CONFIG 环境变量来实例化一个 TensorFlow 服务器,该服务器可以与您工作中的其他工作人员进行协调。请参阅此https://cloud.google.com/ml-engine/docs/concepts/trainer-considerations
当您使用 gcloud 工具提交作业时,您需要指定集群配置。
在云中,您需要读取训练数据并将检查点、摘要和生成的模型从/写入云存储,而不是本地磁盘(这是暂时的)。TensorFlow 在其文件 I/O API 中支持 GCS。请参阅https://cloud.google.com/ml-engine/docs/how-tos/working-with-data
最后,当您使用 ML Engine 生成用于部署/预测的模型时(如果需要),请确保使用 SavedModel API - https://cloud.google.com/ml-engine/docs/how-tos/部署模型
希望这有助于为您提供广泛的概述。
另一件有帮助的事情是理解你拥有的代码——它是基于低级 TensorFlow API 的吗?还是基于估算器?后者简化了许多方面(尤其是分布式训练)。
两周前,我自己第一次经历了这个过程。我推荐的是使用本教程(由 Google 的好心人创建)。
我不记得遇到任何大问题,但如果您遇到任何障碍,请告诉我,我可能会帮助您。
要在上述链接教程的示例中将预测输入从 json 更改为 csv,您会注意到给定的默认值是“JSON”,但可以将其更改为“CSV”(source):
parser.add_argument(
'--export-format',
help='The input format of the exported SavedModel binary',
choices=['JSON', 'CSV', 'EXAMPLE'],
default='JSON'
)
这意味着您可以指定--export-format 'CSV'
何时创建模型。例如:
python trainer/task.py \
--train-files ~/Documents/data/adult.data.csv \
--eval-files ~/Documents/data/adult.test.csv \
--job-dir ~/Documents/models/census/v1 \
--train-steps 100 \
--verbosity 'DEBUG' \
--export-format 'CSV'