y, filename=filename, group_name=group_name, model=model) # Now we feed the data to the actual Replay object so we can build the visualizations replay = Replay(replay_filename=filename, group_name=group_name) # Using subplot2grid to assemble a complex figure... fig = plt.figure(figsize=(12, 6)) ax_zvalues = plt.subplot2grid((2, 2), (0, 0)) ax_weights = plt.subplot2grid((2, 2), (0, 1)) ax_activations = plt.subplot2grid((2, 2), (1, 0)) ax_gradients = plt.subplot2grid((2, 2), (1, 1)) wv = replay.build_weights(ax_weights) gv = replay.build_gradients(ax_gradients) # Z-values zv = replay.build_outputs(ax_zvalues, before_activation=True, exclude_outputs=True, include_inputs=False) # Activations av = replay.build_outputs(ax_activations, exclude_outputs=True, include_inputs=False) # Finally, we use compose_plots to update all # visualizations at once fig = compose_plots([zv, wv, av, gv], epoch=0, title=title) fig.savefig('part2.png', format='png', dpi=120)
model.add(Activation('relu')) model.add( Dense(units=1, kernel_initializer=normal_initializer, activation='sigmoid', name='output')) model.compile(loss='binary_crossentropy', optimizer=sgd, metrics=['acc']) model.fit(X, y, epochs=200, batch_size=16, callbacks=[replaydata]) replay = Replay(replay_filename='circles_dataset.h5', group_name=group_name) fig = plt.figure(figsize=(12, 6)) ax_fs = plt.subplot2grid((2, 4), (0, 0), colspan=2, rowspan=2) ax_ph_neg = plt.subplot2grid((2, 4), (0, 2)) ax_ph_pos = plt.subplot2grid((2, 4), (1, 2)) ax_lm = plt.subplot2grid((2, 4), (0, 3)) ax_lh = plt.subplot2grid((2, 4), (1, 3)) fs = replay.build_decision_boundary(ax_fs, xlim=(-1.5, 1.5), ylim=(-1.5, 1.5)) ph = replay.build_probability_histogram(ax_ph_neg, ax_ph_pos) lh = replay.build_loss_histogram(ax_lh) lm = replay.build_loss_and_metric(ax_lm, 'acc') sample_figure = compose_plots([fs, ph, lm, lh], 150) sample_figure.savefig('circles.png', dpi=120, format='png') sample_anim = compose_animations([fs, ph, lm, lh]) sample_anim.save(filename='circles.mp4', dpi=120, fps=5)
model.add(Dense(units=1, kernel_initializer=normal_initializer, activation='sigmoid', name='output')) model.compile(loss='binary_crossentropy', optimizer=sgd, metrics=['acc']) model.fit(X, y, epochs=150, batch_size=16, callbacks=[replaydata]) fig, axs = plt.subplots(1, 3, figsize=(12, 4)) replays = [] for activation in ['sigmoid', 'tanh', 'relu']: replays.append(Replay(replay_filename='comparison_activation_functions.h5', group_name=activation)) spaces = [] for ax, replay, activation in zip(axs, replays, ['sigmoid', 'tanh', 'relu']): space = replay.build_feature_space(ax, layer_name='hidden') space.set_title(activation) spaces.append(space) sample_figure = compose_plots(spaces, 80) sample_figure.savefig('comparison.png', dpi=120, format='png') #sample_anim = compose_animations(spaces) #sample_anim.save(filename='comparison.mp4', dpi=120, fps=5)
activation='sigmoid', name='output')) model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['acc']) model.fit(X, y, epochs=100, batch_size=16, callbacks=[replaydata]) replay = Replay(replay_filename='spambase_dataset.h5', group_name=group_name) fig = plt.figure(figsize=(12, 6)) ax_fs = plt.subplot2grid((2, 4), (0, 0), colspan=2, rowspan=2) ax_ph_neg = plt.subplot2grid((2, 4), (0, 2)) ax_ph_pos = plt.subplot2grid((2, 4), (1, 2)) ax_lm = plt.subplot2grid((2, 4), (0, 3)) ax_lh = plt.subplot2grid((2, 4), (1, 3)) fs = replay.build_feature_space(ax_fs, layer_name='hidden', display_grid=False, scale_fixed=False) ph = replay.build_probability_histogram(ax_ph_neg, ax_ph_pos) lh = replay.build_loss_histogram(ax_lh) lm = replay.build_loss_and_metric(ax_lm, 'acc') sample_figure = compose_plots([fs, ph, lm, lh], 80) sample_figure.savefig('spambase.png', dpi=120, format='png') sample_anim = compose_animations([fs, ph, lm, lh]) sample_anim.save(filename='spambase.mp4', dpi=120, fps=5)
# Now we feed the data to the actual Replay object # so we can build the visualizations replay = Replay(replay_filename=filename, group_name=group_name) # Using subplot2grid to assemble a complex figure... fig = plt.figure(figsize=(12, 6)) ax_zvalues = plt.subplot2grid((2, 2), (0, 0)) ax_weights = plt.subplot2grid((2, 2), (0, 1)) ax_activations = plt.subplot2grid((2, 2), (1, 0)) ax_gradients = plt.subplot2grid((2, 2), (1, 1)) wv = replay.build_weights(ax_weights) gv = replay.build_gradients(ax_gradients) # Z-values zv = replay.build_outputs(ax_zvalues, before_activation=True, exclude_outputs=True, include_inputs=False) # Activations av = replay.build_outputs(ax_activations, exclude_outputs=True, include_inputs=False) # Finally, we use compose_plots to update all # visualizations at once fig = compose_plots( [zv, wv, av, gv], epoch=0, title=r'Activation: sigmoid - Initializer: Normal $\sigma = 0.01$')