是否有可能制作一个“分叉路径”神经网络?

人工智能 神经网络 机器学习 卷积神经网络 图像识别
2021-10-22 06:37:31

我想制作一个网络,特别是用于图像识别的 CNN,它接受一个输入,以相同的方式处理多个层,然后在某些时候分裂,然后得到两个不同的输出。是否可以创建这样的网络?它看起来像这样:

Input -> Conv -> Pool -> Conv -> Pool ---------> Dense -> Output 1

                                  ||

                                     ----> Dense -> Output 2

IE 它在第二个池化层之后分裂成单独的全连接层。当然,它必须对两个输出都进行训练,以便使用这些公共卷积层在两个单独的输出上产生最小的错误。另外,我正在使用 Python Keras,如果有某种方法可以以某种方式使用 Keras 来做到这一点,那将会有所帮助。谢谢!

1个回答

Keras 函数式 API 可以帮助您定义复杂的模型。

您可以在此处找到文档: https ://keras.io/getting-started/functional-api-guide/ 。

例如:

# prev_layer is the layer you want to be forked
fork1 = Dense(32, activation='relu')(prev_layer)
fork2 = Dense(32, activation='relu')(prev_layer)

# you do some operations on fork1 to get output1
# and on fork2 to get output2

model = Model(inputs=input_layer, outputs=[output1, output2])