コード例 #1
0
 def erase_all_knowledge(self):
     # snb
     self.snb = SensoryNeuralBlock()
     self.snb.save("persistent_memory/sight_snb.p", "persistent_memory/hearing_snb.p")
     # Relational Neural Block
     self.rnb = RelNetwork(100)
     RelNetwork.serialize(self.rnb, "persistent_memory/rnb.p")
     # Addition by memory network
     self.am_net = CulturalNetwork(100)
     CulturalNetwork.serialize(self.am_net, "persistent_memory/am_net.p")
     # Syllables net
     self.syllables_net = CulturalNetwork(100)
     CulturalNetwork.serialize(self.syllables_net, "persistent_memory/syllables_net.p")
     # Words net
     self.words_net = CulturalNetwork(100)
     CulturalNetwork.serialize(self.words_net, "persistent_memory/words_net.p")
     # Sight-Syllables rel network
     self.ss_rnb = RelNetwork(100)
     RelNetwork.serialize(self.ss_rnb, "persistent_memory/ss_rnb.p")
     # Geometric Neural Block
     self.gnb = GeometricNeuralBlock()
     GeometricNeuralBlock.serialize(self.gnb, "persistent_memory/gnb.p")
     ################ INTENTIONS ####################################################################################
     self.episodic_memory = EpisodicMemoriesBlock()
     EpisodicMemoriesBlock.serialize(self.episodic_memory, "persistent_memory/episodic_memory.p")
     self.decisions_block = DecisionsBlock()
     DecisionsBlock.serialize(self.decisions_block, "persistent_memory/decisions_block.p")
     self.internal_state = InternalState()
     InternalState.serialize(self.internal_state, "persistent_memory/internal_state.p")
     self.desired_state = InternalState([0.5,1,1])
     InternalState.serialize(self.desired_state, "persistent_memory/desired_state.p")
コード例 #2
0
    def __init__(self):
        # Desired state
        self.desired_state = InternalState()
        self.desired_state.set_state([0.5,1,1])
        # Initial internal state
        self.internal_state = InternalState([0.5,0.5,0.5])

        # Decision by prediction network
        self.decision_prediction_block = DecisionByPredictionBlock()
        self.decision_prediction_block.set_desired_state(self.desired_state)
        self.decision_prediction_block.set_internal_state(self.internal_state)

        # DEFAULT TRAINING, IT CAN LATER BE OVERRIDEN
        # Create a random training set so that the net can learn the relation prediction = (ei + choice.bcf)/2
        # We require a minimum of 18 points
        training_set = []
        for index in range(20):
            ei = [random.random(), random.random(), random.random()]
            choice_bcf = [random.random(), random.random(), random.random()]
            prediction = [ei_j / 2.0 + choice_bcf_j / 2.0 for ei_j, choice_bcf_j in zip(ei, choice_bcf)]
            training_set.append((ei + choice_bcf, prediction))

        # Remodel predictive net
        self.decision_prediction_block.remodel_predictive_net(training_set)

        self._inputs = None
        self._new_inputs = False
        self.decision = None
        self._last_decision_type = None
        self._last_selected_input = None
        self._last_decision_internal_state = None
コード例 #3
0
    def __init__(self):
        # Desired state
        self.desired_state = InternalState()
        self.desired_state.set_state([0.5,1,1])
        # Initial internal state
        self.internal_state = InternalState([0.5,0.5,0.5])

        # Decision by prediction network
        self.decision_prediction_block = DecisionByPredictionBlock()
        self.decision_prediction_block.set_desired_state(self.desired_state)
        self.decision_prediction_block.set_internal_state(self.internal_state)

        # DEFAULT TRAINING, IT CAN LATER BE OVERRIDEN
        # Create a random training set so that the net can learn the relation prediction = (ei + choice.bcf)/2
        # We require a minimum of 18 points
        training_set = []
        # 3.2.4.1 todo: parallelize

        # Helper method, used to execute in parallel
        def __generate_training(index):
            ei = [random.random(), random.random(), random.random()]
            choice_bcf = [random.random(), random.random(), random.random()]
            prediction = [ei_j / 2.0 + choice_bcf_j / 2.0 for ei_j, choice_bcf_j in zip(ei, choice_bcf)]
            return ei + choice_bcf, prediction

        # Init thread's pool, with the determined processor number
        pool = Pool(DetectSystem().cpu_count())
        # Parallel execution
        training_set = pool.map(__generate_training, range(20))


        # for index in range(20):
        #     ei = [random.random(), random.random(), random.random()]
        #     choice_bcf = [random.random(), random.random(), random.random()]
        #     prediction = [ei_j / 2.0 + choice_bcf_j / 2.0 for ei_j, choice_bcf_j in zip(ei, choice_bcf)]
        #     training_set.append((ei + choice_bcf, prediction))

        # Remodel predictive net
        self.decision_prediction_block.remodel_predictive_net(training_set)

        self._inputs = None
        self._new_inputs = False
        self.decision = None
        self._last_decision_type = None
        self._last_selected_input = None
        self._last_decision_internal_state = None
