def SetParams(ss, sheet, setMsg): """ SetParams sets the params for "Base" and then current ParamSet. If sheet is empty, then it applies all avail sheets (e.g., Network, Sim) otherwise just the named sheet if setMsg = true then we output a message for each param that was set. """ if sheet == "": ss.Params.ValidateSheets(go.Slice_string(["Network", "Sim"])) nt = ss.Net() err = ss.SetParamsSet("Base", sheet, setMsg) if ss.TrainedWts: ss.SetParamsSet("Trained", sheet, setMsg) else: ss.SetParamsSet("Untrained", sheet, setMsg) ffinhsc = ss.FFinhibWtScale if nt == ss.NetBidir: ffinhsc *= 0.5 # 2 inhib prjns so .5 ea hid = leabra.LeabraLayer(nt.LayerByName("Hidden")).AsLeabra() hid.Act.Gbar.I = ss.HiddenGbarI hid.Act.Dt.GTau = ss.HiddenGTau hid.Act.Update() inh = leabra.LeabraLayer(nt.LayerByName("Inhib")).AsLeabra() inh.Act.Gbar.I = ss.InhibGbarI inh.Act.Dt.GTau = ss.InhibGTau inh.Act.Update() ff = leabra.LeabraPrjn(inh.RcvPrjns.SendName("Input")).AsLeabra() ff.WtScale.Rel = ffinhsc fb = leabra.LeabraPrjn(inh.RcvPrjns.SendName("Hidden")).AsLeabra() fb.WtScale.Rel = ss.FBinhibWtScale hid.Inhib.Layer.On = ss.FFFBInhib inh.Inhib.Layer.On = ss.FFFBInhib fi = leabra.LeabraPrjn(hid.RcvPrjns.SendName("Inhib")).AsLeabra() fi.WtScale.Abs = ss.FmInhibWtScaleAbs fi = leabra.LeabraPrjn(inh.RcvPrjns.SendName("Inhib")).AsLeabra() fi.WtScale.Abs = ss.FmInhibWtScaleAbs if nt == ss.NetBidir: hid = leabra.LeabraLayer(nt.LayerByName("Hidden2")).AsLeabra() hid.Act.Gbar.I = ss.HiddenGbarI hid.Act.Dt.GTau = ss.HiddenGTau hid.Act.Update() inh = leabra.LeabraLayer(nt.LayerByName("Inhib2")).AsLeabra() inh.Act.Gbar.I = ss.InhibGbarI inh.Act.Dt.GTau = ss.InhibGTau inh.Act.Update() hid.Inhib.Layer.On = ss.FFFBInhib inh.Inhib.Layer.On = ss.FFFBInhib fi = leabra.LeabraPrjn(hid.RcvPrjns.SendName("Inhib2")).AsLeabra() fi.WtScale.Abs = ss.FmInhibWtScaleAbs fi = leabra.LeabraPrjn(inh.RcvPrjns.SendName("Inhib2")).AsLeabra() fi.WtScale.Abs = ss.FmInhibWtScaleAbs ff = leabra.LeabraPrjn(inh.RcvPrjns.SendName("Hidden")).AsLeabra() ff.WtScale.Rel = ffinhsc fb = leabra.LeabraPrjn(inh.RcvPrjns.SendName("Hidden2")).AsLeabra() fb.WtScale.Rel = ss.FBinhibWtScale inh = leabra.LeabraLayer(nt.LayerByName("Inhib")).AsLeabra() ff = leabra.LeabraPrjn(inh.RcvPrjns.SendName("Hidden2")).AsLeabra() ff.WtScale.Rel = ffinhsc return err
def InitWts(ss, net): net.InitWts() hid = leabra.Layer(ss.Net.LayerByName("Hidden")) fmloc = leabra.LeabraPrjn(hid.RcvPrjns.SendName("Location")) gze = leabra.Layer(ss.Net.LayerByName("GazeExpect")) hidgze = leabra.LeabraPrjn(gze.RcvPrjns.SendName("Hidden")) rch = leabra.Layer(ss.Net.LayerByName("Reach")) hidrch = leabra.LeabraPrjn(rch.RcvPrjns.SendName("Hidden")) for i in range(3): fmloc.SetSynVal("Wt", i, i, 0.7) hidgze.SetSynVal("Wt", i, i, 0.7) hidrch.SetSynVal("Wt", i, i, 0.7)
def SetParams(ss, sheet, setMsg): """ SetParams sets the params for "Base" and then current ParamSet. If sheet is empty, then it applies all avail sheets (e.g., Network, Sim) otherwise just the named sheet if setMsg = true then we output a message for each param that was set. """ if sheet == "": ss.Params.ValidateSheets(go.Slice_string(["Network", "Sim"])) ss.SetParamsSet("Base", sheet, setMsg) if ss.ParamSet != "" and ss.ParamSet != "Base": sps = ss.ParamSet.split() for ps in sps: err = ss.SetParamsSet(ps, sheet, setMsg) ri = rl.TDRewIntegLayer(ss.Net.LayerByName("RewInteg")) ri.RewInteg.Discount = ss.Discount rp = rl.TDRewPredLayer(ss.Net.LayerByName("RewPred")) fmi = leabra.LeabraPrjn(rp.RcvPrjns.SendName("Input")).AsLeabra() fmi.Learn.Lrate = ss.Lrate