与多个输出层共享网络权重并非闻所未闻。我在 DeepMind 的Asynchronous Deep Learning论文上看到过,我也在这里使用过。
这个想法是共享所有层并且只有多个输出。但是,这可能会降低网络的准确性,就像通常的性能与准确性权衡一样。

要优化这一点,只需计算两个输出的损失并在输入优化器时将它们相加,就像这样
self.target_policy_fast_t = tf.placeholder('float32', [None, a_size], name='target_policy_fast_t')
self.loss_policy_fast = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=self.network.policy_fast_before_softmax, labels=self.loss_policy_fast_t))
self.target_policy_slow_t = tf.placeholder('float32', [None, a_size], name='target_policy_slow_t')
self.loss_policy_slow = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=self.network.policy_slow_before_softmax, labels=self.target_policy_slow_t))
self.loss = tf.reduce_mean(self.loss_policy_fast + self.loss_policy_slow, name='loss')