Cartpole ValueError 上的 CEM:输入必须是 1- 或 2-d

时间:2021-05-26 23:39:59

标签: python numpy reinforcement-learning cross-entropy

希望大家一切都好。 我正在使用交叉熵方法制作一个购物车杆,但是当我遇到这个错误时我很困惑。

    def sampleAgents(self):
        self.paramSize = 4
        self.nPop = 100
        self.mu = np.zeros(self.paramSize)
        self.cov = np.ones(self.paramSize)
        
        #Sample parameters from Gaussian dist. (with diagonal cov. matrix) using "self.mu" and "self.cov"
        samp = np.random.multivariate_normal(self.mu, np.diag(self.cov), self.nPop)
        
        #Assign samples to "self.paramSet". (self.paramSet.shape = (self.nPop, self.paramSize))
        self.paramSet = samp

运行此程序时,出现错误 ValueError: Input must be 1- or 2-d. 但是当我尝试在最后添加 print(self.paramSet) 时(看起来像这样)

    def sampleAgents(self):
        self.paramSize = 4
        self.nPop = 100
        self.mu = np.zeros(self.paramSize)
        self.cov = np.ones(self.paramSize)
        
        #Sample parameters from Gaussian dist. (with diagonal cov. matrix) using "self.mu" and "self.cov"
        samp = np.random.multivariate_normal(self.mu, np.diag(self.cov), self.nPop)
        
        #Assign samples to "self.paramSet". (self.paramSet.shape = (self.nPop, self.paramSize))
        self.paramSet = samp
        print(self.paramSet) 

并在该打印(self.paramSet)中放置断点并进行调试,它工作正常。甚至它们都显示了我想要的大小、暗淡和价值。

有人可以帮我修复代码吗?提前致谢!

0 个答案:

没有答案
相关问题