コード例 #4
0
 def __init__(self):
     self.output = []
     self.shift_register1 = Lfsr(input("seed for the first RFSR:"),[8,12,20,25])
     self.shift_register2 = Lfsr(input("seed for the second RFSR:"),[21,16,24,31])
     self.shift_register3 = Lfsr(input("seed for the third RFSR:"),[4,24,28,33])
     self.shift_register4 = Lfsr(input("seed for the fourth RFSR:"),[4,28,36,39])
     self.r1 = Register(input("seed for the register R1:"))
     self.r2 = Register(self.r1.output)
     self.t1 = InternalState()
     self.t2 = InternalState()
     self.adder1 = Adder()
     self.adder2 = Adder()
     self.iz = Iz()
     self.xor_iz_t2 = Xor([self.t2.output,self.iz.output])
     self.xor_t1_xor = Xor([self.t1.output,self.xor_iz_t2.output])
     self.xor_zt = Xor([self.shift_register1.output,self.shift_register2.output,
                     self.shift_register3.output,self.shift_register4.output,self.r1.least_significant()])
コード例 #5
0
def main():
    my_state = InternalState()
    init()

    logging.info('start service ...')

    try:
        while (my_state.state is not STATE_MASTER):
            client = Client()
            my_state = client.run(4, my_state)
        master = Master()
        master.run(my_state)
    except KeyboardInterrupt:
        sys.exit()
コード例 #6
0
 def create_kernel(self):
     # snb
     self.snb = SensoryNeuralBlock("no_data", "no_data", self.project_id)
     self.snb.save("snb_s", "snb_h", self.project_id, self.brain)
     # Relational Neural Block
     self.rnb = RelNetwork(100)
     RelNetwork.serialize(self.rnb, "rnb", self.project_id)
     # Addition by memory network
     self.am_net = CulturalNetwork(100)
     CulturalNetwork.serialize(self.am_net, "am_net", self.project_id)
     # Syllables net
     self.syllables_net = CulturalNetwork(100)
     CulturalNetwork.serialize(self.syllables_net, "syllables_net",
                               self.project_id)
     # Words net
     self.words_net = CulturalNetwork(100)
     CulturalNetwork.serialize(self.words_net, "words_net", self.project_id)
     # Sight-Syllables rel network
     self.ss_rnb = RelNetwork(100)
     RelNetwork.serialize(self.ss_rnb, "ss_rnb", self.project_id)
     # Geometric Neural Block
     self.gnb = GeometricNeuralBlock()
     GeometricNeuralBlock.serialize(self.gnb, "gnb", self.project_id)
     ################ INTENTIONS ####################################################################################
     self.episodic_memory = EpisodicMemoriesBlock()
     EpisodicMemoriesBlock.serialize(self.episodic_memory,
                                     "episodic_memory", self.project_id)
     self.decisions_block = DecisionsBlock()
     DecisionsBlock.serialize(self.decisions_block, "decisions_block",
                              self.project_id)
     self.internal_state = InternalState()
     InternalState.serialize(self.internal_state, "internal_state",
                             self.project_id)
     self.desired_state = InternalState([0.75, 0.75, 0.75])
     InternalState.serialize(self.desired_state, "desired_state",
                             self.project_id)
