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



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

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

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

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

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

最新更新