Skip to content

Commit 5b59ff4

Browse files
committed
update
1 parent f25236a commit 5b59ff4

File tree

1 file changed

+24
-23
lines changed

1 file changed

+24
-23
lines changed

chapter8_Application/Deep-Dream/backward/backward.py

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
import torch as t
2-
from torch.autograd import Variable as v
1+
import torch
2+
from torch.autograd import Variable
33

44
# simple gradient
5-
a = v(t.FloatTensor([2, 3]), requires_grad=True)
5+
a = Variable(torch.FloatTensor([2, 3]), requires_grad=True)
66
b = a + 3
77
c = b * b * 3
88
out = c.mean()
99
out.backward()
10-
print('*'*10)
10+
print('*' * 10)
1111
print('=====simple gradient======')
1212
print('input')
1313
print(a.data)
@@ -17,43 +17,44 @@
1717
print(a.grad.data)
1818

1919
# backward on non-scalar output
20-
m = v(t.FloatTensor([[2, 3]]), requires_grad=True)
21-
n = v(t.zeros(1, 2))
22-
n[0, 0] = m[0, 0] ** 2
23-
n[0, 1] = m[0, 1] ** 3
24-
n.backward(t.FloatTensor([[1, 1]]))
25-
print('*'*10)
20+
m = Variable(torch.FloatTensor([[2, 3]]), requires_grad=True)
21+
n = Variable(torch.zeros(1, 2))
22+
n[0, 0] = m[0, 0]**2
23+
n[0, 1] = m[0, 1]**3
24+
n.backward(torch.FloatTensor([[1, 1]]))
25+
print('*' * 10)
2626
print('=====non scalar output======')
2727
print('input')
2828
print(m.data)
2929
print('input gradients are')
3030
print(m.grad.data)
3131

3232
# jacobian
33-
j = t.zeros(2 ,2)
34-
k = v(t.zeros(1, 2))
33+
j = torch.zeros(2, 2)
34+
k = Variable(torch.zeros(1, 2))
3535
m.grad.data.zero_()
36-
k[0, 0] = m[0, 0] ** 2 + 3 * m[0 ,1]
37-
k[0, 1] = m[0, 1] ** 2 + 2 * m[0, 0]
38-
k.backward(t.FloatTensor([[1, 0]]), retain_variables=True)
36+
k[0, 0] = m[0, 0]**2 + 3 * m[0, 1]
37+
k[0, 1] = m[0, 1]**2 + 2 * m[0, 0]
38+
k.backward(torch.FloatTensor([[1, 0]]), retain_variables=True)
3939
j[:, 0] = m.grad.data
4040
m.grad.data.zero_()
41-
k.backward(t.FloatTensor([[0, 1]]))
41+
k.backward(torch.FloatTensor([[0, 1]]))
4242
j[:, 1] = m.grad.data
4343
print('jacobian matrix is')
4444
print(j)
4545

4646
# compute jacobian matrix
47-
x = t.FloatTensor([2, 1]).view(1, 2)
48-
x = v(x, requires_grad=True)
49-
y = v(t.FloatTensor([[1, 2], [3, 4]]))
47+
x = torch.FloatTensor([2, 1]).view(1, 2)
48+
x = Variable(x, requires_grad=True)
49+
y = Variable(torch.FloatTensor([[1, 2], [3, 4]]))
5050

51-
z = t.mm(x, y)
52-
jacobian = t.zeros((2, 2))
53-
z.backward(t.FloatTensor([[1, 0]]), retain_variables=True) # dz1/dx1, dz2/dx1
51+
z = torch.mm(x, y)
52+
jacobian = torch.zeros((2, 2))
53+
z.backward(
54+
torch.FloatTensor([[1, 0]]), retain_variables=True) # dz1/dx1, dz2/dx1
5455
jacobian[:, 0] = x.grad.data
5556
x.grad.data.zero_()
56-
z.backward(t.FloatTensor([[0, 1]])) # dz1/dx2, dz2/dx2
57+
z.backward(torch.FloatTensor([[0, 1]])) # dz1/dx2, dz2/dx2
5758
jacobian[:, 1] = x.grad.data
5859
print('=========jacobian========')
5960
print('x')

0 commit comments

Comments
 (0)