public void SaveDecision(IPercept percept, IAction action) { var json = JsonConvert.SerializeObject(percept.ToDoubleArray()); _writer.WriteLine(json); json = JsonConvert.SerializeObject(action.Raw); _writer.WriteLine(json); }
public NeuralNetAction Think(IPercept percept) { var data = percept.ToDoubleArray(); if (data.Length != _model.GetInputDimension().c) { throw new ArgumentOutOfRangeException(nameof(ArgumentOutOfRangeException), $"Percept count should be {_model.GetInputDimension().c}, but is {data.Length}, check if the " + $"input layer in DefaultLayer is set to the right value (currently: {_layers[0]})"); } var input = new Data2D(1, 1, _layers[0], 1); input.SetData(data); var result = (Data2D)_model.ExecuteNetwork(input); return(new NeuralNetAction(result.ToDoubleArray(_layers))); }