update TF models (beta version)
This commit is contained in:
		| @@ -6,7 +6,6 @@ import numpy as np | ||||
| from collections import OrderedDict | ||||
| lib_dir = (Path(__file__).parent / '..' / '..' / 'lib').resolve() | ||||
| if str(lib_dir) not in sys.path: sys.path.insert(0, str(lib_dir)) | ||||
| from graphviz import Digraph | ||||
|  | ||||
|  | ||||
| def test_nas_api(): | ||||
| @@ -29,6 +28,7 @@ OPS    = ['skip-connect', 'conv-1x1', 'conv-3x3', 'pool-3x3'] | ||||
| COLORS = ['chartreuse'  , 'cyan'    , 'navyblue', 'chocolate1'] | ||||
|  | ||||
| def plot(filename): | ||||
|   from graphviz import Digraph | ||||
|   g = Digraph( | ||||
|       format='png', | ||||
|       edge_attr=dict(fontsize='20', fontname="times"), | ||||
| @@ -53,6 +53,26 @@ def plot(filename): | ||||
|   g.render(filename, cleanup=True, view=False) | ||||
|  | ||||
|  | ||||
| def test_auto_grad(): | ||||
|   class Net(torch.nn.Module): | ||||
|     def __init__(self, iS): | ||||
|       super(Net, self).__init__() | ||||
|       self.layer = torch.nn.Linear(iS, 1) | ||||
|     def forward(self, inputs): | ||||
|       outputs = self.layer(inputs) | ||||
|       outputs = torch.exp(outputs) | ||||
|       return outputs.mean() | ||||
|   net = Net(10) | ||||
|   inputs = torch.rand(256, 10) | ||||
|   loss = net(inputs) | ||||
|   first_order_grads = torch.autograd.grad(loss, net.parameters(), retain_graph=True, create_graph=True) | ||||
|   first_order_grads = torch.cat([x.view(-1) for x in first_order_grads]) | ||||
|   second_order_grads = [] | ||||
|   for grads in  first_order_grads: | ||||
|     s_grads = torch.autograd.grad(grads, net.parameters()) | ||||
|     second_order_grads.append( s_grads ) | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|   test_nas_api() | ||||
|   for i in range(200): plot('{:04d}'.format(i)) | ||||
|   #test_nas_api() | ||||
|   #for i in range(200): plot('{:04d}'.format(i)) | ||||
|   test_auto_grad() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user