【发布时间】:2018-05-02 14:09:40
【问题描述】:
我有一个形状的张量:
2 x 2 x 3 x 2
即:{玩家、回合、加注次数、采取的行动}
这是一个两人游戏,两轮后结束,最多可以进行 3 次加注,每次加注都包含有关所采取行动的信息。
我想创建一个代表游戏每一步的数组。所以我有关于每个玩家每次加注、每一轮的行动的信息。
有没有可能做这样的事情:
players = array[0, 1]
rounds = array[2, 3]
raises = array[4, 5, 6]
actions = array[7, 8]
niceAndHandyArray = someFunction(players, rounds, raises, actions)
# Which outputs something like this:
[
[0, [
2, [
4, [7, 8]
],
...
],
[1,
...
]
]
# And then access it like:
niceAndHandyAcrray[player_index][round_index][raise_index][action_index] = 1
# And pass it to my neural network later on as:
niceAndHandyArray.flatten()
【问题讨论】:
-
您的
players、rounds等数组在此处包含什么?不应该len(actions) == 24(2 x 2 x 3 x 2)? -
如果你使用有意义的值会很好,这样我们就可以知道你的结果数组中哪个是哪个。但是您似乎正在尝试在其中创建具有不同形状的元素,这在 keras 中的单个张量中是不可行的。
-
对不起,你是对的。向量长度为 24(稍后我必须连接一些额外的信息,这会添加一个长度为 6 的数组)。我尝试从给定的数组(玩家、回合、加注、动作)中创建“投注历史”。我会尽快修改我的问题。
-
您的数据是如何组织的?你真的有这样的数组吗?那你怎么知道哪个玩家有哪个动作?
-
也许只是
np.zeros((2,2,3,2))?
标签: python numpy tensorflow neural-network keras