コード例 #1
0
 def test_sgd_gpu(self):
   np.random.seed(1337)
   model = TinyBobNet()
   [x.cuda_() for x in model.parameters()]
   optimizer = optim.SGD(model.parameters(), lr=0.001)
   train(model, optimizer, steps=1000, gpu=True)
   evaluate(model, gpu=True)
コード例 #2
0
def train(model):
    optim = optimizer.SGD([model.c1, model.c2, model.l1], lr=0.001)
    iters = 5 * classes
    BS = 32
    log_skip = 5
    print(f"training with {classes} emojis over {BS * iters} iters batched by {BS}")
    import time

    t0 = time.time()
    for _ in range(iters):
        samp = np.random.randint(0, files.shape[0], size=(BS))
        img = to_gpu(Tensor(perturb(files[samp])))
        out = model.forward(img)
        y = np.zeros((BS, classes), dtype=np.float32)
        # cross entropy loss trick
        y[range(y.shape[0]), samp] = -classes
        y = to_gpu(Tensor(y))
        loss = out.mul(y).mean()
        optim.zero_grad()
        loss.backward()
        optim.step()
        if _ % log_skip == 0:
            t1 = time.time()
            iters_sec = log_skip * BS / (t1 - t0)
            minutes = (BS * (iters - _) / iters_sec) / 60
            sys.stdout.write("\u001b[1000D")
            sys.stdout.write("\u001b[0K")
            sys.stdout.write(
                f"[{100 * _ / iters:.2f}% ~{int(minutes)}min left] loss={loss.cpu().data[0]:.2f}"
            )
            sys.stdout.write(
                f" (running @ {iters_sec:.2f} iters/s, feel free to kill at any time)"
            )
            sys.stdout.flush()
        t0 = t1
コード例 #3
0
 def test_sgd(self):
     np.random.seed(1337)
     model = TinyBobNet()
     optimizer = optim.SGD(model.parameters(), lr=0.001)
     train(model,
           X_train,
           Y_train,
           optimizer,
           steps=1000,
           device=self.device)
     assert evaluate(model, X_test, Y_test, device=self.device) > 0.95
コード例 #4
0
 def test_sgd(self):
     np.random.seed(1337)
     model = TinyBobNet()
     optimizer = optim.SGD(model.parameters(), lr=0.001)
     train(model, optimizer, steps=1000, gpu=self.gpu)
     evaluate(model, gpu=self.gpu)
コード例 #5
0
ファイル: test_mnist.py プロジェクト: EmersonMax139/DumbTorch
 def test_sgd(self):
   np.random.seed(1337)
   model = TinyBobNet()
   optimizer = optim.SGD([model.l1, model.l2], lr=0.001)
   train(model, optimizer, steps=1000)
   evaluate(model)