如何使用云ML来预测csv文件而不是json?

时间:2017-07-21 17:31:34

标签: python tensorflow google-cloud-ml google-cloud-ml-engine

还有人可以列出在Gcloud上训练和部署张量流模型的详细步骤吗? 我有自己的代码,我不想改变。似乎代码必须采用某种严格的格式才能在Gcloud上使用,例如task.py文件等。

2 个答案:

答案 0 :(得分:0)

让我看看我是否可以帮助你 - 这可能需要后续问题(这是受欢迎的)超出这个高级答案。

首先是文档 - 希望您看到https://cloud.google.com/ml-engine/docs/how-tos/training-steps链接到与此相关的各种主题。

让我试着总结一下你想要记住的一些关键事项。

  1. 在非常高的层次上,您需要创建一个接受一组命令行参数的python程序,因此界面非常通用。您不需要命名task.py。

  2. 您确实需要打包python代码以及声明依赖项,以便在您的作业在云上运行时安装它们。 (见https://cloud.google.com/ml-engine/docs/how-tos/packaging-trainer

  3. 对于分布式培训,您需要使用TF_CONFIG环境变量来实例化可以与作业中的其他工作人员协调的TensorFlow服务器。见https://cloud.google.com/ml-engine/docs/concepts/trainer-considerations

  4. 使用gcloud工具提交作业时,您需要指定群集配置。

  5. 在云端,您需要阅读培训数据并从云存储中读取检查点,摘要和结果模型,而不是本地磁盘(这是瞬态的)。 TensorFlow在其文件I / O API中支持GCS。请参阅https://cloud.google.com/ml-engine/docs/how-tos/working-with-data

  6. 最后,当您使用ML Engine生成用于部署/预测的模型时(如果需要),请确保使用SavedModel API - https://cloud.google.com/ml-engine/docs/how-tos/deploying-models

  7. 希望这有助于您全面了解。

    另一件有用的事情就是理解你所拥有的代码 - 它是基于低级TensorFlow API吗?还是基于Estimators?后者简化了许多方面(尤其是分布式培训)。

答案 1 :(得分:0)

我刚刚在2周前第一次亲自完成了这个过程。我建议使用这个tutorial(由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'