毕业论文
您现在的位置: 版本控制 >> 版本控制市场 >> 正文 >> 正文

领英开源了一个小组件用于简化Tensor

来源:版本控制 时间:2025/1/19
白癜风医院哪家最好 https://m.39.net/pf/bdfyy/xwdt/

Spark-TFRecord支持在ApacheSpark中处理TensorFlow的TFRecord结构。

TensorFlow和ApacheSpark的互操作是现实世界机器学习场景中的共同挑战。TensorFlow可以说是市场上的深度学习框架,而ApacheSpark仍然是最广泛采用的数据计算平台之一,在大型企业和初创企业中都有大量安装。公司自然会尝试将两者结合起来。甚至存在使TensorFlow适应Spark的框架,但互操作性挑战的根源通常植根于数据等级。TFRecord是TensorFlow中的本机数据结构,ApacheSpark不完全支持。最近,LinkedIn的工程师开源了Spark-TFRecord,Spark是基于TensorFlowTFRecord的新本机数据源。

互联网巨头长期以来一直是Spark技术的广泛采用者,并且是TensorFlow和机器学习开源社区的积极贡献者。在内部,LinkedIn的工程团队经常尝试在TensorFlow的本机TFRecord格式和Spark的内部格式(例如Avro或Parquet)之间实现转换。Spark-TFRecord项目的目标是在Spark管道中提供TFRecord结构的本机功能。

初步尝试

该是由Spark的创建者Databricks推广的Spark-Tensorflow-Connector。该卷轴中的Spark-TFRecord不是第一个尝试解决Spark和TensorFlow之间的数据互操作性挑战的项目。使用Spark-TensorFlow-Connector并获得了不同程度的成功。从结构上来说,连接器是TFRecord格式到SparkSQLDataFrames中的一种改编。知道这一点,Spark-TensorFlow-Connector在关系数据访问方案中非常有效地工作,但在其他用例中仍然非常有限,这不足为奇。

如果您考虑一下,TensorFlow工作流程的重要部分与磁盘I/O操作有关,而不是与数据库访问有关。在这些情况下,开发人员最终在使用Spark-TensorFlow-Connector时编写的代码。版本,Spark-TensorFlow-Connector仍然是其他重要功能,例如,TensorFlow计算中经常使用的PartitionBy。最后,连接器更像是处理SparkSQL数据帧中的TensorFlow记录而不是本机文件格式的主轴。

考虑到这些限制,LinkedInIn工程团队决定从略有不同的角度解决Spark-TensorFlow互操作性挑战。

Spark-TFRecord

具体来说,Spark-TFRecord提供了用于从ApacheSpark读写TFREcord数据的例程。无需使用处理TFRecord结构的连接器,或者将Spark-TFRecord代替。这意味着所有Spark的DataSet和DataFrameI/O例程都可以在Spark-TFRecord中自动使用。

一个值得探讨的明显问题是:为什么要建立一个新的数据结构,而不是简单地对开源Spark-TensorFlow连接器进行版本控制?好吧,看来使连接器适应磁盘I/O需要需要进行根本的重新设计。

LinkedIn工程团队决定不采用这种方法,或者决定实施一个新的SparkFileFormat接口,该接口从根本上引导支持磁盘I/O操作。新接口将使TFRecord本机操作适应任何SparkDataFrame。从结构上讲,Spark-TFRecord由多个基本的内置模块组成,这些构建模块抽象化读取/写入和序列化/反序列化例程:

·模式前端器:这是最靠近Spark-TensorFlow-Connector的组件。此接口将TFRecords表示形式映射到本机Spark数据类型。

TFRecord阅读器:此组件读取TFRecord结构与其传递给解串器。TFRecordWriter:此组件从序列化程序接收TFRecord结构插入其写入磁盘。TFRecord序列化器:此组件将SparkInternalRow转换为TFRecord结构。TFRecordDeserializer:此组件将TFRecords转换为SparkInternalRow结构。

使用LinkedIn的Spark-TFRecord与其他Spark本机数据集没有什么不同。开发人员只需要包括spark-tfrecordjar库,并使用传统的DataFrameAPI读取和写入TFRecords,如以下代码所示:

importorg.apache.

转载请注明:http://www.0431gb208.com/sjszlff/8567.html