/// <summary> /// Запуск протокола Диффи-Хеллмана с древовидной машиной четности /// </summary> /// <param name="numInputNeurons">Количество входных нейронов в ДМЧ <see cref="TreeParityMachine"/></param> /// <param name="numHiddenNeoruns">Количество скрытых нейронов в ДМЧ <see cref="TreeParityMachine"/></param> /// <param name="weightRange">Диапозон весов в ДМЧ <see cref="TreeParityMachine"/></param> /// <param name="rule">Правило обучения нейронов в ДМЧ <see cref="TreeParityMachine"/></param> public virtual async Task RunProtocolAsync(uint numInputNeurons, uint numHiddenNeoruns, int weightRange, LearningRuleNeurons rule) { Machine = new TreeParityMachine(numInputNeurons, numHiddenNeoruns, weightRange, rule); Debug.WriteLine("Run Protocol"); // Проверка параметров ДМЧ try { ClosedTokenSource.CancelAfter(TimeSpan.FromSeconds(30)); await HubProtocolConnection.InvokeAsync("CompareParams", NameRecipient, numInputNeurons, numHiddenNeoruns, weightRange).ConfigureAwait(false); } catch (Exception ex) { Debug.WriteLine(ex); throw ex; } }
/// <summary> /// Запуск протокола Диффи-Хеллмана с древовидной машиной четности /// </summary> /// <param name="numInputNeurons">Количество входных нейронов в ДМЧ <see cref="TreeParityMachine"/></param> /// <param name="numHiddenNeoruns">Количество скрытых нейронов в ДМЧ <see cref="TreeParityMachine"/></param> /// <param name="weightRange">Диапозон весов в ДМЧ <see cref="TreeParityMachine"/></param> /// <param name="rule">Правило обучения нейронов в ДМЧ <see cref="TreeParityMachine"/></param> public override async Task RunProtocolAsync(uint numInputNeurons, uint numHiddenNeoruns, int weightRange, LearningRuleNeurons rule) { MachineInterceptor = new TreeParityMachine(numInputNeurons, numHiddenNeoruns, weightRange, rule); await base.RunProtocolAsync(numInputNeurons, numHiddenNeoruns, weightRange, rule).ConfigureAwait(false); }