- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用稳定基线 3 来训练代理玩游戏 Connect 4游戏。当代理作为第二个玩家开始游戏时,我试图考虑这种情况。
self.env = self.ks_env.train([opponent, None])
当我尝试运行代码时,出现以下错误:
invalid multinomial distribution (encountering probability entry < 0)
/opt/conda/lib/python3.7/site-packages/torch/distributions/categorical.py in sample(self, sample_shape)
samples_2d = torch.multinomial(probs_2d, sample_shape.numel(), True).T
但是,当代理是第一个玩家时没有问题:
self.env = self.ks_env.train([None, opponent])
我认为问题与 Pytorch 库有关。我的问题是如何解决这个问题?
最佳答案
检查您提供的代码后,问题似乎不是来自哪个代理启动游戏,而是来自游戏完成后没有重新启动环境。
我刚刚更改了您的步骤功能,如图所示:
def step(self, action):
# Check if agent's move is valid
is_valid = (self.obs['board'][int(action)] == 0)
if is_valid: # Play the move
self.obs, old_reward, done, _ = self.env.step(int(action))
reward = self.change_reward(old_reward, done)
else: # End the game and penalize agent
reward, done, _ = -10, True, {}
if done:
self.reset()
return board_flip(self.obs.mark,
np.array(self.obs['board']).reshape(1, self.rows, self.columns) / 2),
reward, done, _
有了这个,模型就能够训练,您可以使用以下代码段检查它是否按预期工作:
done = True
for step in range(500):
if done:
state = env.reset()
state, reward, done, info = env.step(env.action_space.sample())
print(reward)
链接到我的
your notebook 版本
关于Pytorch - 运行时错误 : invalid multinomial distribution (encountering probability entry < 0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64441708/
我编写了一些图像分析软件,可以确定它认为是图像中最主要对象的基本形状、颜色和尺寸。 我还创建了一个对象数据库供算法选择: Item | Shape | Colors | Width range | H
我有一个仪器可以通过或失败一系列的三个测试。仪器必须通过所有三个测试才能被视为成功。我如何使用贝叶斯推理来查看基于证据的每个案例通过的概率? (基于依次通过每个过去测试的仪器)。 只看第一次测试 -
with Ada.Text_IO; use Ada.Text_IO; with Ada.Integer_Text_IO; use Ada.Integ
User-Item矩阵中的值是否可以是0和1之类的二进制值,表示“未购买” -vs-“已购买”? 而且,如果在矩阵上应用潜在因子模型,预测值(例如0.8)是否可以代表用户行为的概率(即,既没有购买也没
with Ada.Text_IO; use Ada.Text_IO; with Ada.Integer_Text_IO; use Ada.Integ
我正在尝试在遗传算法中实现非均匀概率分布。 在遗传程序的实现中,我有一个实验有 3 个结果,每个结果都有不同的概率。比方说,一个结果的概率是 0.85,另一个是 0.01,最后一个是 0.14? P.
我需要使用详细信息屏幕计算可能的结果数量。 详细信息是:我们有 1 个文本框,其中必须输入 0 到 7 之间的任何数字。结果有 13 个类别,但所有结果的平均值应等于在文本框中输入的数字。 例如:文本
一道面试题: 给定函数 f(x),1/4 次返回 0,3/4 次返回 1。用 f(x) 写一个函数 g(x),1/2 次返回 0,1/2 次返回 1。 我的实现是: function g(x) = {
我正在使用 Python 和 scikit-learn 处理具有不同分类器的多类分类问题。我想使用预测概率,基本上是为了比较特定情况下不同分类器的预测概率。 我开始阅读有关“校准”的内容,例如在 sc
我在 Tensorflow Probability 中使用混合多项式离散选择模型。该函数应在 3 个备选方案中进行选择。所选择的备选方案由 CHOSEN(#observationsx3 张量)指定。下
我正在尝试在远程虚拟机上启动Zookeeper。我经常在项目中使用它,并且在启动Zookeeper时没有任何问题。但是最近,当我尝试启动服务器时,出现了错误。 当我启动./zkServer.sh时,它
我有一个 Ghost++ 机器人,用于托管 DotA 游戏(魔兽争霸 3 map ,5 名玩家对 5 名玩家)。我试图想出好的公式来平衡根据他们的记录参加比赛的球员(我有几千场比赛的比赛历史)。我熟悉
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
我无法理解 Tensorflow 概率中的双射器。如何使用它们。 standard_gumbel = tfd.TransformedDistribution( distribution=tfd.Exp
我编写了以下算法,旨在通过“强力”方法解决到达时间延迟问题。问题如下:给定三个接收器在一个平面中的已知位置以及某个信号的传播速度,请仅知道每个接收器“看到”信号的时间来确定信号源的位置。 该算法的工作
我刚刚安装了 Homebrew。当我运行 brew doctor 时,我得到了这个 Warning: Some directories in /usr/local/share/man aren't w
我刚刚在 cppreference 上阅读了一些关于 C++ 中的属性的内容.他们在那里提到了 probable(true) 属性,现在我想知道它有什么用。遗憾的是,我无法在网上找到更多信息。 这是处
我正在尝试 sample(),但是每当我在其中使用自定义概率时,它都会不断显示“不正确的概率数” 我已经尝试了几乎所有的东西,但仍然卡住了。请指导我我做错了什么.. 代码: sample(10:50,
我的软件在几个数据库上运行,所以我需要通用(值得注意的是,我认为“不同”的解决方案可能有效,但这不是标准的)。 假设我有两个表定义为: Table A: id, time (pk: id) Table
Closed. This question needs details or clarity。它当前不接受答案。 想改善这个问题吗?添加详细信息,并通过editing this post阐明问题。 7
我是一名优秀的程序员,十分优秀!