예제 #1
0
 def train(engine: Engine, ctx: Context):
     datas, targets = ctx.inputs
     ctx.datas, ctx.targets = datas.to(ctx.device), targets.to(ctx.device)
     ctx.outputs = ctx.net(ctx.datas)
     ctx.loss = ctx.criterion(ctx.outputs, ctx.targets)
     ctx.optimizer.zero_grad()
     ctx.loss.backward()
     ctx.optimizer.step()
예제 #2
0
 def debug_train(engine: Engine, ctx: Context):
     datas, targets = ctx.inputs
     ctx.datas, ctx.targets = datas.to(ctx.device), targets.to(ctx.device)
     ctx.timer.mark("to device")
     ctx.outputs = ctx.net(ctx.datas)
     ctx.timer.mark("forward")
     ctx.loss = ctx.criterion(ctx.outputs, ctx.targets)
     ctx.timer.mark("criterion")
     ctx.optimizer.zero_grad()
     ctx.loss.backward()
     ctx.timer.mark("backward")
     ctx.optimizer.step()
     ctx.timer.mark("step")
예제 #3
0
 def validation(engine: Engine, ctx: Context):
     datas, targets = ctx.inputs
     ctx.datas, ctx.targets = datas.to(ctx.device), targets.to(ctx.device)
     ctx.outputs = ctx.net(ctx.datas)
     ctx.loss = ctx.criterion(ctx.outputs, ctx.targets)