I needed to use .*= to “broadcast” the change instead of *=.
Consider:
julia> using Flux
julia> nn = Dense(3, 3)
Dense(3, 3)
julia> params(nn)
Params([Float32[-0.1867888 0.45788264 0.42513847; 0.29547477 0.8505957 0.6445496; 0.31435943 -0.9087379 0.5611925], Float32[0.0, 0.0, 0.0]])
julia> params(nn)[1] .*= 0
3×3 Array{Float32,2}:
-0.0 0.0 0.0
0.0 0.0 0.0
0.0 -0.0 0.0
julia> params(nn)
Params([Float32[-0.0 0.0 0.0; 0.0 0.0 0.0; 0.0 -0.0 0.0], Float32[0.0, 0.0, 0.0]])