我有两个张量a
和b
,它们的形状如下
>>K.int_shape(a)
(None, 5 , 2)
>>K.int_shape(b)
(None, 5)
我想得到的是一个张量c
>>K.int_shape(c)
(None, 2)
这样沿轴0选择b
中最大元素的索引,并使用该索引沿轴1索引a
。
示例-假设我有
a = np.array([[[2, 7],
[6, 5],
[9, 9],
[4, 2],
[5, 9]],
[[8, 1],
[8, 8],
[3, 9],
[9, 2],
[9, 1]],
[[3, 9],
[6, 4],
[5, 7],
[5, 2],
[5, 6]],
[[7, 5],
[9, 9],
[9, 5],
[9, 8],
[5, 7]],
[[6, 3],
[1, 7],
[3, 6],
[8, 2],
[3, 2]],
[[6, 4],
[5, 9],
[8, 6],
[5, 2],
[5, 2]],
[[2, 6],
[6, 5],
[3, 1],
[6, 2],
[6, 4]]])
而且我有
b = np.array([[ 0.27, 0.25, 0.23, 0.06, 0.19],
[ 0.3 , 0.13, 0.17, 0.2 , 0.2 ],
[ 0.08, 0.04, 0.40, 0.36, 0.12],
[ 0.3 , 0.33, 0.11, 0.07, 0.19],
[ 0.15, 0.21, 0.30, 0.12, 0.22],
[ 0.3 , 0.13, 0.23, 0.1 , 0.23],
[ 0.26, 0.35 , 0.25 , 0.07, 0.07]])
我对c
的期望是什么
c = np.zeros((7,2))
for i in range(7):
ind = np.argmax(b[i, :])
c[i, :] = a[i, ind, :]
c
array([[ 2., 7.],
[ 8., 1.],
[ 5., 7.],
[ 9., 9.],
[ 3., 6.],
[ 6., 4.],
[ 6., 5.]])
https://stackoverflow.com/questions/50648271
复制相似问题