コード例 #7
0
 def learn(self):
     # CORREGIR PARA QUE FUNCIONE CUANDO EL PATRON DEL HEARING NO SE APRENDE SINO QUE YA SE CONOCE
     self.snb.learn(self.h_knowledge_in, self.s_knowledge_in.get_pattern())
     learned_ids = self.snb.get_last_learned_ids()
     rel_knowledge = RelKnowledge(learned_ids[0], learned_ids[1])
     self.rnb.learn(rel_knowledge)
     RelNetwork.serialize(self.rnb, "persistent_memory/rnb.p")
     self.snb.save("persistent_memory/sight_snb.p", "persistent_memory/hearing_snb.p")
     ################ INTENTIONS ####################################################################################
     # New learned item will produce changes in internal state
     self.feed_internal_state(self._internal_state_in)
     # New learned item and passed internal state should be related as an episode
     internal_state_in = InternalState(self._internal_state_in)
     self.episodic_memory.bum()
     self.episodic_memory.check(learned_ids[1])
     self.episodic_memory.clack(internal_state_in)
     EpisodicMemoriesBlock.serialize(self.episodic_memory, "persistent_memory/episodic_memory.p")
コード例 #8
0
    # Memories
    MEMORIES_COUNT = 6
    memories = [CulturalGroup() for i in range(MEMORIES_COUNT)]
    import random

    bcf = []
    for i in range(MEMORIES_COUNT):
        memories[i].bum()
        memories[i].learn(i)
        bcf.append(BiologyCultureFeelings())
        new_state = [random.random(), random.random(), random.random()]
        bcf[i].set_state(new_state)
        memories[i].clack(bcf[i])
        print("Memory ", i, " bcf is",
              memories[i].get_tail_knowledge().get_state())

    d_block = DecisionsBlock()
    internal_state = InternalState()
    internal_state.set_state([0.5, 1, 1])
    d_block.set_internal_state(internal_state)
    desired_state = InternalState()
    desired_state.set_state([0.5, 1, 1])
    d_block.set_desired_state(desired_state)
    d_block.set_input_memories(memories)
    output = d_block.get_output_memory()
    print("Decisions Block output is ",
          output.get_tail_knowledge().get_state())
    print("made by ", d_block.conscious_block.get_last_decision_type())
    print("Unconscious decisions ")
    for mem in d_block.unconscious_output:
        print(mem.get_tail_knowledge().get_state())
コード例 #9
0
    # BIOLOGY ALARMS
    cdb.internal_state.set_state([0.9,1,1])
    cdb.set_inputs(inputs)
    print('-' * 60)
    print 'BIOLOGY ALARM'
    print 'Internal state: ', cdb.internal_state.get_state()
    print 'Decision is: ', cdb.get_decision(), ' made by ', cdb.get_last_decision_type()
    cdb.internal_state.set_state([0.1, 1, 1])
    cdb.set_inputs(inputs)
    print 'Internal state: ', cdb.internal_state.get_state()
    print 'Decision is: ', cdb.get_decision(), ' made by ', cdb.get_last_decision_type()

    # FEEDBACK TEST
    test = True
    internal_state = InternalState()
    cdb.internal_state.set_state([0.5, 1, 1])
    while test:
        print 'FEEDBACK TEST'
        print('-'*60)
        i0.set_state(input('Enter input #0 ([B,C,F]): '))
        i1.set_state(input('Enter input #1 ([B,C,F]): '))
        i2.set_state(input('Enter input #2 ([B,C,F]): '))
        cdb.set_inputs([i0, i1, i2])
        print "Internal state: ", cdb.internal_state.get_state()
        print "Decision: ", cdb.get_decision(), " made by ", cdb.get_last_decision_type()
        internal_state.set_state(input('Feedback new internal state ([B,C,F]): '))
        cdb.feedback(internal_state)
        cdb.set_inputs([i0, i1, i2])
        print "New decision would be: ", cdb.get_decision(), " made by ", cdb.get_last_decision_type()
        test = input("Continue testing? (True/False): " )
コード例 #10
0
            for outcome_j, desired_j in zip(outcome,
                                            self.desired_state.get_state()):
                distance += abs(desired_j - outcome_j)
            self.distances.append(distance)
        return self.distances.index(min(self.distances))


## @}
#

# Tests
if __name__ == '__main__':

    import random

    desired_state = InternalState()
    desired_state.set_state([0.5, 1, 1])
    internal_state = InternalState([0.5, 0.5, 0.5])

    decision_prediction = DecisionByPredictionBlock()
    decision_prediction.set_desired_state(desired_state)

    # Create a random training set so that the net can learn the relation prediction = (ei + choice.bcf)/2
    # We require a minimum of 18 points
    training_set = []
    for index in range(10):
        ei = [random.random(), random.random(), random.random()]
        choice_bcf = [random.random(), random.random(), random.random()]
        prediction = [
            ei_j / 2.0 + choice_bcf_j / 2.0
            for ei_j, choice_bcf_j in zip(ei, choice_bcf)