云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

美国服务器_速度与激情8百度云_评分榜

小七 141 0

使深度学习变得简单的愿景

在数据库上试试这个笔记本当MapReduce在15年前推出时,它向世界展示了对未来的一瞥。硅谷科技公司的工程师们第一次可以分析整个互联网。然而,MapReduce提供了难以使用的低级api,因此,这个"超级能力"是一种奢侈品——只有一小部分拥有大量资源的高度复杂的工程师能够负担得起使用它。今天,深度学习已经达到了它的"MapReduce"点:它展示了它的潜力;它是人工智能的"超级力量"。它的成就在几年前是无法想象的:自动驾驶汽车和AlphaGo将被视为奇迹。然而,今天利用深度学习的超能力和昨天的大数据一样具有挑战性:深度学习框架由于低层次的API而具有陡峭的学习曲线;在分布式硬件上扩展需要大量的人工工作;即使结合了时间和资源,要想获得成功,也需要繁琐的操作和试验参数。深度学习通常被称为"魔法"七年前,我们一群人启动了Spark项目,其唯一目标是"民主化"大数据的"超级力量",通过提供高级API和统一引擎来进行机器学习、ETL、流和交互式SQL。今天,apachespark使得从软件工程师到SQL分析师的每个人都可以访问大数据。我们的目标是让每个人都能从一个新的开放学习资源库中轻松地融入到一个新的学习流程中去。深度学习管道基于apachespark的ML管道进行培训,并使用Spark数据帧和SQL来部署模型。它包括用于深度学习的常见方面的高级API,因此只需几行代码就可以高效地完成这些工作:图像加载在Spark-ML管道中应用预训练模型作为变压器迁移学习分布式超参数整定在数据帧和SQL中部署模型在本文的其余部分,我们将用示例详细描述这些特性。要在Databricks上尝试这些和进一步的示例,请查看Databricks上的notebook深度学习管道。图像加载在图像上应用深度学习的第一步是加载图像的能力。深度学习管道包括实用功能,可以将数百万图像加载到一个数据帧中,并以分布式方式自动解码,从而实现大规模操作。df=图像IO.readImages("/data/myimages")我们还致力于增加对更多数据类型的支持,比如文本和时间序列。应用预训练模型进行可伸缩预测深度学习管道支持使用Spark以分布式方式运行预先训练的模型,可用于批处理和流式数据处理。它包含了一些最流行的模型,使用户能够开始使用深度学习,而无需花费昂贵的步骤来训练模型。例如,下面的代码使用用于图像分类的最先进的卷积神经网络(CNN)模型InceptionV3创建一个火花预测管道,并预测我们刚刚加载的图像中有哪些对象。当然,这一预测与Spark带来的所有好处同时进行:从sparkdl导入readImages,DeepImagePredictorpredictor=DeepImagePredictor(inputCol="image",outputCol="预测的标签",modelName="InceptionV3")预测值_df=预测变换测向(df)除了使用内置模型,用户还可以在火花预测管道中插入Keras模型和张量流图。这将单节点工具上的任何单节点模型转换为可以以分布式方式应用于大量数据的模型。在Databricks的统一分析平台上,如果您选择基于GPU的群集,计算密集型部件将自动在GPU上运行以获得最佳效率。迁移学习当预先训练的模型适合手头的任务时,它们是非常有用的,但是它们通常没有针对用户正在处理的特定数据集进行优化。举个例子,InceptionV3是一个针对1000个类别的图像分类进行优化的模型,但是我们的领域可能是狗种分类。在深度学习中,一种常用的技术是转移学习,它将训练模型用于与手头的任务相似的任务。与从头开始训练新模式相比,迁移学习需要的数据和资源要少得多。这就是为什么迁移学习已经成为许多现实世界用例(如癌症检测)的首选方法。深度学习管道通过特征化器的概念实现快速转移学习。下面的例子结合了InceptionV3模型和Spark中的logistic回归,使InceptionV3适应我们的特定领域。deepimagefeatureizer自动剥离预训练神经网络的最后一层,并将所有前一层的输出作为logistic回归算法的特征。由于logistic回归是一种简单而快速的算法,这种转移学习训练可以使用比训练一个从头开始的深度学习模型通常需要的图像少得多的图像来快速收敛。从sparkdl导入deepimagefeatureizer从pyspark.ml.分类导入逻辑回归Featureizer=DeepImageFeatureizer(modelName="InceptionV3")lr=逻辑回归()p=管道(阶段=[特征化器,lr])#火车图片图片。。。#加载图像和标签的数据集模型=p.fit(列车图像)分布式超参数整定要想在深度学习中获得最佳效果,需要对训练参数进行不同的实验,这是一个重要的步骤,称为超参数调整。由于深度学习管道使深度学习培训成为Spark机器学习管道中的一个步骤,用户可以依赖Spark中已经内置的超参数调整基础设施。以下代码插入Keras估计器,并使用带交叉验证的网格搜索执行超参数调整:myEstimator=KerasImageFileEstimator(inputCol='input',outputCol='output',modelFile='/my_models/model.h5',imageLoader=_loadProcessKeras)KerAsPams1={"批次大小":10,时代:10}KerAsPams2={‘批次大小’:5,20纪元}我的参数映射=ParamGridBuilder()\.添加网格(髓鞘刺激剂,[KerasPams1,KerAsPams2])\.build()cv=交叉验证器(myEstimator、myEvaluator、myParamMaps)cvModel=等速配合()kerasTransformer=卡拉斯坦斯cvModel.bestModel公司#KerasTransformer类型在SQL中部署模型一旦数据科学家构建了所需的模型,深度学习管道使得在SQL中将其作为函数公开变得很简单,这样组织中的任何人都可以使用它——数据工程师、数据科学家、业务分析师、任何人。sparkdl.registerKerasUDF("img_classify","/mymodels/dogmodel.h5")接下来,组织中的任何用户都可以在SQL中应用预测:从图像中选择图像,图像分类(图像)标签其中包含(标签"吉娃娃")在所有支持的语言(Python、Scala、Java、R)的DataFrame编程API中也提供了类似的功能。与可伸缩预测类似,此功能在批处理流和结构化流媒体中都有效。结论在这篇博文中,我们介绍了深度学习管道,这是一个新的库,它使深度学习更易于使用和扩展。虽然这仅仅是一个开始,但我们相信深度学习管道有潜力实现Spark对大数据所做的事情:让深度学习的"超级力量"对每个人都是平易近人的。本系列的后续文章将更详细地介绍库中的各种工具:按比例进行图像处理、传输学习、按比例预测,以及在SQL中提供深度学习。要了解关于这个库的更多信息,请查看Databricks笔记本以及github存储库。我们鼓励您给我们反馈。或者更好的是,做一个贡献者,帮助把可伸缩的深度学习的力量带给每个人。免费试用Databricks。今天就开始吧