训练时的一般查询

时间:2018-12-18 04:19:38

标签: python-3.x keras deep-learning generative-adversarial-network

请确保下列条件相同。据我所知,我认为它们是相同的。请引导我。

def Model_a():
  return Model(inputs=inputs, outputs=outputs, name='Model1')
def Model_b():
  return Model(inputs=inputs, outputs=outputs, name='Model2')
def Model_1(Model_a, Model_b):
  return Model(inputs=inputs, outputs=[output1,output2])
def Model_2(Model_a, Model_b):
  return Model(inputs=inputs, outputs=outputs)

#Condition 1
Model_1.train_on_batch(x,[y,z])


#Condition 2
Model_2.train_on_batch(x,z)
Model_b.train_on_batch(x,y)

1 个答案:

答案 0 :(得分:1)

让一个输入有两个输出。 Model_a具有输出output_a,而Model_b具有输出output_b。

def Model_a(): 
      output_a =   ...  (layers of model_a)
      return Model(inputs=inputs, outputs=output_a, name='Model1')

  def Model_b():
      output_b =   ...   (layers of model_b)
      return Model(inputs=inputs, outputs=output_b, name='Model2')

现在,如果要定义一个模型,将两个输出合并到一个模型中,则为:

def Model_1(...):
  output_a =  ...     (layers of model_a)
  output_b =  ...     (layers of model_b) 
  return Model(inputs=inputs, outputs=[output_a,output_b])

然后条件1:

Model_1.train_on_batch(x,[y,z])

条件2:

Model_a.train_on_batch(x,z)
Model_b.train_on_batch(x,y)

在这种情况下,条件1和条件2是等效的。可以通过下图以图形方式显示这两个条件。

enter image description here

希望这能回答您的含糊不清。