Untitled

Programming GPUs

Deep Learning Software

Pytorch

import torch
N, D_in, H, D_out = 64, 1000, 100,10 

x = torch.randn(N, D_in)
y = torch.randn(N, D_out)
w1 = torch.randn(D_in, H, requires_grad=True)
w2 = torch.randn(H, D_out, requires_grad=True)

learn_rate= 1e-16

for t in range(500):
    y_pred = x.mm(w1).clamp(min=0).mm(w2)
    loss = (y_pred-y).pow(2).sum()
    
    loss.backward()
  
    with torch.no_grad():
        w1 -= learn_rate  * w1.grad
        w2 -= learn_rate  * w2.grad
        w1.grad.zero_()
        w2.grad.zero_()

Static Vs Dynamic Graphs

Untitled