整体赋值,指针改变
整体切片,指针不变
以下代码并不会改变相应的变量值,例如:self.actions
for idx, (name, array) in enumerate( zip(['actions', 'rewards', 'terminals', 'prestates', 'poststates', 'count', 'current'], [self.actions, self.rewards, self.terminals, self.prestates, self.poststates, self.count, self.current])): array = load_npy(os.path.join(self.memory_dir, name))
如果有:
self.actions = np.empty(self.memory_size, dtype = np.uint8)那么 self.actions 会获得随意值(由于 np.empty 函数)
将其中的代码更改为,从而保持了指针不变:
array[:] = load_npy(os.path.join(self.memory_dir, name))要注意,对于 screens 这样大容量的变量加载,不要使用切片的方式(未知原因):
screens[:] = load_npy(os.path.join(memory_dir, name))而应该单独拿出来赋值:
screens = load_npy(os.path.join(memory_dir, name))
墨之科技,版权所有 © Copyright 2017-2027
湘ICP备14012786号 邮箱:ai@inksci.com