写点什么

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:007079
用户头像

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

关注

评论

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

Kyligence 入选 Gartner 指标中台创新洞察报告

Kyligence

指标管理 指标中台 数据分析管理

从0到1项目搭建-框架搭建(附源码)

微枫Micromaple

架构 springboot Druid Mybatis-Plus 9月月更

一张图读懂「融云一站式全生态出海解决方案」

融云 RongCloud

白皮书 社交网络

我的C/C++技术成长之路

Fire_Shield

程序人生 C/C++ 9月月更

面试突击85:为什么事务@Transactional会失效?

Java快了!

多标签用户画像分析跑得快的关键在哪里?

跳楼梯企鹅

kubectl 插件推荐: kubectl-watch

云原生技术社区

k8s 插件 kubectl kubectl插件 kubectl-watch

日均数亿推送稳定性监控实践

得物技术

Java 设计模式 重构 SLA 企业号九月金秋榜

异步处理 —— RxJS Observable

掘金安东尼

前端 9月月更

leetcode 105. Construct Binary Tree from Preorder and Inorder Traversal 从前序与中序遍历序列构造二叉树(中等)

okokabcd

LeetCode 算法与数据结构

百度交易中台之资产系统架构浅析

百度Geek说

数据库 架构 资产管理

总结了一些vue相关的题目,话说今年前端面试难度好大

bb_xiaxia1998

Vue 前端

SQL就业市场最吃香!解密为什么SQL历经半个世纪仍经久不衰?

雨果

sql

英伟达NVIDIA为何可以在高性能计算GPU中处于不败地位?

GPU算力

开发者有话说|从心出发

胖虎不秃头

个人成长

微信小程序开发|宿主环境详解

陈橘又青

9月月更

前端面试5家公司,被经常问到的vue面试题

bb_xiaxia1998

Vue 前端

【IT运维】如何有效保障服务器账号密码安全?

行云管家

运维 IT运维 行云管家 账号安全

CISO 需考虑的五项 Kubernetes 安全措施

SEAL安全

Kubernetes 软件供应链安全

MySQL DDL执行方式-Online DDL介绍

京东科技开发者

MySQL 数据库 ddl DML Online DDL

从 OLAP 到指标中台 SaaS,关键指标赋能业务管理

Kyligence

OLAP Kyligence 数据管理 指标中台

物联网平台简介——产品功能类

阿里云AIoT

大数据 安全 物联网平台 物联网 IoT

Docker 的快速入门

Docker 9月月更

物联网平台功能介绍——产品功能类

阿里云AIoT

大数据 物联网平台 物联网 IoT 设备管理

以Vue为代表的提升小程序开发效率框架及工具

Geek_99967b

小程序

VoneBaaS平台让区块链服务触手可得

旺链科技

区块链 产业区块链 VoneBaaS 企业号九月金秋榜

【等保小知识】等级保护单项测评包括哪些项目?

行云管家

等保 等级保护 等级测评

IM跨平台技术学习(二):Electron初体验(快速开始、跨进程通信、打包、踩坑等)

JackJiang

即时通讯IM

MobTech 短信验证 Flutter插件

MobTech袤博科技

flutter ios android

技术分享| 快对讲融合视频监控功能设计

anyRTC开发者

监控 音视频 调度 快对讲 GB28181

Wiki在企业内部的应用和管理,如何构建有效的Wiki系统?

Baklib

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