我有一个网络,其中有一个像unet一样的结构。我想在两个输入之间共享卷积层。我的代码示例:
conv_layer = Conv(parameters)
out1 = con_layer(input1)
out2 = con_layer(input2)
这部分是否创建两个输出,每个输出仅取决于对应的输入和共享权重?或者将输入连接起来并从卷积中传递出来?该层的两次调用中的权重是否相同? 还有,关于学习的问题。当涉及反向传播时,损耗是否从共享层传播一次?学习有什么变化吗?
答案 0 :(得分:0)
首先,U-Net完全不具有任何共享层。它使用跳过连接和串联来重用功能。
共享层看起来像这样
x --> F(x)
==> G(F(x),F(y))
y --> F(y)
这部分是否创建两个输出,每个输出仅取决于相应的输入和共享的权重?
它是否连接输入并通过卷积传递它们?
权重是否相同?
涉及反向传播时,损耗是否从共享层传播一次?学习有什么变化吗?
一些有用的读物:http://neural.vision/blog/deep-learning/backpropagation-with-shared-weights/
https://datascience.stackexchange.com/questions/27506/back-propagation-in-cnn