Как я могу установить форму ввода модели подкласса? - PullRequest
1 голос
/ 26 марта 2019

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", в проходе вперед, форма ввода ясна, а не [Нет, каналы, высота, ширина]

...