Если вы объединяете их все, вы упоминаете, что не хватает памяти - это лот нейронов.(По крайней мере, по моему опыту, несколько сотен нейронов было достаточно для игрушечных программ, которые мы написали в моих курсах по CS.)
Вы, вероятно, не хотите создавать 100 000 отдельных файлов для хранения 100 000 отдельных нейронов -и, конечно, не 1 000 000 файлов для хранения 1 000 000 нейронов.Затраты на ввод-вывод при поиске в каталоге, открытии файла, чтении, закрытии и небольших объемах ввода-вывода значительно повлияют на загрузку и сохранение с нетривиальным количеством нейронов.
Конечно, есливы думаете о 50 или 100 нейронах, тогда все пойдет быстро, несмотря ни на что, и, возможно, потребуется простейшая реализация.
Но если бы это было мое, я бы усердно пытался построить хорошееструктуры данных для нейронов: возможно, все ваши нейроны на данном уровне могут быть описаны целым числом для выбора типа нейрона и массивом целых или двойных чисел для описания характеристик для каждого нейрона, и список этих описаний уровней может быть легко написандля разделения файлов или одного файла, в зависимости от того, что проще.
Если ваши нейроны изменяют типы в пределах уровня или не полностью связаны между уровнями, вы можете найти некоторые скудные матрицы хранения дизайновполезно для большой структуры данных, которая может описать все нейроны одновременно.
Может быть, real вопрос должен звучать так: «Как мне улучшить хранение моих нейронов?»
Обновление
Я думаю, что даже 10 000 нейронов оправдывают создание «комбинированного» хранилищаформат.Я только что создал 10000 крошечных файлов, сбросил кэш для проверки холодного запуска, а затем перечитал каждый из них в отдельности.Чтение 10000 файлов заняло 14,6 секунды.Для считывания одного файла, содержащего те же данные, что и 10000 файлов, потребовалось всего 0,1 секунды.
Если ваша сеть раз в год запускается «холодно», возможно, это не будет иметь большого значения.Но если ваша сеть начинает холодать десяток раз в день, вы можете возмущаться более простым форматом хранения.