def myCreateNetwork(self, networkConfig): suffix = '_0' network = Network() sensorInputName = "sensorInput" + suffix L4ColumnName = "L4Column" + suffix L2ColumnName = "L2Column" + suffix L4Params = copy.deepcopy(networkConfig["L4Params"]) L4Params["apicalInputWidth"] = networkConfig["L2Params"]["cellCount"] network.addRegion( sensorInputName, "py.RawSensor", json.dumps({"outputWidth": networkConfig["sensorInputSize"]})) network.addRegion( L4ColumnName, networkConfig["L4RegionType"], json.dumps(L4Params)) network.addRegion( L2ColumnName, "py.ColumnPoolerRegion", json.dumps(networkConfig["L2Params"])) network.setPhases(sensorInputName,[0]) # L4 and L2 regions always have phases 2 and 3, respectively network.setPhases(L4ColumnName,[2]) network.setPhases(L2ColumnName,[3]) network.link(sensorInputName, L4ColumnName, "UniformLink", "", srcOutput="dataOut", destInput="activeColumns") # Link L4 to L2 network.link(L4ColumnName, L2ColumnName, "UniformLink", "", srcOutput="activeCells", destInput="feedforwardInput") network.link(L4ColumnName, L2ColumnName, "UniformLink", "", srcOutput="winnerCells", destInput="feedforwardGrowthCandidates") # Link L2 feedback to L4 network.link(L2ColumnName, L4ColumnName, "UniformLink", "", srcOutput="feedForwardOutput", destInput="apicalInput", propagationDelay=1) # Link reset output to L2 and L4. network.link(sensorInputName, L2ColumnName, "UniformLink", "", srcOutput="resetOut", destInput="resetIn") network.link(sensorInputName, L4ColumnName, "UniformLink", "", srcOutput="resetOut", destInput="resetIn") #enableProfiling(network) for region in network.regions.values(): region.enableProfiling() return network