0

做以下条件的意思是一样的。据我所知,我认为它们是相同的。请指导我。

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)
4

1 回答 1

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 是等价的。从图形上看,这两种情况都可以用下图来说明。

在此处输入图像描述.

希望这能回答你的歧义。

于 2018-12-18T04:45:15.967 回答