Пример #1
0
        public IEnumerable <TrainingRow> GetAllRows()
        {
            var rows = new List <TrainingRow>();

            using (OleDbConnection connection = new OleDbConnection(_connectionString))
            {
                OleDbCommand command = new OleDbCommand(GetSelectStatement(), connection);
                connection.Open();
                OleDbDataReader reader = command.ExecuteReader();

                while (reader != null && reader.Read())
                {
                    var row = new TrainingRow();

                    var idColumn = reader[_idColumn];

                    if (idColumn != DBNull.Value)
                    {
                        row.IdColumn = idColumn.ToString();
                        row.Input    = GetArrayOfVariables(reader, _inputVariables);
                        row.Output   = GetArrayOfVariables(reader, _outputVariables);
                        rows.Add(row);
                    }
                }

                reader?.Close();
            }

            return(rows);
        }
Пример #2
0
        private string GetUpdateStatement(TrainingRow entity)
        {
            var stringBuilder = new StringBuilder();

            stringBuilder.AppendLine($"UPDATE [{_sheet}]");
            stringBuilder.AppendLine($"SET {GetSetStatement(entity)}");
            stringBuilder.AppendLine($"WHERE {_idColumn} = '{entity.IdColumn}'");
            return(stringBuilder.ToString());
        }
Пример #3
0
        public void UpdateRow(TrainingRow row)
        {
            var updateStatement = GetUpdateStatement(row);

            using (OleDbConnection connection = new OleDbConnection(_connectionString))
            {
                connection.Open();
                OleDbCommand command = new
                                       OleDbCommand(updateStatement, connection);
                command.ExecuteNonQuery();
            }
        }
Пример #4
0
        public double getError(double[] weights)
        {
            //set the weights

            hidden1Neuron.inputs[0].weight = weights[0];
            hidden1Neuron.inputs[1].weight = weights[1];

            hidden2Neuron.inputs[0].weight = weights[2];
            hidden2Neuron.inputs[1].weight = weights[3];

            outputNeuron.inputs[0].weight = weights[4];
            outputNeuron.inputs[1].weight = weights[5];

            for (int i = 0; i < xor_template.rows.Count; i++)
            {
                TrainingRow row = xor_template.rows[i];

                input1Neuron.inputs[0].reading = row.inputs[0];
                input2Neuron.inputs[0].reading = row.inputs[1];


                input1Neuron.fireNeuron();
                input2Neuron.fireNeuron();
                hidden1Neuron.fireNeuron();
                hidden2Neuron.fireNeuron();
                outputNeuron.fireNeuron();

                errors[i] = row.outputs[0] - outputNeuron.output.weightedReading;
            }

            double sumError = 0;

            for (int i = 0; i < errors.Length; i++)
            {
                if (errors[i] > 0)
                {
                    sumError += errors[i];
                }
                else
                {
                    sumError += errors[i] * -1;
                }
            }
            return(sumError);
        }
Пример #5
0
        private string GetSetStatement(TrainingRow entity)
        {
            var setList = new List <string>();

            if (_outputVariables.Count != entity.Output.Length)
            {
                throw new ArgumentException("Number of output columns different than the number of output variables. ");
            }

            for (var i = 0; i < _outputVariables.Count; i++)
            {
                var variable = _outputVariables[i];
                var value    = entity.Output[i];

                setList.Add($"[{variable}] = {value}");
            }

            return(string.Join($",{Environment.NewLine}", setList));
        }
 public void AddTrainingRow(TrainingRow row) {
     Rows.Add(row);
 }
 public TrainingRowChangeEvent(TrainingRow row, global::System.Data.DataRowAction action) {
     eventRow = row;
     eventAction = action;
 }
 public void RemoveTrainingRow(TrainingRow row) {
     Rows.Remove(row);
 }