想象一下,我有一个形状张量,(batch_size, a, ... , c, d, e)
其中 a, ... ,c,d,e 是定义的整数。例如(batch_size, 500, 3, 2, 2, 69)
或(batch_size, 2, 2)
。
我的问题是针对所有张量的,但让我们继续举例tensor1.get_shape() = (?, 500, 3, 2, 2, 69)
鉴于我有tensor2
包含tensor2.get_shape() = (?, 500, 3, 2, 2, 14)
最后一个轴的索引tensor1
,我有两个问题:
1)我想从 构造一个tensor1
形状(?, 500, 3, 2, 2, 69)
的面具tensor2
。例如,沿最后一个轴的可能行将tensor2
是[1,8,3,68,2,4,58,19,20,21,26,48,56,11]
,但由于tensor2
是根据tensor1
这些索引构造的,因此对于新输入有所不同。这些是必须保留的最后一个轴的索引tensor1
。其他一切都必须被掩盖。
2)鉴于我有形状的掩码, (?, 500, 3, 2, 2, 69)
我tensor1
如何在保持批量大小维度的同时屏蔽掉不需要的值?被屏蔽的张量应该有 shape (?, 500, 3, 2, 2, 14)
。
keras 或 numpy 中的答案也很简洁,虽然知道如何在 numpy 中解决问题并不能解决我的问题,但我仍然想知道。