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



作为这个问题的后续:

在 keras 中使用常量向量连接输入

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

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)

最新更新