BitNeBolt
@BitNeBolt

Как с этим разобраться?

Только недавно начал заниматься нейросетями. В целях обучения хочу написать её с нуля, без фреймфорков. Но не понимаю следующие моменты: Результат обучения должен куда-то записываться(не быть же ему в оперативке), но какой тип данных и вид записи должен быть у этого файла? А как потом обращаться к этим результатам(не пробегом же по всему файлу каждый раз, если там больше 3000 строк)? И как должна вести себя сеть, если ввелись данные, которых не было при обучении?
  • Вопрос задан
  • 66 просмотров
Решения вопроса 2
origami1024
@origami1024
went out for a night walk
но какой тип данных и вид записи должен быть у этого файла

Нужно записать/загрузить только значения весов между нейронами - результат обучения.
Ну и сам код твоей программы содержит все глобальные параметры сети: как располагаются и ведут себя нейроны, сколько их и тп.

А как потом обращаться к этим результатам(не пробегом же по всему файлу каждый раз, если там больше 3000 строк)

Все весы и другие параметры должны находиться в оперативке, и читаться и перезаписываться каждую итерацию обучения.
Вот, например, репликация обученной Alexnet (прорывная модель сети из 2012),
https://github.com/BVLC/caffe/tree/master/models/b...
233мб.
В Alexnet 62 миллиона параметров, 650 тыс нейронов, и чтобы ее обучить столько же эпох как в оригинальной статье, нужно потратить 5-6 дней на двух GTX 580 3GB видеокартах (Хотя современный рекорд на более быстром оборудовании и оптимизированном коде - 24 минуты).

И как должна вести себя сеть, если ввелись данные, которых не было при обучении?

Сеть это, грубо говоря, просто функция, которую изменяют алгоритмом обучения на основании определенных данных. Она считает что-то. При каждой итерации обучения получается готовая функция, которая тупо считает из входных данных выходные.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы