Можно ли сохранить результат обучения нейрона?
Цитата: Удаленный пользователь от 18.11.2021, 15:47Всем привет!
Написало простой нейрон который учиться конвертировать что-то во что-то. Но когда запускаю программу, нужно постоянно ждать пока он обучится.
Можно ли как-то сохранять результаты обучения и удалять их когда нужно переобучить нейрон?
Вот мой код:
[spoiler title="Код"]public class Neuron { private decimal weight = 0.5m; public decimal Errors { get; private set; } public decimal Smooth { get; set; } = 0.0000001m; public decimal InputData(decimal input) { return input * weight; } public decimal RestoreInputData(decimal output) { return output / weight; } public void Training(decimal input, decimal expResult) { var mainResult = input * weight; Errors = expResult - mainResult; var correction = (Errors / mainResult) * Smooth; weight += correction; } } static void Main(string[] args) { decimal uk = 1000; decimal eu = 33.29m; Neuron neuron = new Neuron(); int i = 0; do { i++; neuron.Training(uk, eu); if (i % 700000 == 0) { Console.WriteLine($"Iteration: {i}\tIssue:\t{neuron.Errors}"); } } while (neuron.Errors > neuron.Smooth || neuron.Errors < -neuron.Smooth); Console.WriteLine("Training the end!"); //Console.WriteLine($"{neuron.RestoreInputData(101)} euro {101} in ua"); Console.WriteLine("Enter your value: "); decimal res = Convert.ToDecimal(Console.ReadLine()); Console.WriteLine($"{neuron.InputData(res)}");[/spoiler]
Всем привет!
Написало простой нейрон который учиться конвертировать что-то во что-то. Но когда запускаю программу, нужно постоянно ждать пока он обучится.
Можно ли как-то сохранять результаты обучения и удалять их когда нужно переобучить нейрон?
Вот мой код:
public class Neuron
{
private decimal weight = 0.5m;
public decimal Errors { get; private set; }
public decimal Smooth { get; set; } = 0.0000001m;
public decimal InputData(decimal input)
{
return input * weight;
}
public decimal RestoreInputData(decimal output)
{
return output / weight;
}
public void Training(decimal input, decimal expResult)
{
var mainResult = input * weight;
Errors = expResult - mainResult;
var correction = (Errors / mainResult) * Smooth;
weight += correction;
}
}
static void Main(string[] args)
{
decimal uk = 1000;
decimal eu = 33.29m;
Neuron neuron = new Neuron();
int i = 0;
do
{
i++;
neuron.Training(uk, eu);
if (i % 700000 == 0)
{
Console.WriteLine($"Iteration: {i}\tIssue:\t{neuron.Errors}");
}
} while (neuron.Errors > neuron.Smooth || neuron.Errors < -neuron.Smooth);
Console.WriteLine("Training the end!");
//Console.WriteLine($"{neuron.RestoreInputData(101)} euro {101} in ua");
Console.WriteLine("Enter your value: ");
decimal res = Convert.ToDecimal(Console.ReadLine());
Console.WriteLine($"{neuron.InputData(res)}");
Цитата: Удаленный пользователь от 19.11.2021, 00:15Привет! Можно сохранять в файл с помощью сериализации. Для сброса результатов просто создайте новый объект.
Привет! Можно сохранять в файл с помощью сериализации. Для сброса результатов просто создайте новый объект.
Цитата: Удаленный пользователь от 19.11.2021, 13:13Цитата: Вася от 19.11.2021, 00:15Привет! Можно сохранять в файл с помощью сериализации. Для сброса результатов просто создайте новый объект.
Большое спасибо!👍
Я никогда не слышал о сериализации. Теперь буду знать, спасибо!
Цитата: Вася от 19.11.2021, 00:15Привет! Можно сохранять в файл с помощью сериализации. Для сброса результатов просто создайте новый объект.
Большое спасибо!👍
Я никогда не слышал о сериализации. Теперь буду знать, спасибо!
Цитата: admin от 19.11.2021, 13:57Всем привет 🖐
Всем привет 🖐
Цитата: Удаленный пользователь от 19.11.2021, 16:10Привет Хачатур)
Мне просто было интересно как это работает)
Возможно ты направишь меня как это можно сделать лучше и что нужно изучить для этого?
Привет Хачатур)
Мне просто было интересно как это работает)
Возможно ты направишь меня как это можно сделать лучше и что нужно изучить для этого?
