@@ -152,14 +152,18 @@ end
152152function _rebuild!(x, off, flat:: AbstractVector , len = length(flat); walk = _Trainable_biwalk(), kw... )
153153 len == length(flat) || throw(DimensionMismatch(" Rebuild expected a vector of length $len , got $(length(flat)) " ))
154154 fmap(x, off; exclude = isnumeric, walk, kw... ) do y, o
155- copyto!(y, _getat(y, o, flat, view))
155+ # copyto!(y, _getat_view(y, o, flat))
156+ copyto!(y, 1 , flat, o+ 1 , length(y))
156157 end
157158 x
158159end
159160
160- _getat(y:: Number , o:: Int , flat:: AbstractVector , _... ) = ProjectTo(y)(flat[o + 1 ])
161- _getat(y:: AbstractArray , o:: Int , flat:: AbstractVector , get= getindex) =
162- ProjectTo(y)(reshape(get(flat, o .+ (1 : length(y))), axes(y))) # ProjectTo is just correcting eltypes
161+ _getat(y:: Number , o:: Int , flat:: AbstractVector ) = ProjectTo(y)(flat[o + 1 ])
162+ _getat(y:: AbstractArray , o:: Int , flat:: AbstractVector ) =
163+ ProjectTo(y)(reshape(flat[o .+ (1 : length(y))], axes(y))) # ProjectTo is just correcting eltypes
164+
165+ # _getat_view(y::AbstractArray, o::Int, flat::AbstractVector) =
166+ # view(flat, o .+ (1:length(y)))
163167
164168struct _Trainable_biwalk <: AbstractWalk end
165169
0 commit comments