Skip to content
This repository was archived by the owner on Apr 23, 2025. It is now read-only.

Commit 1f27048

Browse files
authored
[WordSeg] Fix pullback for Array.update(at:to:). (#653)
The pullback of `Array.update(at:to:)` resets `dSelf.base[index]` to a zero value. For correctness, it should use the value of `self[index].zeroTangentVector` before the update occurs, not `dElement.zeroTangentVector`.
1 parent 0874d7b commit 1f27048

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

Models/Text/WordSeg/Model.swift

+2-1
Original file line numberDiff line numberDiff line change
@@ -335,10 +335,11 @@ extension Array {
335335
value: (),
336336
pullback: (inout TangentVector) -> Element.TangentVector
337337
) where Element: Differentiable {
338+
let elementZero = self[index].zeroTangentVector
338339
update(at: index, to: value)
339340
func pullback(_ dSelf: inout TangentVector) -> Element.TangentVector {
340341
let dElement = dSelf[index]
341-
dSelf.base[index] = dElement.zeroTangentVector
342+
dSelf.base[index] = elementZero
342343
return dElement
343344
}
344345
return ((), pullback)

0 commit comments

Comments
 (0)