commit a8a6e19677c108647b0cb973d9c4181a0e5a931d
parent e2cdf2d2b4acde6b231619c7683bc0270d38e42c
Author: David Freifeld <freifeld.david@gmail.com>
Date: Thu, 2 Jul 2020 19:19:25 -0700
Using library for bad network viz
Diffstat:
| M | example.py | | | 38 | ++++++++++++++++++++++++++++++++++++++ |
1 file changed, 38 insertions(+), 0 deletions(-)
diff --git a/example.py b/example.py
@@ -1,8 +1,39 @@
import mrbpnn
+import numpy as np
import matplotlib.pyplot as plt
import numpy
import time
import wandb
+from viznet import NodeBrush, EdgeBrush, DynamicShow
+
+def draw_feed_forward(ax, num_node_list):
+ '''
+ draw a feed forward neural network.
+
+ Args:
+ num_node_list (list<int>): number of nodes in each layer.
+ '''
+ num_hidden_layer = len(num_node_list) - 2
+ token_list = ['\sigma^z'] + \
+ ['y^{(%s)}' % (i + 1) for i in range(num_hidden_layer)] + ['\psi']
+ kind_list = ['nn.input'] + ['nn.hidden'] * num_hidden_layer + ['nn.output']
+ radius_list = [0.3] + [0.2] * num_hidden_layer + [0.3]
+ y_list = 1.5 * np.arange(len(num_node_list))
+
+ seq_list = []
+ for n, kind, radius, y in zip(num_node_list, kind_list, radius_list, y_list):
+ b = NodeBrush(kind, ax)
+ seq_list.append(node_sequence(b, n, center=(0, y)))
+
+ eb = EdgeBrush('-->', ax)
+ for st, et in zip(seq_list[:-1], seq_list[1:]):
+ connecta2a(st, et, eb)
+
+
+def real_bp():
+ with DynamicShow((6, 6), '_feed_forward.png') as d:
+ draw_feed_forward(d.ax, num_node_list=list)
+
batch_sz = 10
layers = 1
@@ -11,13 +42,17 @@ lr = 0.0155
bias_lr = 0.03
neurons = 10
ratio = 0.9
+layers_list = []
init = time.time()
net = mrbpnn.Network("./data_banknote_authentication.txt", batch_sz, lr, bias_lr, ratio)
net.add_layer(4, "linear")
+layers_list.append(4)
for i in range(layers):
net.add_layer(neurons, "lecun_tanh")
+ layers_list.append(neurons)
net.add_layer(1, "resig")
+layers_list.append(1)
net.initialize()
wandb.init(project="jacobian")
@@ -37,3 +72,6 @@ end = time.time()
wandb.run.summary["time"] = end-init
wandb.save('jacobian.h5')
+
+with DynamicShow((6, 6), '_feed_forward.png') as d:
+ draw_feed_forward(d.ax, num_node_list=layers_list)