load_npy numpy 数据加载

numpy 中的指针

更改单个元素,指针不变


整体赋值,指针改变


整体切片,指针不变


DQN-tensorflow 的代码

以下代码并不会改变相应的变量值,例如: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