Джулия М.Л .: Есть ли рекомендуемый формат данных для загрузки данных в библиотеки Flux, Knet, Deep Learning - PullRequest
0 голосов
/ 28 декабря 2018

Я использую Tensorflow для глубокой учебной работы, но меня интересовали некоторые особенности Julia для ML.Теперь в Tensorflow существует четкий стандарт, согласно которому протоколные буферы - это означает, что формат TFRecords - лучший способ загрузки значительных наборов данных в графические процессоры для обучения модели.Я читал 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, скорее всего, не зависят от формата хранения данных.Это означает, что независимо от того, в каком формате хранятся данные, данные все равно декодируются в какой-либо векторный или матричный формат.Так что в этом случае я могу использовать любой формат.Но просто хотел убедиться, что я ничего не пропустил в документации или что-то подобное о проблемах или низкой производительности из-за использования неправильного формата хранения данных.

1 Ответ

0 голосов
/ 18 июля 2019

Для использования в памяти просто используйте массивы и векторы.Это просто большие смежные кусочки памяти с некоторыми метаданными.Вы не можете получить что-то лучше, чем это.

Для сериализации в другой процесс Julia Джулия будет обрабатывать это для вас и использовать модуль сериализации stdlib.

Для сериализации на диск вы должны либоПросто используйте Serialization.serialize (возможно, сжатый) или, если вы считаете, что вам может потребоваться чтение из другой программы, или если вы думаете, что хотите изменить версию Julia, прежде чем закончите работу с данными, вы можете использовать BSON.jl или Feather.jl.

В ближайшее время JLSO.jl станет хорошим вариантом для замены сериализации.

...