def trial(network: lb.Net, input_pattern: Iterable[float], output_pattern: Iterable[float]) -> None: """Runs a trial.""" network.clamp_layer("input", input_pattern) network.minus_phase_cycle(num_cycles=50) network.clamp_layer("output", output_pattern) network.plus_phase_cycle(num_cycles=25) network.unclamp_layer("input") network.unclamp_layer("output") network.learn()
def trial(network: lb.Net, input_pattern: Iterable[float], output_pattern: Iterable[float]) -> None: """Runs a trial.""" network.clamp_layer("input", input_pattern) network.phase_cycle(phase=lb.MinusPhase, num_cycles=50) network.clamp_layer("output", output_pattern) network.phase_cycle(phase=lb.PlusPhase, num_cycles=25) network.unclamp_layer("input") network.unclamp_layer("output") network.end_trial()
def learn_trial(network: lb.Net, pattern=torch.Tensor) -> None: # Theta Trough network.clamp_layer("Input", pattern) network.inhibit_projns("TSP: CA3 -> CA1", "Loop: EC_out -> EC_in") network.phase_cycle(ThetaTrough, num_cycles=20) network.uninhibit_projns("TSP: CA3 -> CA1", "Loop: EC_out -> EC_in") # Theta Peak network.inhibit_projns("MSP: EC_in -> CA1", "Loop: EC_out -> EC_in") network.phase_cycle(ThetaPeak, num_cycles=20) network.uninhibit_projns("MSP: EC_in -> CA1", "Loop: EC_out -> EC_in") # Theta Plus network.clamp_layer("EC_out", pattern) network.inhibit_projns("TSP: CA3 -> CA1") network.phase_cycle(ThetaPlus, num_cycles=60) network.inhibit_projns("TSP: CA3 -> CA1") # Reset network.unclamp_layer("Input", "EC_out") network.end_trial() network.learn()