4
我想实现一个层(通过拉姆达层),这是做了以下numpy的过程:如何获得拉姆达层内批量大小
def func(x, n):
return np.concatenate((x[:, :n], np.tile(x[:, n:].mean(axis = 0), (x.shape[0], 1))), axis = 1)
我坚持,因为我不知道如何查看x的第一维(这是批量大小)的大小。后端功能int_shape(x)
返回(None, ...)
。
所以,如果我知道的batch_size,相应keras程序是:
def func(x, n):
return K.concatenate([x[:, :n], K.tile(K.mean(x[:, n:], axis=0), [batch_size, 1])], axis = 1)
您必须在代码的某处设置'batch_size',只需使用该变量即可。我错过了什么吗? –
在我的设置中,每个批次都有其自己的大小。 – felagund
我试过了,但是K.int_shape(x)[0] =无。我怀疑int_shape返回的大小不是用于变化的批次,而是图层的输入形状。这是(无,n1,n2,...),因为第一维是批量大小,它可以是任何值。 – felagund