private void Button_Click_1(object sender, RoutedEventArgs e) { var numberOfNeurons = int.Parse(InputNumber.Text); Network = new Network(numberOfNeurons); foreach (var item in Layers.Items) { var properties = item.ToString().Split(' '); var neurons = int.Parse(properties[0]); IActivationFunction activation; if (properties[1] == "S") { activation = new SigmoidFunction(); } else { activation = new IdentityFunction(); } ILayerUtility utility; if (properties[2] == "B") { utility = new BiasedUtility(); } else { utility = new UnbiasedUtility(); } Network.AddLayer(new Layer(neurons, activation, utility)); } }
public async void Http_trigger_should_return_known_hash(string username, string password, string hash) { var logger = TestFactory.CreateLogger(); var body = JsonConvert.SerializeObject(new LoginRequestCommand { UserName = username, Password = password }); var request = TestFactory.CreateCommandHttpRequest(body); var response = (OkObjectResult)await IdentityFunction.Run(request, logger); Assert.Equal(hash, response.Value); }
public List <IdentityFunction> Initialize() { var functions = new List <IdentityFunction>(); var actionDescs = _actionProvider.ActionDescriptors.Items.Cast <ControllerActionDescriptor>(); foreach (var item in actionDescs) { IdentityFunction action = GetFunction(item); if (IsRepeatMethod(action, functions)) { //此url重复 return(null); } functions.Add(action); } return(functions); }
/// <summary> /// 获取功能信息 /// </summary> /// <param name="actionDesc"></param> /// <returns></returns> private IdentityFunction GetFunction(ControllerActionDescriptor actionDesc) { EnumFunctionAccessType accessType = EnumFunctionAccessType.Anonymous; var ControllerName = actionDesc.ControllerTypeInfo.GetDescription(); var ActionName = actionDesc.MethodInfo.CustomAttributes.FirstOrDefault(z => z.AttributeType == typeof(DescriptionAttribute))?.ConstructorArguments.FirstOrDefault().Value; var methods = string.Join(", ", actionDesc.ActionConstraints?.OfType <HttpMethodActionConstraint>().SingleOrDefault()?.HttpMethods ?? new string[] { "any" }); IdentityFunction function = new IdentityFunction() { Name = $"{ControllerName}-{ActionName}", AccessType = accessType, Area = GetArea(actionDesc.ControllerTypeInfo), Controller = actionDesc.ControllerName, Action = actionDesc.ActionName, Methods = methods, Url = actionDesc.AttributeRouteInfo?.Template.ToLower() }; return(function); }
private void TrainBtnClick(object sender, RoutedEventArgs e) { double learningRate; double momentum; int iterations; if (TypeComboBox.SelectedItem is null) { return; } if (TypeComboBox.SelectedValue.ToString() == "Classification") { networkType = new ClassificationNetwork(); } else { networkType = new RegressionNetwork(); } int classesCount = 0; int attributesCount = 0; if (!Double.TryParse(this.EtaTb.Text, out learningRate)) { return; } if (!Double.TryParse(this.AlphaTb.Text, out momentum)) { return; } // parse neuron counts separated by commas var neurons = this.HiddenNeuronsTb.Text.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(x => { var res = 0; if (!Int32.TryParse(x, out res)) { return(0); } return(res); }).ToList(); if (neurons.Any(x => x <= 0)) { return; } if (!Int32.TryParse(this.IterationsTb.Text, out iterations)) { return; } var trainSet = this.GetSetFromFile(ref classesCount, ref attributesCount)?.NormalizedData; if (trainSet == null) { return; } // TODO: permit user to model network and edit parameters int outputNeurons = classesCount; IActivation activationFunction = new SigmoidFunction(); if (networkType is RegressionNetwork) { outputNeurons = 1; activationFunction = new IdentityFunction(); } this.network = new Network().BuildNetwork(attributesCount, neurons, outputNeurons, learningRate, momentum, activationFunction, networkType); var tb = ShowWaitingDialog(); Task.Run(() => { var errors = this.network.Train(trainSet, iterations); tb.Dispatcher.Invoke(() => { this.DrawChart ( "Error function", new List <IEnumerable <Tuple <double, double> > >() { Enumerable.Range(1, iterations).Zip(errors, (it, val) => new Tuple <double, double>((double)it, val)) }, 1, iterations, errors.Min(), errors.Max() ); DialogHost.CloseDialogCommand.Execute(null, tb); }); }); // TODO: update GUI }
/// <summary> /// 是否存在重复的功能信息 /// </summary> /// <param name="action">要判断的功能信息</param> /// <param name="functions">已存在的功能信息集合</param> /// <returns></returns> private bool IsRepeatMethod(IdentityFunction action, List <IdentityFunction> functions) { var exist = functions.FirstOrDefault(x => x.Url == action.Url); return(exist != null); }