У меня есть функциональная модель, которая создает несколько шлюзов в цикле в кератах со слоем Lambda
:
predictions = []
for ii, kk in enumerate(label_cols):
slicer = Lambda(lambda x: x[:,:,:,ii:ii+1],
output_shape=gates_shape[:-2]+(1,),
name='slice_'+kk)
gate_ = slicer(gates)
...
prediction = Dense(n_classes[kk], activation=final_activation, name=kk)(x)
predictions.append(prediction)
Когда я пытаюсь загрузить модель, она жалуется:
/anaconda3/lib/python3.6/site-packages/keras/layers/core.py in call(self, inputs, mask)
691 if has_arg(self.function, 'mask'):
692 arguments['mask'] = mask
--> 693 return self.function(inputs, **arguments)
694
695 def compute_mask(self, inputs, mask=None):
/anaconda3/lib/python3.6/site-packages/keras/layers/core.py in <lambda>(x)
334 print('gates_shape', gates_shape)
335 for ii, kk in enumerate(prms.label_cols):
--> 336 slicer = Lambda(lambda x: x[:,:,:,ii:ii+1],
337 output_shape=gates_shape[:-2]+(1,),
338 name='slice_'+kk)
NameError: name 'ii' is not defined
Все работало до того, как я добавил Lambda
.Как правильно это сделать?