-
Notifications
You must be signed in to change notification settings - Fork 17
/
debug.html
87 lines (79 loc) · 3.15 KB
/
debug.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<!DOCTYPE html>
<title>Debug lrcurve</title>
<link href="lrcurve/web_assets/learning_curve.css" rel="stylesheet">
<script src="lrcurve/web_assets/d3.bundle.js"></script>
<script src="lrcurve/web_assets/learning_curve.js"></script>
<svg id="lrcurve-id" class="learning-curve"></svg>
<script>
const configStart = {
'id': 'lrcurve-id',
'width': 600,
'height': 490,
'mappings': {
'lr': { 'line': 'lr', 'facet': 'parameter' },
'loss': { 'line': 'train', 'facet': 'loss' },
'accuracy': { 'line': 'train', 'facet': 'accuracy' },
},
'lineConfig': {
'lr': { 'name': 'Learning Rate', 'color': '#333333' },
'train': { 'name': 'Train', 'color': '#F8766D' }
},
'facetConfig': {
'parameter': { 'name': 'Parameters', 'limit': [null, null] },
'loss': { 'name': 'Loss', 'limit': [0, null] },
'accuracy': { 'name': 'Accuracy', 'limit': [0, 1] }
},
'xAxisConfig': { 'name': 'Epoch', 'limit': [0, null] }
};
const configWithValidation = {
'id': 'lrcurve-id',
'width': 600,
'height': 490,
'mappings': {
'lr': { 'line': 'lr', 'facet': 'parameter' },
'loss': { 'line': 'train', 'facet': 'loss' },
'val_loss': { 'line': 'validation', 'facet': 'loss' },
'accuracy': { 'line': 'train', 'facet': 'accuracy' },
'val_accuracy': { 'line': 'validation', 'facet': 'accuracy' }
},
'lineConfig': {
'lr': { 'name': 'Learning Rate', 'color': '#333333' },
'train': { 'name': 'Train', 'color': '#F8766D' },
'validation': { 'name': 'Validation', 'color': '#00BFC4' }
},
'facetConfig': {
'parameter': { 'name': 'Parameters', 'limit': [null, null] },
'loss': { 'name': 'Loss', 'limit': [0, null] },
'accuracy': { 'name': 'Accuracy', 'limit': [0, 1] }
},
'xAxisConfig': { 'name': 'Epoch', 'limit': [0, null] }
};
window.setupLearningCurve('lrcurve-id', configStart);
function update (i) {
if (i % 10 == 0 && i !== 0) {
if (i == 10) {
window.setupLearningCurve('lrcurve-id', configWithValidation);
}
window.appendLearningCurve('lrcurve-id', [[i, {
'loss': Math.exp(-(i+10)/10) + 1,
'val_loss': Math.exp(-i/10) + 1,
'accuracy': 1 - Math.exp(-(i+10)/10),
'val_accuracy': 1 - Math.exp(-i/10),
'lr': 1 - 0.005 * i
}]]);
} else if (i < 10) {
window.appendLearningCurve('lrcurve-id', [[i, {
'loss': Math.exp(-(i+10)/10) + 1,
'accuracy': 1 - Math.exp(-(i+10)/10)
}]]);
} else {
window.appendLearningCurve('lrcurve-id', [[i, {
'loss': Math.exp(-(i+10)/10) + 1,
'accuracy': 1 - Math.exp(-(i+10)/10),
'lr': 1 - 0.005 * i
}]]);
}
if (i < 60) setTimeout(update.bind(null, i + 1), 100);
}
setTimeout(update.bind(null, 0), 100);
</script>