在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()
不接受 rep
的 Tensor
值。但是,您可以使用 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)
作为这个问题的后续:
我正在尝试使用建议的解决方案:
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()
不接受 rep
的 Tensor
值。但是,您可以使用 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)