我最近经历过很多火炬代码。我一直注意到,通常在构建模型之后,它被克隆,如下面的代码所示:
InternalViewResolver
prefix
是一个构建的模型。
很难理解为什么要这样做?
此代码用于在网络上执行微调。来自this存储库(第122行到第126行)。
答案 0 :(得分:1)
当您克隆模型并指定一些其他参数(如'weight
等)时,新模型将与原始模型共享这些参数。因此,在您的情况下,模型siamese_1
和siamese_2
会分享它们的权重,偏差和相应的渐变。
在您看到的代码中,作者希望创建一个网络,其中两个并行网络共享其权重,这就是他们使用clone
函数的原因。