Я создаю определенный слой keras, используя лямбда-функцию, как я могу получить динамический batch_size
в функции?
Я много раз пытался решить эту проблему, но все не удалось.
def minus(inputs):
x,y = inputs
batch_size=K.shape(x)[0]
e = K.get_variable_shape(x)
for k in range(e[0]):
for i in range(e[1]):
for j in range(e[2]):
if x[k][i][j]==0:
K.update(x[k][i][j], y[k][i][j])
return x
def mymodel():
inpA = keras.layers.Input(shape=(10,8),name='InputLayerA')
inpB = keras.layers.Input(shape=(10,8),name='InputLayerB')
print(inpA.shape)
middle = keras.layers.Lambda(minus,name='minus')([inpA,inpB])
ae = keras.Model([inpA,inpB],middle)
ae.summary()
return ae
Когда я создаю новую модель, например ae = mymodel()
.I, за исключением нового тензора x, но на самом деле это сообщение об ошибке: 'NoneType' object cannot be interpreted as an integer
.