AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

Databricks 整合 Spark 和 TensorFlow 用于深度学习模型

  • 2016-03-14
  • 本文字数:1368 字

    阅读完需:约 4 分钟

结合去年年底谷歌宣布开源其机器学习开源库 TensorFlow,以及之前 InfoQ 报道的内容来看,数据科学界已经迎来了尝试将 TensorFlow 应用到自己的项目里的机会。

Databricks 公司的 Tim Hunter 通过 Spark 演示了使用 TensorFlow 生成模型选项和一定规模的神经网络处理。Hunter 在描述人工神经网络的时候,将之形容成一个在人脑的视觉皮层里模拟神经元一样,这样的模拟在经过大量充分训练之后,可以被用于处理复杂的输入数据,如图像或音频等等。

Hunter 详细讲述了他是如何把 TensorFlow 运行在各种 Spark 配置上来平衡对超参数的调整的。Hunter 说,目前 TensorFlow 支持 Python 和 C++ 这两种语言,帮助了“自动创建可用于各种形状和尺寸的神经网络的训练算法”,此训练算法是为了训练一个神经网络,用这个受训的神经网络来处理更大规模的数据,同时还能保证处理结果的高精度和最佳运行时性能。

Hunter 提到的一些超参数其实指的是各层神经元数据和学习率,这些数据都是从用于神经网络的训练算法本身分离出来的。

如何更好的调整超参数,让已经给定的算法对运行时间和模型精度产生最佳的影响。超参数的设置是经过相互比对的,目的是把在每一层神经元和错误测试数据里产生的变量关联起来,找到这之间的关系。

学习率是相当关键的点:如果学习率太低,神经网络是不会学习任何东西的。如果学习率太高,只能说明训练过程中可能出现了随机振荡,使得某些配置发生了偏离。

神经网络典型权衡曲线:

  • 学习率非常关键,太低学不到东西(高测试误差),太高则训练过程可能随机振荡导致某些配置偏离。
  • 神经元的数目对性能没那么重要,大量神经元的网络对学习率更敏感。

Databricks 建立了一项实验来测量基于 Spark 的 TensorFlow 神经网络训练算法对精度和运行时间性能的影响程度有多大。实验包括一个默认的超参数组,多个超参数的排列,一个测试数据集,一个单一节点,双节点和 13 节点的 Spark 集群。为了找出最优超参数设置,Hunter 使用 Spark 来分布式处理 TensorFlow 生成集,目的是并行测试模型的有效性。对于使用 Spark,Hunter 这样说:

为了传播数据和模型描述等常规元素,然后用容错的方式在一个机器集群里调度个别重复计算。

Hunter 指出,通过和 Spark 集成,在模型精确度和运行时间方面都有所改进:

尽管我们使用的神经网络框架本身只在单节点的时候起作用,但是我们可以使用 Spark 来分配超参数和模型部署。

选择分布式算法大大减少了训练时间,在超参数设置上将精度提高了 34% 以上,这也帮助 Databricks 更好地理解各种超参数的敏感性。它加快了模型验证速度,并证实了这种做法是单节点模型验证速度的七倍。一旦选择最佳的拟合模型和神经网络进行训练,神经网络就会被部署到 Spark 大数据集上运行。

Databricks 并没有谈到具体的硬件实现,但是一些迹象可以从为了这个实验而制作的基于 iPython notebook,以及 Databricks 为客户创建的集群选项里都可以看出来。测量模型选择和神经网络调整能力是通过采用像 Spark 和 TensorFlow 这样的工具而获得的,这可能是对数据科学和机器学习社区的一种恩惠,由于日益普及的云计算和大范围的并行资源在一定程度上帮助工程师们更好的选择实现方式。更多内容可以看看 Tim Hunter 之前写的博客《 Deep Learning with Spark and TensorFlow 》。

参考英文原文: Databricks Integrates Spark and TensorFlow for Deep Learning

2016-03-14 19:006958
用户头像

发布了 25 篇内容, 共 78648 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

模块二作业:微信朋友圈复杂度分析

愚人夜行者

Qt|QListWidget实现自定义Item效果

中国好公民st

c++ qt 10月月更

Vue是怎样监听数组的变化的?

bb_xiaxia1998

Vue

美团前端vue面试题(边面边更)

bb_xiaxia1998

Vue

微信朋友圈的高性能复杂度分析

Louis

跟着卷卷龙一起学Camera--延迟01

卷卷龙

ISP camera 10月月更

跟着卷卷龙一起学Camera--延迟02

卷卷龙

ISP camera 10月月更

TLS加密远程连接Docker

程序员欣宸

Docker 容器安全 10月月更

Docker Swarm从部署到基本操作

程序员欣宸

Docker Docker Swarm 10月月更

CorelDRAW 2019 软件应用项目(三)

张立梵

设计师 CorelDRAW 2022 10月月更

Java编程之方法重写

魏铁锤

后端 java 编程 10月月更

Java核心之多态

魏铁锤

java 编程 10月月更

华为云从入门到实战 | 云关系数据库备份、恢复及存储容灾服务

TiAmo

华为 华为云 云开发 10月月更

深入理解 Go 语言的一等函数及其应用

宇宙之一粟

函数 Go 语言 10月月更 匿名函数

80%的前端开发都答不上来的js异步面试题

loveX001

JavaScript

腾讯前端高频面试题合集

loveX001

JavaScript

React-Hooks怎样封装防抖和节流-面试真题

beifeng1996

React

大数据ELK(二十八):制作Dashboard

Lansonli

10月月更

架构实战训练营模块 2 作业

Geek_b35d92

架构实战训练营模块 2 作业

atcgnu

架构实战训练营模块 2 作业

Geek_b35d92

$nextTick的原理是什么-vue面试进阶

bb_xiaxia1998

Vue

渲染农场是什么_云渲染农场优缺点有哪些?

Renderbus瑞云渲染农场

云渲染 云渲染农场 渲染农场 Renderbus瑞云渲染

跟着卷卷龙一起学Camera--延迟03

卷卷龙

ISP camera 10月月更

微信朋友圈的高性能复杂度分析

乖乖IvyShine

java之字节型文件流笔记

魏铁锤

java 编程 10月月更

React-hooks面试考察知识点汇总

beifeng1996

React

挑战30天学完Python:Day5 数据类型 - 列表list

MegaQi

Python 挑战30天学完Python 10月月更

22道js输出顺序问题,你能做出几道

loveX001

JavaScript

一天梳理React面试高频知识点

beifeng1996

React

面试官:深度不够,建议回去深挖

小傅哥

Java 程序员 面试 小傅哥 招聘

Databricks整合Spark和TensorFlow用于深度学习模型_Google_Dylan Raithel_InfoQ精选文章