在keras中将输入与常量向量连接起来。如何定义 batch_size

Concatenate input with constant vector in keras. how one define the batch_size

作为这个问题的后续:

我正在尝试使用建议的解决方案:

constant=K.variable(np.ones((1,10, 5)))
constant = K.repeat_elements(constant,rep=batch_size,axis=0)

并得到以下错误:

NameError: name 'batch_size' is not defined

我看不出如何在 keras 模型中定义 batch_size [未明确],以便可以连接符号层和常量层,以便将它们用作输入层。

获取动态批量大小:

batch_size = K.shape(your_tensor)[0]

但是 K.repeat_elements() 不接受 repTensor 值。但是,您可以使用 K.tile():

产生相同的结果
from keras.models import *
from keras import backend as K
import numpy as np

a = Input(shape=(10, 5))
batch_size = K.shape(a)[0]
constant = K.variable(np.ones((1,10, 5)))
constant = K.tile(constant, (batch_size, 1, 1))
print(constant)
# Tensor("Tile:0", shape=(?, 10, 5), dtype=float32)