如何在 Flux 中手动设置图层的权重?该层是不可变的结构,因此它们不能直接更新:
> a = rand(Float64, (2, 3))
> d = Dense(3, 2, relu)
> d.W = a
ERROR: setfield! immutable struct of type Dense cannot be changed
该update!
函数假定使用渐变。虽然我可能可以将渐变矩阵组合在一起使用update!(x, x̄)
,但这似乎不是一个很好的解决方案。
理想情况下,我想编写一些函数来获取现有权重,计算新权重,然后设置这些新权重,例如d.W = func(d.W; args)