keras多输入多输出,keras训练过程的输出

  keras多输入多输出,keras训练过程的输出

  Keras可以通过其函数式API处理多个输入(甚至多个输出)。API的功能与顺序API相反(您之前几乎肯定是通过顺序类使用的),可以用来定义更复杂的非顺序模型,包括:

  多输入模型多输出模型是一种既有多输入又有多输出的模型。有向无环图是一种具有共享层的模型。例如,我们可以将简单的顺序神经网络定义为:

  模型=顺序()

  model.add(Dense(8,input_shape=(10,),activation=relu ))

  model.add(Dense(4,activation=relu ))

  Model.add (dense (1,activation= linear ))。这个网络是一个简单的前馈神经网络,没有10个输入。第一个隐藏层有8个节点,第二个隐藏层有4个节点,最后一个输出层用于回归。

  我们可以使用函数式API定义一个示例神经网络:

  输入=输入(shape=(10,))

  x=密集(8,激活=relu )(输入)

  x=Dense(4,activation=relu)(x)

  x=密集(1,激活=线性)(x)

  Model=Model(inputs,x)请注意我们不再依赖于顺序类。要查看Keras function API的强大功能,请考虑下面的代码,我们在其中创建了一个接受多个输入的模型:

  #定义两组输入

  inputA=Input(shape=(32,)

  inputB=Input(shape=(128,))

  #第一个分支对第一个输入进行操作

  x=Dense(8,activation=relu )(输入)

  x=Dense(4,activation=relu)(x)

  x=模型(输入=输入,输出=x)

  #第二个分支对第二个输入进行运算

  y=Dense(64,activation=relu)(inputB)

  y=密集(32,激活=relu)(y)

  y=密集(4,激活=relu)(y)

  y=模型(输入=输入b,输出=y)

  #合并两个分支的输出

  组合=concatenate([x.output,y.output])

  #应用FC层,然后在

  #组合输出

  z=Dense(2,activation=relu )(组合)

  z=密集(1,激活=线性)(z)

  #我们的模型将接受两个分支的输入

  #然后输出单个值

  Model=model (inputs=[x.input,y.input],outputs=z)在这里,可以看到我们为Keras神经网络定义了两个输入:

  输入:32-dim

  输入的第2行:128-DIM使用Keras的函数式API定义了一个简单的32-8-4网络。类似地,第3行定义了一个128-64-32-4网络。然后我们在第17行合并X和Y的输出。x和y的输出都是四维的,所以一旦我们把它们连接起来,我们就有了一个8维的向量。然后,我们在第21行和第22行应用两个完整的连接层。第一层有2个节点,然后ReLU激活,第二层只有一个节点线性激活(也就是我们的回归预测)。构建多输入模型的最后一步是定义模型对象,它:

  我们接受的两个输入将输出定义为最终的FC层集(即Z)。如果您想使用Keras来可视化模型架构,它将如下所示:

  注意,我们的模型有两个不同的分支。第一个分支接受我们的128维输入,而第二个分支接受32维输入。这些分支相互独立运行,直到它们被连接起来。从那里输出一个网络值。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: