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

kri*_*nab 5 machine-learning julia flux.jl

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

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

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

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

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

cmc*_*cmc 1

对于内存中的使用,只需使用数组和向量。它们只是带有一些元数据的大的连续内存块。你真的找不到比这更好的了。

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

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

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