【问题标题】:How to train a deep neural network (tensorflow) on EC2 Spark cluster?如何在 EC2 Spark 集群上训练深度神经网络(张量流)?
【发布时间】:2016-06-21 18:16:11
【问题描述】:

我正在使用深度学习对包含 100 个类别的大型数据集进行图像识别。 (与 cifar-100 的大小相比)我现在正在没有 GPU 的单台机器上调整超参数。训练非常缓慢。我想知道是否有任何现有的方法可以在 EC2 Spark 集群上进行培训? 我知道有 SparkNet,但它似乎只支持 Caffe。

【问题讨论】:

  • 如果您打算使用 EC2 集群来“调整超参数”,那么为什么不直接在集群中广播 HP,并让每个学习应用程序以个性化的 HP 值运行呢?带有 for 循环和一些 ssh-ing 的批处理脚本应该可以解决问题...

标签: apache-spark amazon-ec2 tensorflow deep-learning


【解决方案1】:

正如@Ramon 所评论的,带有 tensorflow 的 spark 可用于通过广播参数进行超参数调整。 See this example from databricks

def map_fun(i):
  import tensorflow as tf
  with tf.Graph().as_default() as g:
    hello = tf.constant('Hello, TensorFlow!', name="hello_constant")
    with tf.Session() as sess:
      return sess.run(hello)

rdd = sc.parallelize(range(10))
rdd.map(map_fun).collect()

输出:

['Hello, TensorFlow!',
 'Hello, TensorFlow!',
 'Hello, TensorFlow!',
 'Hello, TensorFlow!',
 'Hello, TensorFlow!',
 'Hello, TensorFlow!',
 'Hello, TensorFlow!',
 'Hello, TensorFlow!',
 'Hello, TensorFlow!',
 'Hello, TensorFlow!']

【讨论】:

    【解决方案2】:

    最近有一些发展可以让您重用 Spark 集群来使用 TensorFlow 进行训练:

    • 雅虎!发布了TensorFlowOnSpark,它使用 Spark 为您管理分布式 TensorFlow 集群,并帮助解决数据摄取、启动和关闭等问题。

    • 如果您在 Mesos 集群上运行 Spark,您可以按照说明 here 在同一集群上运行 TensorFlow。

    【讨论】:

      猜你喜欢
      • 2020-02-27
      • 2017-10-12
      • 2017-03-20
      • 1970-01-01
      • 1970-01-01
      • 2018-06-11
      • 1970-01-01
      • 2014-02-06
      • 1970-01-01
      相关资源
      最近更新 更多