<s> import autograd . numpy as np <EOL> import autograd . numpy . random as npr <EOL> from autograd . util import check_grads <EOL> from autograd import grad <EOL> npr . seed ( <NUM_LIT:1> ) <EOL> def test_getter ( ) : <EOL> def fun ( input_list ) : <EOL> A = np . sum ( input_list [ <NUM_LIT:0> ] ) <EOL> B = np . sum ( input_list [ <NUM_LIT:1> ] ) <EOL> C = np . sum ( input_list [ <NUM_LIT:1> ] ) <EOL> return A + B + C <EOL> d_fun = grad ( fun ) <EOL> input_list = [ npr . randn ( <NUM_LIT:5> , <NUM_LIT:6> ) , <EOL> npr . randn ( <NUM_LIT:4> , <NUM_LIT:3> ) , <EOL> npr . randn ( <NUM_LIT:2> , <NUM_LIT:4> ) ] <EOL> result = d_fun ( input_list ) <EOL> assert np . allclose ( result [ <NUM_LIT:0> ] , np . ones ( ( <NUM_LIT:5> , <NUM_LIT:6> ) ) ) <EOL> assert np . allclose ( result [ <NUM_LIT:1> ] , <NUM_LIT:2> * np . ones ( ( <NUM_LIT:4> , <NUM_LIT:3> ) ) ) <EOL> assert np . allclose ( result [ <NUM_LIT:2> ] , np . zeros ( ( <NUM_LIT:2> , <NUM_LIT:4> ) ) ) <EOL> def test_grads ( ) : <EOL> def fun ( input_list ) : <EOL> A = np . sum ( np . sin ( input_list [ <NUM_LIT:0> ] ) ) <EOL> B = np . sum ( np . cos ( input_list [ <NUM_LIT:1> ] ) ) <EOL> return A + B <EOL> def d_fun ( input_list ) : <EOL> g = grad ( fun ) ( input_list ) <EOL> A = np . sum ( g [ <NUM_LIT:0> ] ) <EOL> B = np . sum ( np . sin ( g [ <NUM_LIT:0> ] ) ) <EOL> C = np . sum ( np . sin ( g [ <NUM_LIT:1> ] ) ) <EOL> return A + B + C <EOL> input_list = [ npr . randn ( <NUM_LIT:5> , <NUM_LIT:6> ) , <EOL> npr . randn ( <NUM_LIT:4> , <NUM_LIT:3> ) , <EOL> npr . randn ( <NUM_LIT:2> , <NUM_LIT:4> ) ] <EOL> check_grads ( fun , input_list ) <EOL> check_grads ( d_fun , input_list ) <EOL> test_grads ( ) </s>
