Я пытаюсь прочитать некоторые данные в файле JSON, чтобы использовать его из lua. Данные представляют собой звуковые файлы, которые были предварительно обработаны на питоне и сохранены в JSON для облегчения доступа.Прочитать большой файл JSON в Lua
Файл примерно 800Mb. Когда я пытаюсь прочитать прочитанный весь файл с file:read("*all")
, я возвращаю ответ not enough memory
. Библиотеки, на которые я смотрел, - lua-json, lua-cjson и luajson. Первые два не предоставляют способ прямого доступа к файлам, третий - только оболочку, которая вызывает f:read()
.
Моя конечная цель - использовать torch для обучения некоторых моделей некоторым аудиоданным, но я хочу сохранить обработку необработанных сигналов в python. Я выбрал JSON над другими форматами для удобства, поэтому, если вы считаете, что есть формат, который будет работать лучше, я открыт для идей.
Почему не удается сохранить все данные в памяти? Я имею в виду, это всего лишь 1 ГБ; Вы действительно правы, когда говорите, что JSON - не лучший формат. Я думаю о том, чтобы двигаться в направлении [capnp] (https://capnproto.org/) или [protobuf] (https://developers.google.com/protocol-buffers/). –
факел использует LuaJIT, который может использовать только 1Gb для значений Lua. Существует привязка к библиотеке yajl. Никогда не пробуйте это самостоятельно. – moteus