Да, вы можете использовать Serializable, как упомянуто выше. Но в робототехнике часто возникает потребность в независимом от языка (то есть легко анализируемом) хранении знаний, поэтому я добавляю этот ответ.
Итак, как вы сохраняете текущее состояние любого типа данных?
1) Напишите тип, его состояние и возможный дескриптор 2) Прочтите.
Для целого int a = 3
, вы можете записать файл со следующим содержимым:
integer
a
3
нейронная сеть представляет собой абстрактный тип данных, как целое. Определяется топологией и конечными весами после обучения. Допустим, у вас есть MLP с в = 3, спрятался = 6, из = 2, то вы можете написать файл со следующим содержимым:
3-6-2 // topology
test1 // name of neural network, could also be in filename (or timestamp)
weight matrix [in->hid]
weight matrix [hid->out]
в то время как вы бы, конечно, написать фактические веса вместо " весовая матрица ". Вы можете получить топологию в части инициализации вашей программы или вместе с весами, которая находится в конце этапа обучения.
Если вы хотите восстановить свою сеть, просто проанализируйте записанный файл и используйте все, что вы прочитали, для инициализации сети, как и раньше, но теперь пропустите обучение. Вы должны иметь возможность записывать файлы на свой робот. Если вы не можете этого сделать, отправьте информацию через Wi-Fi на локальный компьютер и напишите там.
следует ли это действительно быть помечены сети? – DuncanACoulter
Какие рамки для нейронных сетей вы используете? Это не стандартная функция C#/BCL. Если вы сами ее пишете, вам необходимо выполнить сериализацию и десериализацию сети. – Luaan
Кажется немного странным, что вы знаете, как писать многослойную нейронную сеть на C#, но не имеют понятия о том, как сохранить ее состояние ... –