如何在CNTK中训练具有多个输出层的网络?

Ark*_*rti 5 python cntk

目标:为图像分类任务训练如下图所示的神经网络.(输入尺寸可以在图像中看到.)

我已经能够创建网络,但面临以下问题:

  1. 指定丢失和分类错误函数.
  2. 指定要输入到train_minibatch字典的输出变量.

我正在使用生成器将数据提供给网络,从而train_minibatch用于提供数据.此生成器的输出是输入图像,以及包含1个热编码标签的4个项目的列表.

Ark*_*rti 6

我自己就能弄清楚。对于这种情况,我们必须output variables为每个分支定义单独的位置,然后分别将数据提供给它们。

考虑到这y是应该作为神经网络输出的4个元素的列表。我们将定义数据字典,如下所示

trainer.train_minibatch( { input_placeholder: x, output_placeholder0: y[0], output_placeholder1: y[1], output_placeholder2: y[2], output_placeholder3: y[3] } )

其他变量(例如损失,分类错误)可以是单个损失的简单总和(这取决于特定的用例)

有关更多详细信息,请查看我创建上述网络,输入数据并训练模型的笔记本