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

企业邮箱_深圳香港服务器_折扣

小七 141 0

在apachespark2.4中引入内置图像数据源

介绍随着用于图像分类和对象检测的深度学习框架的最新进展,apachespark对标准图像处理的需求从未像现在这样大。图像处理和预处理有其特定的挑战-例如,图像有不同的格式(如jpeg、png等)、大小和颜色方案,并且没有简单的方法来测试正确性(无声失败)。图像数据源通过提供标准表示来解决其中的许多问题,您可以根据标准表示进行编码,并从特定图像表示的细节中抽象出来。ApacheSpark2.3提供了ImageSchema.readImagesAPI(请参阅Microsoft在ApacheSpark中的后期图像数据支持),它最初是在MMLSpark库中开发的。在ApacheSpark2.4中,它更易于使用,因为它现在是一个内置的数据源。使用图像数据源,您可以从目录中加载图像,并获得具有单个图像列的数据帧。这篇博文描述了什么是图像数据源,并演示了它在Databricks统一分析平台上的深度学习管道中的使用。图像导入让我们看看如何通过图像数据源将图像读入Spark。在PySpark中,可以按如下方式导入图像:图像_df=spark.read.format("image")。加载("/path/to/images")Scala、Java和R也有类似的api。对于图像数据源,可以导入嵌套目录结构(例如,使用/path/to/dir/**)之类的路径。对于更具体的映像,可以通过指定带有分区目录的路径(即/path/to/dir/date=2018-01-02/category=automobile)来使用分区发现。映像架构图像作为数据帧加载,其中有一个名为"image"的列。它是一个结构类型列,具有以下字段:image:包含所有图像数据的结构||——origin:表示源URI的字符串||——高度:整数,图像高度以像素为单位||——宽度:整数,图像宽度以像素为单位||——n通道:整数,颜色通道数||——模式:整数,OpenCV类型||——数据:二进制,实际图像虽然大多数字段都是不言而喻的,但有些字段值得解释:通道:颜色通道的数量。对于灰度图像,典型值为1,对于彩色图像(例如,RGB)为3,对于带有alpha通道的彩色图像,典型值为4。Mode:提供有关如何解释数据字段的信息的整数标志。它指定数据类型和存储数据的通道顺序。字段的值应映射到下面显示的OpenCV类型之一(但不是强制的)。OpenCV类型定义为1、2、3或4个通道,并为像素值定义了几种数据类型。OpenCV中类型到数字的映射(数据类型x通道数):数据:以二进制格式存储的图像数据。图像数据表示为三维数组,其维形状(高度、宽度、n通道)和由模式字段指定的t类型数组值。数组按行的主要顺序存储。频道顺序通道顺序指定颜色存储的顺序。例如,如果您有一个典型的带有红色、蓝色和绿色组件的三通道图像,则有六种可能的顺序。大多数库使用RGB或BGR。三(四)个通道OpenCV类型应按BGR(A)顺序排列。代码示例深度学习管道提供了一种简单的方法来开始使用ML来使用图像。从0.4版开始,深度学习管道使用上面描述的图像模式作为其图像格式,取代了在深度学习管道项目中定义的以前的图像模式格式。在这个Python示例中,我们使用传递学习来构建一个自定义图像分类器:#图像源目录的路径sample_img_dir=。。。#使用新的图像方案读取图像数据图像_df=spark.read.format("图像")。加载(sample\u img\u dir)#Databricks显示包括内置的图像显示支持显示器(图像)#分割训练和测试数据集列车_df,test_df=图像_随机分割([0.6,0.4])#对InceptionV3生成的特征进行逻辑回归训练:featureizer=deepimagefeatureizer(inputCol="image",outputCol="features",modelName="InceptionV3")#建立logistic回归变换lr=逻辑回归(maxIter=20,regParam=0.05,elasticNetParam=0.3,labelCol="label")#建立ML管道p=管道(阶段=[特征化器,lr])#建立我们的模型p_模型=p.fit(列车_df)#对测试数据集运行我们的模型测试的_df=p_模型.转换(测试_-df)#评估我们的模型evaluator=多类分类evaluator(metricName="Accurance")打印("测试集精度="+str(评估器。评估(已测试_数据框选择("预测","标签"))注意:对于深度学习管道开发人员,新的图像模式将颜色通道的顺序从RGB更改为BGR。为了减少混淆,一些内部api现在要求您显式地指定顺序。下一步是什么如果您可以通过df.样品,但采样未优化。为了改善这一点,我们需要将采样操作符下推到图像数据源,这样它就不需要读取每个图像文件。此功能将来将添加到DataSource V2中。在apachespark和Databricks的未来版本中计划有新的图像特性,所以请继续关注更新。您也可以尝试Databricks Runtime 5.0 ML中的deep learning示例笔记本。阅读更多有关图像数据源的进一步阅读,以及如何使用:阅读我们关于Azure和AWS的图像数据源的文档。试试Databricks Runtime 5.0 ML上的示例笔记本。了解深度学习管道。访问GitHub上的深度学习管道。致谢感谢丹尼·李、斯蒂芬妮·博多夫和朱尔斯·S·达姆吉的贡献。免费试用Databricks。今天就开始吧