Задать вопрос
  • С# Taks и Invoke почему то блокируется форма?

    @saneok44 Автор вопроса
    Борис Животное,
    private Task NetworkEfficiency()
    {
    return new Task(() =>
    {
    try
    {
    Console.WriteLine("NetworkEfficiency : Start");

    List result = new List();
    List mix = new List();

    if(cuurModeNumber)
    result = Enumerable.Range(0, 10).Select(x => new NeuralNetwork.ResultEffect() { labl = x }).ToList();
    else
    result = Enumerable.Range(0, NeuralNetwork.alf.Length).Select(x => new NeuralNetwork.ResultEffect() { labl = x }).ToList();

    if (rb_numbers.Checked)
    mix = MixArray(mNIST.digitImages.ToList(), mNIST.imagesNumbersPackeg.myImages);
    else
    mix = mix = MixArray(mNIST.imagesLettersPackeg.myImages);

    Invoke((MethodInvoker)(()=>
    {
    progressBar1.Value = 0;
    progressBar1.Minimum = 0;
    progressBar1.Maximum = mix.Count();
    }));

    Stopwatch time = new Stopwatch();
    time.Start();
    for (int i = 0; i < mix.Count; i++)
    {
    result = NeuralNetwork.EfficiencyEvaluation(mix[i].pixels,
    mix[i].width, mix[i].height,
    mix[i].label, result);
    edit = true;

    int pers = (int)((i / (float)mix.Count) * 100f);
    string str = $"{i} / {mix.Count} : ({pers}%)";

    if(time.Elapsed.Milliseconds > 50)
    {
    Invoke((MethodInvoker)(() =>
    {
    progressBar1.Value = i;
    labelCountMNIST.Text = str;
    }));

    time.Reset();
    time.Start();
    }
    }

    int sum_true = 0;
    int count = 0;

    foreach (var item in result)
    {
    count += item.False + item.True;
    sum_true += item.True;
    }

    double percent_true = ((double)sum_true / count) * 100;

    MessageBox.Show($"Успешных распознаваний: {percent_true.ToString("#.##")}%", "Результат");

    Invoke((MethodInvoker)(() => { progressBar1.Value = 0; }));
    Invoke((MethodInvoker)(() => { labelCountMNIST.Text = $"{0} / {0}"; }));

    for (int i = 0; i < result[0].neurons.Length; i++)
    {
    Invoke((MethodInvoker)(()=>
    {
    (flowLayoutPanel1.Controls[i] as OutNeuron).Value = result[0].neurons[i].Value;
    }));
    }

    Console.WriteLine("NetworkEfficiency : End");
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message, "Сообщение");
    }
    });
    }
  • С# Taks и Invoke почему то блокируется форма?

    @saneok44 Автор вопроса
    Решил вопрос установив временной интервал вызова Invoke допустим через 15-30-50мс
  • Нейросети обучение, почему может падать процент распознаваний?

    @saneok44 Автор вопроса
    Понял, буду копать дальше в этом направлении
  • Нейросети обучение, почему может падать процент распознаваний?

    @saneok44 Автор вопроса
    У меня описан метод обратного распространения ошибки. Иначе бы распознавание из 60000 изображений MNIST было бы на уровне как повезет. А так все присутствует, что надо нейронки. Скорость обучения стоит 0.15. Если я вас правильно понял.