Google Cloud:如何在 Cloud Datalab 中使用 Cloud ML

Google Cloud: How to use Cloud ML in Cloud Datalab

我正在 Google Cloud Datalab 中使用 keras 和 tensorflow 训练模型。我想 运行 Cloud ML 中的训练作业。是否可以使用 %% bash [...] 命令执行此操作?

假设我的模型看起来像这样:

X = tf.placeholder(tf.float32, shape=[None, num_inputs])
hidden = fully_connected(X, num_hidden, activation_fn=None)
outputs = fully_connected(hidden, num_outputs, activation_fn=None)
loss = tf.reduce_mean(tf.square(outputs - X))
optimizer = tf.train.AdamOptimizer(learning_rate)
train  = optimizer.minimize( loss)
init = tf.global_variables_initializer()

num_steps = 3000
    with tf.Session() as sess:
    sess.run(init)

    for iteration in range(num_steps):
        sess.run(train,feed_dict={X: scaled_data})

如何在云 ML 作业中训练它?

您可以通过以下步骤:

  1. 组织您的代码 (https://cloud.google.com/ml-engine/docs/tensorflow/packaging-trainer),使其看起来像: ./ ./setup.py 。/火车/ ./初始化.py ./task.py

    此处 setup.py 包含您的依赖项。 task.py 是您的培训师的 python 模块,因此您的代码应该移到那里。这里还有一个 CloudML 示例:https://github.com/GoogleCloudPlatform/cloudml-samples/tree/master/iris/trainer

    在Datalab或Jupyter中,有一个%%file命令可以将文件保存到本地磁盘。这是创建和编辑 py 文件的一种方法。

  2. 运行 "gcloud ml-engine jobs submit training" 命令提交培训请求。例如:

    gcloud ml-engine 作业提交训练 my-job-id --runtime-version=1.6 --module-name trainer.task --job-dir=gs: //mybucket/mydir --region us-central1 -- --param1 value1 --param2 value2