/// <summary> /// Construct the trainer. /// </summary> /// <param name="theNetwork">The network to train.</param> public TrainHopfieldStorkey(HopfieldNetwork theNetwork) { _network = theNetwork; _sumMatrix = AIFH.Alloc2D <double>(_network.InputCount, _network.InputCount); }
public static void Evaluate(HopfieldNetwork hopfieldLogic, string[][] pattern) { for (var i = 0; i < pattern.Length; i++) { var pattern1 = ConvertPattern(pattern, i); hopfieldLogic.CopyToCurrentState(pattern1); var cycles = hopfieldLogic.RunUntilStable(100); var pattern2 = hopfieldLogic.CurrentState; Console.WriteLine("Cycles until stable(max 100): " + cycles + ", result="); Display(pattern1, pattern2); Console.WriteLine("----------------------"); } }
public void Run() { var hopfieldLogic = new HopfieldNetwork(WIDTH*HEIGHT); var train = new TrainHopfieldStorkey(hopfieldLogic); for (var i = 0; i < PATTERN.Length; i++) { train.AddPattern(ConvertPattern(PATTERN, i)); } Evaluate(hopfieldLogic, PATTERN); Evaluate(hopfieldLogic, PATTERN2); }
/// <summary> /// Construct the trainer. /// </summary> /// <param name="theNetwork">The network to train.</param> public TrainHopfieldStorkey(HopfieldNetwork theNetwork) { _network = theNetwork; _sumMatrix = AIFH.Alloc2D<double>(_network.InputCount, _network.InputCount); }