0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

分布式文件系统的必要性,Python在分布式文件系统中的支持情况

zhKF_jqr_AI 来源:未知 作者:李倩 2018-10-21 09:11 次阅读

当你用大量高质量训练数据训练深度学习模型时,可能会刷新多个领域的模型最佳预测表现(例如图像分类、语音识别和机器翻译)。作为训练数据、日志、模型服务、检查点的存储中心,分布式文件系统正变得越来越重要。HopsFS就是不错的选择,它可以本地支持数据科学主流的Python框架,例如Pandas、TensorFlow/Keras、PySpark和Arrow

数据集尺寸增加,预测性能增加

百度研究院曾经提出,可以根据训练数据的数量,判断深度学习模型预测的精确度是否能提高(或者能否生成更少的错误)。根据下方的对数坐标图可以看出,随着训练数据的尺寸增加,生成的错误不断减少,呈幂律分布。这一结果来源于对多领域不同的机器学习模型的研究,包括机器翻译、语言建模、图像分类、语音识别。假设这一结果在多个应用领域都通用,那么有可能在你的研究领域也成立。对正在考虑大规模投资深度学习的公司来说,这一结果非常重要。假设生成或收集1GB的新训练数据需要花费X美元,你就能预测它能为模型精确度提高多少。

来源:百度研究院research.baidu.com/deep-learning-scaling-predictable-empirically/

可预测的投资回报率

这里通过收集或生成更多训练数据而得到的可预测投资回报率(ROI)比上面的概念稍复杂。首先,你需要收集到足够多的数据,如下图所示,使数据量超过“Small Data Region”,在幂律区域中,才能用足够的数据做出预测。

你可以根据你模型生成的错误数量变化绘制出函数图像,并联系起训练数据的多少制定出对数坐标。通过观察你模型的直线变化,计算你的幂律图形中的指数(图形的斜率)。百度的实证结果表明,在它们绘制的学习曲线上,指数的范围在-0.35到-0.07之间,说明模型在学习真实世界数据时比理论上要慢(理论上模型的理想幂律指数为-0.5)。

并且,如果你观察了幂律区域,当训练数据集的尺寸增加时,模型预测的生成错误会减少。例如,如果你在为一辆自动驾驶汽车训练图像分类器,那么小车自动形式的时间决定了训练数据的尺寸。所以,自动驾驶的时间越长,图像分类器出错的机会就越少,并且是可以预测的。这对商业领域来说,能够通过数据增加判断精确度增加,是非常重要的一点。

分布式文件系统的必要性

TensorFlow团队在2018年TensorFlow开发者峰会上表示,一个分布式文件系统对深度学习来说是必需的。数据集越来越大,GPU不仅仅要实现存储,还需要协调模型检查点、超参数优化和模型架构搜索。你的系统可能需要多个服务器,所以,一个分布式文件系统可以将你的机器学习流程中的不同阶段融合起来,可以让团队成员共享GPU硬件和数据。重要的是,分布式文件系统能根据你的编程语言和深度学习框架工作。

管理日志、TensorBoard、协调GPU、存储检查点等都需要分布式文件系统

前面我们说到,HopsFS是一种不错的选择,它是HDFS的替代。HopsFS/HDFS都支持主流的Python框架,例如Pandas、PySpark数据框架、TensorFlow数据等等。在Hopsworks中,我们提供嵌入式的HopsFS/HDFS支持,以及pydoop库。HopsFS有一个针对机器学习工作负载的特征,即对小型文件,它改善了吞吐量,并将降低了读取/书写的延迟。我们在Middleware 2018上有一篇经过同行审议的论文,证明了和之前的HDFS处理小文件相比,HopsFS的吞吐量提高了66倍。

Python在分布式文件系统中的支持情况

下表体现出不同分布式文件系统所支持的框架:

HopsFS中Python的支持情况

下面我们介绍几个用Python代码在HopsFS中使用数据集的例子,完整Notebook地址:github.com/logicalclocks/hops-examples/tree/master/tensorflow/notebooks

Pandas

import hops.hdfs as hdfs

cols = [“Age”, “Occupation”, “Sex”, …, “Country”]

h = hdfs.get_fs()

with h.open_file(hdfs.project_path()+“/TestJob/data/census/adult.data”, “r”) as f:

train_data=pd.read_csv(f, names=cols, sep=r’s*,s*’,engine=‘python’,na_values=“?”)

用Pandas时,和本地文件系统相比,我们唯一要改变代码的地方就是将openfile(..)改成h.openfile(..),其中h是HDFS/HopsFS中文档处理的指令。

PySpark

from mmlspark importImageTransformer

IMAGE_PATH=“/Projects/myProj/Resources/imgs”

images = spark.readImages(IMAGE_PATH, recursive = True, sampleRatio = 0.1).cache()

tr = (ImageTransformer().setOutputCol(“transformed”)

.resize(height = 200, width = 200)

.crop(0, 0, height = 180, width = 180) )

smallImgs = tr.transform(images).select(“transformed”)

smallImgs.write.save(“/Projects/myProj/Resources/small_imgs”, format=“parquet”)

TensorFlow数据集

