BendtorchLoad.train_read: def of bendtorch-load@1.3.0.0
Import: import bendtorch-load@1.3.0.0/main.bend as BendtorchLoad
Lines 188-196 of bendtorch-load@1.3.0.0/main.bend: https://jend.leeeet.dev/read.txt?path=bendtorch-load@1.3.0.0/main.bend&start_line=188&end_line=196
import Base
import bendtorch@1.3.0.0/main.bend as T
# The checkpoint layout is determined by the already initialized optimizer state, without a header:
# SGD: parameters; momentum: parameters, buffer; Adam/AdamW: parameters, m, v, 1 - b1^t, 1 - b2^t; AdamW with packed
# BF16 moments: parameters, the moments' tree (main.bend's pt_store), 1 - b1^t, 1 - b2^t, the whole file read.
def train_read(~P: Type, ~X: Type, ~Y: Type, ~S: Type, ~m: T.Layer
, +path: String, +base: U32, +copies: U32, +tail: U32, tr: T.Train
) -> IO(T.Train
):
do IO>:
require(U32.is_le(base, U32.div(U32.sub(4294967295, tail), copies)), "checkpoint exceeds 2^32 - 1 numbers")
+n : U32 = ((copies * base : U32) + tail : U32)
a : Array <- read(path, n)
return T.Train.restore(~P, ~X, ~Y, ~S, ~m, tr, a)
Uses (18):
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Array
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=F32
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=IO
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=IO.bind
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=IO.pure
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=String
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.add
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.div
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.is_le
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.mul
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.sub
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Unit
https://jend.leeeet.dev/definition.txt?path=bendtorch-load@1.3.0.0/main.bend&name=read
https://jend.leeeet.dev/definition.txt?path=bendtorch-load@1.3.0.0/main.bend&name=require
https://jend.leeeet.dev/definition.txt?path=bendtorch@1.3.0.0/main.bend&name=Layer
https://jend.leeeet.dev/definition.txt?path=bendtorch@1.3.0.0/main.bend&name=Train
https://jend.leeeet.dev/definition.txt?path=bendtorch@1.3.0.0/main.bend&name=Train.restore