ElegantRL icon indicating copy to clipboard operation
ElegantRL copied to clipboard

ActorFixSAC or AgentBase的__init__有bug?

Open flhang opened this issue 2 years ago • 1 comments

  1. 运行 tutorial_LunarLanderContinuous_v2.ipynb 报错:
  2. ElegantRL\elegantrl\agents\AgentBase.py:58, in AgentBase.init(self, net_dim, state_dim, action_dim, gpu_id, args) 56 cri_class = getattr(self, "cri_class", None) 57 print(act_class) ---> 58 self.act = act_class(net_dim, state_dim, action_dim).to(self.device) 59 self.cri = cri_class(net_dim, state_dim, action_dim).to(self.device)
    60 if cri_class else self.act 62 '''optimizer'''

TypeError: init() missing 1 required positional argument: 'action_dim' 3. 看了一下,调用的是 net.py ActorFixSAC 的def init(self, mid_dim, num_layer, state_dim, action_dim): 4. 多了一个参数num_layer, 而且其它地方也没有用, 应该要把这个里删除吧。 5. 我修改AgentBase 的init 总算成功运行了:self.act = act_class(net_dim, self.num_layer, state_dim, action_dim).to(self.device) self.cri = cri_class(net_dim, self.num_layer, state_dim, action_dim).to(self.device)

flhang avatar Jan 02 '23 05:01 flhang

我提交了这个PR去解决这个问题↓ Fix bug for vec env and agentbase init #248

https://github.com/AI4Finance-Foundation/ElegantRL/pull/248

这个问题是 AgentBase.init() 出现bug 以及 explore_one_env, explore_vec_env 产生冲突引发的。是我们修复bug不够及时,抱歉。

Yonv1943 avatar Jan 09 '23 02:01 Yonv1943