来自张量层的 Tensorflow 随机分布

Tensorflow random distribution from tensor layer

我有一个 4D 数组,我试图从这个数组中 select 所有前三个维度,然后是第四个维度的随机分布

samples = np.unique( np.random.randint(subset_start, subset_end, size=50) )    
layer_tensor = model.layer_tensors[model_layer][:, :, :, samples]

这给了我:

ValueError: Shapes must be equal rank, but are 0 and 1
    **From merging shape 2 with other shapes. for 'strided_slice/stack_1' (op: 'Pack') with input shapes: [], [], [], [44].**

哪里

model.layer_tensors[model_layer].shape == (?,?,?,1024)

以前,我 select 是一个连续的值范围,其中

model.layer_tensors[model_layer][:, :, :, subset_start:subset_end]

是一个有效的陈述

也许 tf.gather 会有所帮助。

layer_tensor = tf.gather(model.layer_tensors[model_layer], samples, axis=-1)

尽管您应该考虑将样本生成为张量。