Julia ML:是否有推荐的数据格式用于将数据加载到 Flux、Knet、深度学习库

Julia ML: Is there a recommended data format for loading data to Flux, Knet, Deep Learning Libraries

我使用 Tensorflow 进行深度学习工作,但我对 Julia for ML 的一些功能很感兴趣。现在在 Tensorflow 中,协议缓冲区有一个明确的标准——这意味着 TFRecords 格式是将大量数据集加载到 GPU 以进行模型训练的最佳方式。我一直在阅读 Flux、KNET、文档以及其他论坛 post,看看是否有任何关于最有效数据格式的特别建议。但是我还没有找到。

我的问题是,Julia ML 库是否有推荐的数据格式以促进训练?换句话说,是否有任何明确的数据集格式是我应该避免的,因为性能不佳?

现在,我知道有一个 Protobuf.jl 库,因此用户仍然可以使用协议缓冲区。我打算暂时使用协议缓冲区,因为我可以为 Tensorflow 和 Julia 使用相同的数据格式。然而,我也发现了这个有趣的 Reddit post 关于用户如何不使用协议缓冲区而只是直接使用 Julia Vectors。

https://www.reddit.com/r/MachineLearning/comments/994dl7/d_hows_julia_language_mit_for_ml/

我知道 Julia ML 库可能与数据存储格式无关。这意味着无论数据以何种格式存储,数据都会被解码为某种向量或矩阵格式。所以在那种情况下我可以使用任何格式。但只是想确保我没有遗漏文档中的任何内容,或者由于使用错误的数据存储格式而导致的问题或性能低下。

对于in-memory,只需使用数组和向量。它们只是带有一些元数据的大的连续内存块。没有比这更好的了。

对于序列化到另一个 Julia 进程,Julia 会为您处理并使用 stdlib 序列化模块。

为了序列化到磁盘,你应该要么只使用 Serialization.serialize(可能是压缩的),要么,如果你认为你可能需要从另一个程序读取,或者你认为你会在你之前更改 Julia 版本完成数据后,您可以使用 BSON.jl 或 Feather.jl.

在不久的将来,JLSO.jl将是一个很好的替代Serialization的选择。