5

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

我的问题是,是否有推荐的 Julia ML 库数据格式以方便培训?换句话说,由于性能不佳,我应该避免使用任何明确的数据集格式吗?

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

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

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

4

1 回答 1

1

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

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

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

在不久的将来,JLSO.jl 将是替代序列化的不错选择。

于 2019-07-18T01:55:07.700 回答