def input_fn(batch_sz):

files = tf.data.Dataset.list_files(IMAGE_PATH)

def tfrecord_dataset(f):

return tf.data.TFRecordDataset(f, num_parallel_reads=32, buffer_size=8*1024*1024)

dataset = files.apply(tf.data.parallel_interleave(tfrecord_dataset,cycle_length=32))

dataset = dataset.prefetch(4)

return dataset

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程语言
    +关注

    关注

    9

    文章

    1878

    浏览量

    33073
  • 图像分类
    +关注

    关注

    0

    文章

    87

    浏览量

    11838
  • 深度学习
    +关注

    关注

    73

    文章

    5237

    浏览量

    119905

原文标题:面向深度学习的分布式文件系统

文章出处:【微信号:jqr_AI,微信公众号:论智】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    分布式软件系统

    降到最低。负载各处理机之间分担,可以避免临界瓶颈。 4、当现有机构已存在几个数据库系统,而且实现全局应用的必要性增加时,就可以由这些数据库自下而上构成
    发表于 07-22 14:53

    分布式文件系统和fastDFS

    项目(1)(分布式文件系统、fastDFS,代码实现fastDFS 文件上传和下载)
    发表于 05-10 08:51

    分布式系统的优势是什么?

    当讨论分布式系统时,我们面临许多以下这些形容词所描述的 同类型: 分布式的、删络的、并行的、并发的和分散的。分布式处理是一个相对较新的领域,所以还没有‘致的定义。与顺序计算相比、并行的
    发表于 03-31 09:01

    HarmonyOS分布式数据库,为啥这么牛?

    带来的新的体验。 WPS 的文档共享的场景,文档大小、路径等属性信息存储到了分布式数据库,源文件存储到了分布
    发表于 11-19 15:38

    一文解读在RTThread平台上使用DFS分布式文件系统

    电路板,MCU用的STM32F407VET6  DFS分布式文件系统框架如下:  主要特点:  支持多种类型的存储设备。  支持多种类型的文件系统
    发表于 09-15 16:57

    HarmonyOS分布式文件系统开发指导

    (ohos.file.fs)。 ■ 如果文件本地,则堆叠访问本地文件系统。 ■ 如果文件在其他设备,则同步网络访问远端设备文件。 说明 s
    发表于 11-14 17:14

    采用信任管理的分布式文件系统TrustFs

    在传统的分布式文件系统中用户无法判断文件的可信任性,针对此问题提出采用信任管理的分布式文件系统TrustFs,使用数字签名对
    发表于 04-02 08:57 19次下载

    海量邮件分布式文件系统的设计与实现

    本文通过归纳分析已有的分布式系统体系结构,研究并设计了一个针对于海量邮件存储的分布式文件系统。受Google File System 架构的启发,针对单个元数据服务器带来的瓶颈问
    发表于 01-09 13:56 12次下载

    基于分布式文件系统元数据操作优化

    随着网络应用的迅速发展,网络时代数据规模越来越大,海量数据存储和大规模并发的I/O成为了分布式系统中的瓶颈。单机环境下的文件系统已经不能满足当前网络时代的大容量、高可靠性、高性能、高扩展性等需求
    发表于 02-24 13:46 0次下载
    基于<b class='flag-5'>分布式</b><b class='flag-5'>文件系统</b>元数据操作优化

    盘点一下这些常见的分布式文件系统

    Alluxio是第一个基于内存的分布式文件系统,因此其相应速度也会超出普通的分布式文件系统很多,例如HDFS就比它慢数百倍。并且Alluxio和Spark也有良好的交互。最重要的是Al
    的头像 发表于 08-15 16:25 1.1w次阅读
    盘点一下这些常见的<b class='flag-5'>分布式</b><b class='flag-5'>文件系统</b>

    AFS,GFS ,QKFile主流分布式存储文件系统

    主流的3种分布式存储文件系统 存储架构分两种,一种是传统存储阵列架构,另一种就是本文将要重点介绍的分布式存储架构
    发表于 08-02 11:04 3118次阅读

    分布式文件系统主从式的伸缩性架构设计

    Hadoop当中负责分布式存储的HDFS,被定义为分布式文件系统,对于进入到平台当中的数据,提供高效的、可容错、可扩展的数据存储,这得益于分布式文件
    发表于 01-05 10:42 1118次阅读
    <b class='flag-5'>分布式</b><b class='flag-5'>文件系统</b>主从式的伸缩性架构设计

    什么是分布式文件系统

    我们无时无刻不在使用文件系统,进行开发时在使用文件系统,浏览网页时在使用文件系统,玩手机时也在使用文件系统
    的头像 发表于 03-10 16:21 3657次阅读

    分布式文件系统的设计框架

    因为HDFS系统分布式文件系统)可由数百或数千个存储文件数据片段的服务器组成,即HDFS系统包含较多的硬件设备,所以HDFS
    的头像 发表于 03-20 11:37 790次阅读

    分布式文件系统的设计原理是什么?

    什么是分布式文件系统分布式文件系统(DFS)是一种计算机文件系统,使用户能够从多个分布式位置存
    的头像 发表于 10-17 17:35 410次阅读