Skip to content

Commit a5d0fd4

Browse files
committed
fixing the build script and tweaking mnist demo tiny bit
1 parent c366cbe commit a5d0fd4

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

compile/build.xml

-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
<file name="convnet_layers_nonlinearities.js" />
1414
<file name="convnet_layers_dropout.js" />
1515
<file name="convnet_layers_normalization.js" />
16-
<file name="convnet_layers_transform.js" />
1716
<file name="convnet_net.js" />
1817
<file name="convnet_trainers.js" />
1918
<file name="convnet_magicnet.js" />

demo/mnist.html

+24-3
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
padding: 10px;
1616
}
1717
.layer_act {
18-
width: 500px;
18+
width: 450px;
1919
float: right;
2020
}
2121
.ltconv {
@@ -304,6 +304,18 @@
304304
if(L.layer_type==='softmax' || L.layer_type==='fc') scale = 10; // for softmax
305305
draw_activations(activations_div, L.out_act, scale);
306306

307+
// visualize data gradients
308+
if(L.layer_type !== 'softmax') {
309+
var grad_div = document.createElement('div');
310+
grad_div.appendChild(document.createTextNode('Data Gradients:'));
311+
grad_div.appendChild(document.createElement('br'));
312+
grad_div.className = 'layer_grad';
313+
var scale = 2;
314+
if(L.layer_type==='softmax' || L.layer_type==='fc') scale = 10; // for softmax
315+
draw_activations(grad_div, L.out_act, scale, true);
316+
activations_div.appendChild(grad_div);
317+
}
318+
307319
// visualize filters if they are of reasonable size
308320
if(L.layer_type === 'conv') {
309321
var filters_div = document.createElement('div');
@@ -312,14 +324,18 @@
312324
filters_div.appendChild(document.createTextNode('Weights:'));
313325
filters_div.appendChild(document.createElement('br'));
314326
for(var j=0;j<L.filters.length;j++) {
327+
filters_div.appendChild(document.createTextNode('('));
315328
draw_activations(filters_div, L.filters[j], 2);
329+
filters_div.appendChild(document.createTextNode(')'));
316330
}
317331
// gradients
318332
filters_div.appendChild(document.createElement('br'));
319-
filters_div.appendChild(document.createTextNode('Gradients:'));
333+
filters_div.appendChild(document.createTextNode('Weight Gradients:'));
320334
filters_div.appendChild(document.createElement('br'));
321335
for(var j=0;j<L.filters.length;j++) {
336+
filters_div.appendChild(document.createTextNode('('));
322337
draw_activations(filters_div, L.filters[j], 2, true);
338+
filters_div.appendChild(document.createTextNode(')'));
323339
}
324340
} else {
325341
filters_div.appendChild(document.createTextNode('Weights hidden, too small'));
@@ -353,6 +369,11 @@
353369
layer_div.appendChild(document.createTextNode(t));
354370
layer_div.appendChild(document.createElement('br'));
355371

372+
var mma = maxmin(L.out_act.dw);
373+
var t = 'max gradient: ' + f2t(mma.maxv) + ', min: ' + f2t(mma.minv);
374+
layer_div.appendChild(document.createTextNode(t));
375+
layer_div.appendChild(document.createElement('br'));
376+
356377
// number of parameters
357378
if(L.layer_type==='conv') {
358379
var tot_params = L.sx*L.sy*L.in_depth*L.filters.length + L.filters.length;
@@ -588,7 +609,7 @@ <h1>Description</h1>
588609
<h1>Training Stats</h1>
589610
<div class="divsec" style="270px;">
590611
<div class="secpart">
591-
Current image: <img id="input_image" src=""></img><input id="buttontp" type="submit" value="pause" onclick="toggle_pause();"/>
612+
<input id="buttontp" type="submit" value="pause" onclick="toggle_pause();" style="width: 100px; height:30px; background-color: #FCC;"/>
592613
<div id="trainstats"></div>
593614

594615
<div id="controls">

0 commit comments

Comments
 (0)