예제 #1
0
 def space_init(self, agent_space, body_a, global_nets):
     '''Post init override for space env. Note that aeb is already correct from __init__'''
     self.agent_space = agent_space
     self.body_a = body_a
     self.aeb_space = agent_space.aeb_space
     self.nanflat_body_a = util.nanflatten(self.body_a)
     for idx, body in enumerate(self.nanflat_body_a):
         if idx == 0:  # NOTE set default body
             self.body = body
         body.agent = self
         body.nanflat_a_idx = idx
         MemoryClass = getattr(memory, ps.get(self.agent_spec,
                                              'memory.name'))
         body.memory = MemoryClass(self.agent_spec['memory'], body)
     self.body_num = len(self.nanflat_body_a)
     AlgorithmClass = getattr(algorithm,
                              ps.get(self.agent_spec, 'algorithm.name'))
     self.algorithm = AlgorithmClass(self, global_nets)
     # after algo init, transfer any missing variables from default body
     for idx, body in enumerate(self.nanflat_body_a):
         for k, v in vars(self.body).items():
             if util.gen_isnan(getattr(body, k, None)):
                 setattr(body, k, v)
예제 #2
0
def test_gen_isnan(v, isnan):
    assert util.gen_isnan(v) == isnan
예제 #3
0
def test_gen_isnan(v, isnan):
    assert util.gen_isnan(v) == isnan