def call (self, x):
Когда я вызываю свой режим (подкласс) в первый раз, я не могу проверить batch_size (None).
Если я хочу объединитьнесколько слоев, модель проверяет форму ввода.
, но не может
Как установить форму ввода модели подкласса?
model.build (input_shape), но этобыл неэффективен.
def call(self,x):
""" Forward """
# [x,y]=Lambda(lambda x:[x[0],x[1]], output_shape=[-1,self.opt.ncond,self.opt.nc,self.opt.height,self.opt.width])(x)
inputs = Reshape((self.opt.ncond * self.opt.nc, self.opt.height, self.opt.width))(x) # batch_size, shape
target = Reshape((self.opt.npred * self.opt.nc, self.opt.height, self.opt.width))(self.y)
g_pred_v = K.variable(self.deterministic(inputs), name="g_pred_v")
r=K.abs(g_pred_v-target) # residual
z=self.phi_network_conv(r)
s = self.deterministic.get_layer()[0](inputs)
h=concatenate([s,z], axis=1) # concatenate
# shape=K.int_shape(s)
# h=Reshape((shape[1]*2, shape[2],shape[3]))(h)
pred_f = self.f_network_decoder(h)
return pred_f
def get_target(self,y):
# input layer
self.y=y
Когда я впервые пытаюсь "train_on_batch", в проходе вперед, форма ввода ясна, а не [Нет, каналы, высота, ширина]