我正在尝试实现一个层(通过lambda层),它执行以下numpy过程:
def func(x, n):
return np.concatenate((x[:, :n], np.tile(x[:, n:].mean(axis = 0), (x.shape[0], 1))), axis = 1)
Run Code Online (Sandbox Code Playgroud)
我被卡住了,因为我不知道如何获得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)
Run Code Online (Sandbox Code Playgroud) keras ×1