public DecisionNet(DInput[] p_inputs, DOutput[] p_outputs, Matrix <float> p_weights) { if (!MatrixCalc.isSize(p_weights, p_inputs.Length, p_outputs.Length)) { Debug.LogError("Constructing DecisionNet with wrong sized matrix"); } m_inputs = p_inputs; m_outputs = p_outputs; m_weights = MatrixCalc.shallowClone(p_weights); }
private void performOutputs(Matrix <float> p_output_values) { if (!MatrixCalc.isSize(p_output_values, 1, m_outputs.Length)) { Debug.LogError("Trying to perform outputs in Decision net with malformed output_values matrix"); } for (int i = 0; i < m_outputs.Length; i++) { m_outputs[i](p_output_values[0, i]); } }
public DecisionNetDNA(int p_id, DInputFactory <T>[] p_inputs, DOutputFactory <T>[] p_outputs, Matrix <float> p_weights, Range <float> p_mutation_multiplier) { if (!MatrixCalc.isSize(p_weights, p_inputs.Length, p_outputs.Length)) { Debug.LogError("DecisionNetDNA requires Matrix input size inputs by outputs"); } m_id = p_id; m_inputs = ArrayCalc.shallowClone(p_inputs); m_outputs = ArrayCalc.shallowClone(p_outputs); m_weights = MatrixCalc.shallowClone(MatrixCalc.columnNormalize(p_weights)); m_mutation_multiplier = p_mutation_multiplier; }