如何在EC2 Spark集群上训练深度神经网络(tensorflow)?

时间:2016-06-21 18:16:11

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

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

2 个答案:

答案 0 :(得分:1)

正如@Ramon评论的那样,带有张量流的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!']

答案 1 :(得分:1)

最近有一些开发可以重复使用Spark集群进行TensorFlow培训:

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

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