Github 项目推荐 | 在 Spark 上实现 TensorFlow 的库 —— Sparkflow

2018 年 4 月 18 日 AI研习社 AI 研习君

该库是 TensorFlow 在 Spark 上的实现,旨在 Spark 上使用 TensorFlow 提供一个简单的、易于理解的接口。借助 SparkFlow,开发者可以轻松地将深度学习模型与 ML Spark Pipeline 相集成。SparkFlow 使用参数服务器以分布式方式训练 Tensorflow 网络,通过 API,用户可以指定训练风格,无论是 Hogwild 还是异步锁定。

  为什么要使用 SparkFlow

虽然有很多的库都能在 Apache Spark 上实现 TensorFlow,但 SparkFlow 的目标是使用 ML Pipelines,为训练 Tensorflow 图提供一个简单的界面,并为快速开发提供基本抽象。关于训练,SparkFlow 使用一个参数服务器,它位于驱动程序上并允许异步培训。此工具在训练大数据时提供更快的训练时间。

Github:

https://github.com/lifeomic/sparkflow

  安装

通过 pip 安装:pip install sparkflow

安装需求:Apache Spark 版本 >= 2.0,同时安装好 TensorFlow

  示例

简单的 MNIST 深度学习例子:

from sparkflow.graph_utils import build_graph
from sparkflow.tensorflow_async import SparkAsyncDL
import tensorflow as tf
from pyspark.ml.feature import VectorAssembler, OneHotEncoder
from pyspark.ml.pipeline import Pipeline
   
#simple tensorflow network
def small_model():
   x = tf.placeholder(tf.float32, shape=[None, 784], name='x')
   y = tf.placeholder(tf.float32, shape=[None, 10], name='y')
   layer1 = tf.layers.dense(x, 256, activation=tf.nn.relu)
   layer2 = tf.layers.dense(layer1, 256, activation=tf.nn.relu)
   out = tf.layers.dense(layer2, 10)
   z = tf.argmax(out, 1, name='out')
   loss = tf.losses.softmax_cross_entropy(y, out)
   return loss
   
df = spark.read.option("inferSchema", "true").csv('mnist_train.csv')
mg = build_graph(small_model)
#Assemble and one hot encode
va = VectorAssembler(inputCols=df.columns[1:785], outputCol='features')
encoded = OneHotEncoder(inputCol='_c0', outputCol='labels', dropLast=False)

spark_model = SparkAsyncDL(
   inputCol='features',
   tensorflowGraph=mg,
   tfInput='x:0',
   tfLabel='y:0',
   tfOutput='out:0',
   tfLearningRate=.001,
   iters=1,
   predictionCol='predicted',
   labelCol='labels',
   verbose=1
)

p = Pipeline(stages=[va, encoded, spark_model]).fit(df)
p.write().overwrite().save("location")

4 月 AI 求职季

8 大明星企业

10 场分享盛宴

20 小时独门秘籍

4.10-4.19,我们准时相约!



新人福利



关注 AI 研习社(okweiwu),回复  1  领取

【超过 1000G 神经网络 / AI / 大数据资料】



最经典的 SVM 算法在 Spark 上实现,这里有一份详尽的开发教程(含代码)

登录查看更多
0

相关内容

Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
专知会员服务
137+阅读 · 2020年5月19日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
68+阅读 · 2020年1月17日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
94+阅读 · 2019年12月4日
TensorFlow 2.0 学习资源汇总
专知会员服务
66+阅读 · 2019年10月9日
社区分享 | Spark 玩转 TensorFlow 2.0
TensorFlow
15+阅读 · 2020年3月18日
TensorFlow实现深度学习算法的教程汇集:代码+笔记
数据挖掘入门与实战
8+阅读 · 2017年12月10日
tensorflow项目学习路径
北京思腾合力科技有限公司
10+阅读 · 2017年11月23日
Spark机器学习:矩阵及推荐算法
LibRec智能推荐
15+阅读 · 2017年8月3日
深度学习实战(二)——基于Keras 的深度学习
乐享数据DataScientists
15+阅读 · 2017年7月13日
TensorFlow学习笔记2:构建CNN模型
黑龙江大学自然语言处理实验室
3+阅读 · 2016年6月14日
Teacher-Student Training for Robust Tacotron-based TTS
Arxiv
26+阅读 · 2017年12月6日
VIP会员
相关VIP内容
相关资讯
社区分享 | Spark 玩转 TensorFlow 2.0
TensorFlow
15+阅读 · 2020年3月18日
TensorFlow实现深度学习算法的教程汇集:代码+笔记
数据挖掘入门与实战
8+阅读 · 2017年12月10日
tensorflow项目学习路径
北京思腾合力科技有限公司
10+阅读 · 2017年11月23日
Spark机器学习:矩阵及推荐算法
LibRec智能推荐
15+阅读 · 2017年8月3日
深度学习实战(二)——基于Keras 的深度学习
乐享数据DataScientists
15+阅读 · 2017年7月13日
TensorFlow学习笔记2:构建CNN模型
黑龙江大学自然语言处理实验室
3+阅读 · 2016年6月14日
Top
微信扫码咨询专知VIP会员