Example #1
0
def createSimple(numInputs, numOutputs):
  
  synapse = Synapses.createRootSynapse()
  seed = Neurons.createRootNeuron([synapse], [synapse])
  
  inputSynapses = [Synapses.createRootSynapse() for i in range(numInputs)]
  outputSynapses = [Synapses.createRootSynapse() for i in range(numOutputs)]
  
  "Connect seed to inputs and outputs."
  inputNeurons = [InputNeuron(None, [], [inputSynapses[i]], zeros(Neurons.inputDivisionDataSize), \
                              inputTree()) for i in range(numInputs)]
  outputNeurons = [OutputNeuron(None, [outputSynapses[i]], [], zeros(Neurons.divisionDataSize)) \
                   for i in range(numOutputs)]
  
  inputNeuron = inputNeurons[-1]
  outputNeuron = outputNeurons[-1]
  inputSynapse = inputNeuron.getSynapse()
  outputSynapse = outputNeuron.getSynapse()
  
  "edit contents"
  inputNeuron.data[Neurons.fireRateFunEnd - 1] = -2
  inputNeuron.data[Neurons.fireRateFun] = 10
  inputNeuron.data[Neurons.evolveRateFunEnd - 1] = 4
  inputNeuron.data[Neurons.sensitivityFunEnd - 1] = 1
  inputNeuron.data[Neurons.inputEvolveTransform + Neurons.dataSize + Neurons.inputSize] = -2
  inputNeuron.data[Neurons.inputEvolveTransform] = 4
  inputNeuron.data[Neurons.inputEvolveTransform + \
                   Neurons.dataSize * (Neurons.dataSize + 2)] = 0.2
  
  seed.data[Neurons.fireRateFunEnd - 1] = -2
  seed.data[Neurons.fireRateFun] = 10
  seed.data[Neurons.evolveRateFunEnd - 1] = 4
  seed.data[Neurons.sensitivityFunEnd - 1] = 1
  seed.data[Neurons.evolveTransform + Neurons.dataSize] = -2
  seed.data[Neurons.evolveTransform + \
                   Neurons.dataSize * (Neurons.dataSize + 1)] = 0.2
  
  outputNeuron.data[Neurons.fireRateFunEnd - 1] = -2
  outputNeuron.data[Neurons.fireRateFun] = 10
  outputNeuron.data[Neurons.evolveRateFunEnd - 1] = 4
  outputNeuron.data[Neurons.sensitivityFunEnd - 1] = 1
  outputNeuron.data[Neurons.evolveTransform + Neurons.dataSize] = -2
  outputNeuron.data[Neurons.evolveTransform + \
                   Neurons.dataSize * (Neurons.dataSize + 1)] = 0.2
  
  inputSynapse.data[Synapses.weightFunEnd - 1] = 1
  inputSynapse.data[Synapses.activationFunEnd - 1] = 1
  
  outputSynapse.data[Synapses.weightFunEnd - 1] = 1
  outputSynapse.data[Synapses.activationFunEnd - 1] = 1
  "done editing contents"
  
  brain = Brain(seed, numInputs, numOutputs, inputNeurons, outputNeurons)
  brain._startTime()
  return brain
Example #2
0
def createEmpty(numInputs, numOutputs):
  "Create isolated seed."
  synapse = Synapses.createRootSynapse()
  seed = Neurons.createRootNeuron([synapse], [synapse])
  
  inputSynapses = [Synapses.createRootSynapse() for i in range(numInputs)]
  outputSynapses = [Synapses.createRootSynapse() for i in range(numOutputs)]
  
  "Connect seed to inputs and outputs."
  inputNeurons = [InputNeuron(None, [], [inputSynapses[i]], zeros(Neurons.inputDivisionDataSize), \
                              inputTree()) for i in range(numInputs)]
  outputNeurons = [OutputNeuron(None, [outputSynapses[i]], [], zeros(Neurons.divisionDataSize)) \
                   for i in range(numOutputs)]
  
  "Make and start brain."
  brain = Brain(seed, numInputs, numOutputs, inputNeurons, outputNeurons)
  brain._startTime()
  return brain