-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathknowledge_base_graph.html
More file actions
190 lines (172 loc) · 106 KB
/
knowledge_base_graph.html
File metadata and controls
190 lines (172 loc) · 106 KB
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>dataflowr Knowledge Base Graph</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { background: #1a1a2e; overflow: hidden; font-family: system-ui, sans-serif; }
svg { width: 100vw; height: 100vh; }
.link { stroke: #ffffff20; stroke-width: 0.5; }
.link.highlighted { stroke: #e94560; stroke-width: 2; }
.node circle { cursor: pointer; stroke: #16213e; stroke-width: 1.5; }
.node.dangling circle { stroke-dasharray: 3,2; opacity: 0.4; }
.node text { fill: #eee; font-size: 10px; pointer-events: none; opacity: 0; }
.node.show-label text { opacity: 1; }
.node:hover text { opacity: 1; }
#tooltip {
position: fixed; background: #16213e; color: #eee; padding: 10px 14px;
border-radius: 8px; font-size: 13px; pointer-events: none; display: none;
border: 1px solid #e94560; max-width: 300px; z-index: 10;
}
#tooltip h3 { margin-bottom: 4px; color: #e94560; }
#tooltip .modules { color: #aaa; font-size: 11px; }
#controls {
position: fixed; top: 14px; left: 14px; color: #aaa; font-size: 12px;
background: #16213ecc; padding: 10px 14px; border-radius: 8px;
}
#controls h2 { color: #e94560; font-size: 16px; margin-bottom: 6px; }
#search {
margin-top: 6px; padding: 5px 8px; width: 200px; background: #0f3460;
border: 1px solid #e94560; color: #eee; border-radius: 4px; font-size: 13px;
}
#stats { margin-top: 6px; font-size: 11px; color: #666; }
/* Module color legend */
#legend {
position: fixed; bottom: 14px; left: 14px; color: #aaa; font-size: 11px;
background: #16213ecc; padding: 10px 14px; border-radius: 8px;
}
#legend .item { display: inline-block; margin-right: 10px; }
#legend .dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 3px; vertical-align: middle; }
</style>
</head>
<body>
<div id="controls">
<h2>dataflowr Knowledge Graph</h2>
<div>318 notes · 1506 links</div>
<input id="search" type="text" placeholder="Search concepts...">
<div id="stats"></div>
</div>
<div id="tooltip"></div>
<div id="legend"></div>
<svg></svg>
<script src="https://d3js.org/d3.v7.min.js"></script>
<script>
const nodes = [{"id": 0, "name": "1d convolution", "modules": ["11a"], "moduleCount": 1, "linkCount": 2, "dangling": false}, {"id": 1, "name": "1x1 convolutions", "modules": ["17"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 2, "name": "Autoencoder", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 3, "name": "Babylonian method", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 4, "name": "Broadcasting", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 5, "name": "CIFAR-10", "modules": ["2a"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 6, "name": "CKKS", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 7, "name": "CKKS scheme", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 8, "name": "CNN", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 9, "name": "DCGAN", "modules": ["10"], "moduleCount": 1, "linkCount": 6, "dangling": false}, {"id": 10, "name": "DeepWalk", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 11, "name": "Fiedler's theorem", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 12, "name": "ForwardDiff", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 13, "name": "GAN", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 14, "name": "GAN training instability", "modules": ["10"], "moduleCount": 1, "linkCount": 7, "dangling": false}, {"id": 15, "name": "GPU", "modules": ["1"], "moduleCount": 1, "linkCount": 2, "dangling": false}, {"id": 16, "name": "GRU", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 17, "name": "Gate", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 18, "name": "Gradient descent", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 19, "name": "Huffman coding", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 20, "name": "ImageNet", "modules": ["1"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 21, "name": "InfoGAN", "modules": ["10", "10p"], "moduleCount": 2, "linkCount": 8, "dangling": false}, {"id": 22, "name": "Intel SGX", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 23, "name": "Julia", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 24, "name": "Jupyter notebook", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 25, "name": "L2 regularization", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 26, "name": "LSTM", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 27, "name": "Latent interpolation", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 28, "name": "Layer-wise pre-training", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 29, "name": "MNIST", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 30, "name": "Message passing GNN", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 31, "name": "NLL loss", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 32, "name": "NLLLoss", "modules": ["3", "1"], "moduleCount": 2, "linkCount": 5, "dangling": false}, {"id": 33, "name": "Netflix Prize", "modules": ["8b"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 34, "name": "One-hot encoding", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 35, "name": "Overparameterization", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 36, "name": "Principal component analysis", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 37, "name": "Prototypical network", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 38, "name": "PyTorch", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 39, "name": "ReLU", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 40, "name": "ResNet", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 41, "name": "ResNet34", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 42, "name": "SGD optimizer", "modules": ["2b"], "moduleCount": 1, "linkCount": 6, "dangling": false}, {"id": 43, "name": "Siamese network", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 44, "name": "Taylor expansion", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 45, "name": "Unsupervised learning", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 46, "name": "VGG", "modules": ["1"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 47, "name": "Weibull distribution", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 48, "name": "Weibull distribution for survival", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 49, "name": "activation function", "modules": ["5"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 50, "name": "adagrad", "modules": ["4", "4p"], "moduleCount": 2, "linkCount": 4, "dangling": false}, {"id": 51, "name": "adam", "modules": ["4", "4p"], "moduleCount": 2, "linkCount": 6, "dangling": false}, {"id": 52, "name": "adam optimizer", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 53, "name": "adaptive learning rate", "modules": ["4"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 54, "name": "add-bias block", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 55, "name": "adjacency matrix", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 56, "name": "adversarial training", "modules": ["10"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 57, "name": "amsgrad", "modules": ["4", "4p"], "moduleCount": 2, "linkCount": 4, "dangling": false}, {"id": 58, "name": "anchor", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 59, "name": "attestation", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 60, "name": "autoencoder", "modules": ["9a"], "moduleCount": 1, "linkCount": 7, "dangling": false}, {"id": 61, "name": "autoencoder loss functions", "modules": ["9ap"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 62, "name": "automatic differentiation", "modules": ["2b", "5"], "moduleCount": 2, "linkCount": 10, "dangling": false}, {"id": 63, "name": "average pooling", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 64, "name": "babylonian method", "modules": ["bonus_julia"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 65, "name": "backpropagation", "modules": ["5"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 66, "name": "backpropagation through time", "modules": ["11a"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 67, "name": "backward pass", "modules": ["2b"], "moduleCount": 1, "linkCount": 6, "dangling": false}, {"id": 68, "name": "backward pass composition", "modules": ["2bp"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 69, "name": "balanced parentheses task", "modules": ["11a", "11b"], "moduleCount": 2, "linkCount": 5, "dangling": false}, {"id": 70, "name": "barron's theorem", "modules": ["14a"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 71, "name": "batch normalization", "modules": ["16"], "moduleCount": 1, "linkCount": 8, "dangling": false}, {"id": 72, "name": "batch normalization in eval mode", "modules": ["1p"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 73, "name": "batch size", "modules": ["1"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 74, "name": "batch size dependency", "modules": ["16"], "moduleCount": 1, "linkCount": 6, "dangling": false}, {"id": 75, "name": "batch_first", "modules": ["11c"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 76, "name": "batching", "modules": ["7+8a"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 77, "name": "batching and efficiency in rnns", "modules": ["11b"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 78, "name": "bell numbers", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 79, "name": "bernoulli distribution", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 80, "name": "beta", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 81, "name": "bias", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 82, "name": "bias correction", "modules": ["4"], "moduleCount": 1, "linkCount": 2, "dangling": false}, {"id": 83, "name": "bias term", "modules": ["8bp1"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 84, "name": "bias-variance tradeoff", "modules": ["3", "14a"], "moduleCount": 2, "linkCount": 6, "dangling": false}, {"id": 85, "name": "biased random walk", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 86, "name": "binary classification", "modules": ["6"], "moduleCount": 1, "linkCount": 6, "dangling": false}, {"id": 87, "name": "binary cross-entropy", "modules": ["3", "10"], "moduleCount": 2, "linkCount": 10, "dangling": false}, {"id": 88, "name": "bottleneck block", "modules": ["17"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 89, "name": "bottleneck blocks", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 90, "name": "broadcasting", "modules": ["2a"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 91, "name": "categorical data", "modules": ["7+8a"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 92, "name": "cell state", "modules": ["11a"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 93, "name": "chain rule", "modules": ["2b"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 94, "name": "channel depth", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 95, "name": "chebyshev polynomials", "modules": ["graph0b"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 96, "name": "classification", "modules": ["1"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 97, "name": "classification accuracy", "modules": ["3"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 98, "name": "classifier", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 99, "name": "clustering", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 100, "name": "cnn parameter counting", "modules": ["6p"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 101, "name": "collaborative filtering", "modules": ["7+8a", "8b"], "moduleCount": 2, "linkCount": 8, "dangling": false}, {"id": 102, "name": "collaborative machine learning", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 103, "name": "community detection", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 104, "name": "computational graph", "modules": ["2b"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 105, "name": "computer vision", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 106, "name": "conditional GAN", "modules": ["10", "10p"], "moduleCount": 2, "linkCount": 9, "dangling": false}, {"id": 107, "name": "conditional gan", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 108, "name": "confidential computing", "modules": ["bonus_privacy"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 109, "name": "confusion matrix", "modules": ["1p"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 110, "name": "constant-time operations", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 111, "name": "contrastive loss", "modules": ["13"], "moduleCount": 1, "linkCount": 6, "dangling": false}, {"id": 112, "name": "convergence", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 113, "name": "conversion and promotion", "modules": ["bonus_julia"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 114, "name": "convolution", "modules": ["6"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 115, "name": "convolutional layer", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 116, "name": "convolutional layer with padding", "modules": ["6p"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 117, "name": "convolutional layers", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 118, "name": "convolutional neural network", "modules": ["5", "6"], "moduleCount": 2, "linkCount": 9, "dangling": false}, {"id": 119, "name": "convolutional neural network architecture", "modules": ["6p"], "moduleCount": 1, "linkCount": 7, "dangling": false}, {"id": 120, "name": "correlation", "modules": ["6"], "moduleCount": 1, "linkCount": 2, "dangling": false}, {"id": 121, "name": "cost function", "modules": ["4"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 122, "name": "cross-entropy", "modules": ["3", "11a", "9a"], "moduleCount": 3, "linkCount": 12, "dangling": false}, {"id": 123, "name": "cross-entropy loss", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 124, "name": "cyclic vs random sampling", "modules": ["2bp"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 125, "name": "data augmentation", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 126, "name": "data loader", "modules": ["1", "7+8a"], "moduleCount": 2, "linkCount": 6, "dangling": false}, {"id": 127, "name": "data normalization", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 128, "name": "data type", "modules": ["2a"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 129, "name": "data wrangling for pytorch", "modules": ["1p"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 130, "name": "dataset", "modules": ["1", "7+8a"], "moduleCount": 2, "linkCount": 5, "dangling": false}, {"id": 131, "name": "dead neurons", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 132, "name": "decoder", "modules": ["9a"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 133, "name": "deep autoencoder", "modules": ["9ap"], "moduleCount": 1, "linkCount": 6, "dangling": false}, {"id": 134, "name": "deep learning", "modules": ["1"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 135, "name": "deep learning pipeline", "modules": ["2a", "5"], "moduleCount": 2, "linkCount": 8, "dangling": false}, {"id": 136, "name": "deep neural networks", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 137, "name": "deepwalk", "modules": ["graph0a"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 138, "name": "degradation problem", "modules": ["17"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 139, "name": "denoising autoencoder", "modules": ["9a", "9ap"], "moduleCount": 2, "linkCount": 7, "dangling": false}, {"id": 140, "name": "densenet", "modules": ["17"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 141, "name": "depth estimation", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 142, "name": "depth vs width", "modules": ["14a"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 143, "name": "dimensionality reduction", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 144, "name": "discriminator", "modules": ["10"], "moduleCount": 1, "linkCount": 6, "dangling": false}, {"id": 145, "name": "domain adaptation", "modules": ["bonus_tl"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 146, "name": "domain adversarial neural networks", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 147, "name": "domain gap", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 148, "name": "dot model", "modules": ["8bp1"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 149, "name": "dot product model", "modules": ["8b"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 150, "name": "double descent", "modules": ["14a"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 151, "name": "downsampling", "modules": ["6"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 152, "name": "dropblock", "modules": ["15"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 153, "name": "dropout", "modules": ["15"], "moduleCount": 1, "linkCount": 9, "dangling": false}, {"id": 154, "name": "dual numbers", "modules": ["bonus_julia"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 155, "name": "edge detection", "modules": ["6"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 156, "name": "elman network", "modules": ["11a"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 157, "name": "embedding", "modules": ["13", "8b"], "moduleCount": 2, "linkCount": 7, "dangling": false}, {"id": 158, "name": "embedding layer", "modules": ["11c", "7+8a", "8bp1"], "moduleCount": 3, "linkCount": 9, "dangling": false}, {"id": 159, "name": "embedding space", "modules": ["7+8a"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 160, "name": "empirical risk", "modules": ["3"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 161, "name": "encoder", "modules": ["9a"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 162, "name": "engine failure prediction", "modules": ["11bp"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 163, "name": "ensemble", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 164, "name": "ensemble interpretation of dropout", "modules": ["15"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 165, "name": "epoch", "modules": ["1", "2b"], "moduleCount": 2, "linkCount": 6, "dangling": false}, {"id": 166, "name": "equivariant functions", "modules": ["graph0c"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 167, "name": "exponential block", "modules": ["2bp"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 168, "name": "exponential function", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 169, "name": "exponential moving average", "modules": ["4"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 170, "name": "face recognition", "modules": ["13"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 171, "name": "face verification", "modules": ["13"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 172, "name": "feature extraction", "modules": ["1", "7+8a"], "moduleCount": 2, "linkCount": 7, "dangling": false}, {"id": 173, "name": "feature map", "modules": ["6"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 174, "name": "feature maps", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 175, "name": "few-shot learning", "modules": ["13"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 176, "name": "fiedler's theorem", "modules": ["graph0b"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 177, "name": "filter bank", "modules": ["6"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 178, "name": "fine-tuning", "modules": ["bonus_tl"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 179, "name": "flattening", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 180, "name": "flattening for fully connected layer", "modules": ["6p"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 181, "name": "folklore gnn", "modules": ["graph0c"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 182, "name": "forget gate", "modules": ["11a"], "moduleCount": 1, "linkCount": 7, "dangling": false}, {"id": 183, "name": "forward pass", "modules": ["2b", "5"], "moduleCount": 2, "linkCount": 6, "dangling": false}, {"id": 184, "name": "forward-mode automatic differentiation", "modules": ["bonus_julia"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 185, "name": "forwarddiff", "modules": ["bonus_julia"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 186, "name": "fourier analysis on graphs", "modules": ["graph0b"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 187, "name": "fully connected layer", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 188, "name": "fully connected layers", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 189, "name": "gamma", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 190, "name": "gamma and beta parameters", "modules": ["16"], "moduleCount": 1, "linkCount": 2, "dangling": false}, {"id": 191, "name": "gan training loop", "modules": ["10p"], "moduleCount": 1, "linkCount": 6, "dangling": false}, {"id": 192, "name": "gate", "modules": ["11a"], "moduleCount": 1, "linkCount": 7, "dangling": false}, {"id": 193, "name": "gated RNN", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 194, "name": "gated recurrent unit", "modules": ["11bp"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 195, "name": "gated rnn", "modules": ["11a", "11b"], "moduleCount": 2, "linkCount": 7, "dangling": false}, {"id": 196, "name": "gaussian dropout", "modules": ["15"], "moduleCount": 1, "linkCount": 2, "dangling": false}, {"id": 197, "name": "generalization", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 198, "name": "generative adversarial network", "modules": ["10"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 199, "name": "generator", "modules": ["10"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 200, "name": "global average pooling", "modules": ["17"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 201, "name": "gpu computing", "modules": ["2a"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 202, "name": "gradient", "modules": ["2b"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 203, "name": "gradient accumulation", "modules": ["2b"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 204, "name": "gradient computation", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 205, "name": "gradient descent", "modules": ["2b", "4"], "moduleCount": 2, "linkCount": 8, "dangling": false}, {"id": 206, "name": "gradient descent on 2d function", "modules": ["4p"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 207, "name": "gradient flow", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 208, "name": "gradient normalization", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 209, "name": "gradient reversal layer", "modules": ["bonus_tl"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 210, "name": "graph Laplacian", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 211, "name": "graph attention networks", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 212, "name": "graph canonization", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 213, "name": "graph convolution", "modules": ["graph0b"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 214, "name": "graph isomorphism", "modules": ["graph0c"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 215, "name": "graph laplacian", "modules": ["graph0b"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 216, "name": "graph neural network", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 217, "name": "graph pooling", "modules": ["graph0b"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 218, "name": "group normalization", "modules": ["16"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 219, "name": "gru", "modules": ["11a", "11b"], "moduleCount": 2, "linkCount": 8, "dangling": false}, {"id": 220, "name": "hard negative examples", "modules": ["11b"], "moduleCount": 1, "linkCount": 7, "dangling": false}, {"id": 221, "name": "hard negative mining", "modules": ["13"], "moduleCount": 1, "linkCount": 7, "dangling": false}, {"id": 222, "name": "hidden state", "modules": ["11a"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 223, "name": "hidden state and cell state", "modules": ["11c"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 224, "name": "hierarchical feature learning", "modules": ["14a"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 225, "name": "hierarchical softmax", "modules": ["graph0a"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 226, "name": "higher-order tensor representations", "modules": ["graph0c"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 227, "name": "higher-order tensors", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 228, "name": "highway networks", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 229, "name": "histogram loss", "modules": ["13"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 230, "name": "homomorphic decision trees", "modules": ["bonus_privacy"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 231, "name": "homomorphic encryption", "modules": ["bonus_privacy"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 232, "name": "id-to-index mapping", "modules": ["8bp2"], "moduleCount": 1, "linkCount": 2, "dangling": false}, {"id": 233, "name": "image retrieval", "modules": ["13"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 234, "name": "imagefolder", "modules": ["7+8a"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 235, "name": "in-place operations", "modules": ["2a"], "moduleCount": 1, "linkCount": 2, "dangling": false}, {"id": 236, "name": "infogan", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 237, "name": "infogan loss alignment", "modules": ["10p"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 238, "name": "information theory notation", "modules": ["3"], "moduleCount": 1, "linkCount": 2, "dangling": false}, {"id": 239, "name": "input gate", "modules": ["11a"], "moduleCount": 1, "linkCount": 7, "dangling": false}, {"id": 240, "name": "input representation", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 241, "name": "instance normalization", "modules": ["16"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 242, "name": "internal covariate shift", "modules": ["16"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 243, "name": "invariant functions", "modules": ["graph0c"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 244, "name": "inverted dropout", "modules": ["15"], "moduleCount": 1, "linkCount": 2, "dangling": false}, {"id": 245, "name": "jupyter notebook pitfalls", "modules": ["9ap"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 246, "name": "kernel", "modules": ["6"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 247, "name": "l2 regularization", "modules": ["14b"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 248, "name": "latent interpolation", "modules": ["9a"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 249, "name": "latent representation", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 250, "name": "latent space", "modules": ["9a"], "moduleCount": 1, "linkCount": 6, "dangling": false}, {"id": 251, "name": "latent space interpolation", "modules": ["9ap"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 252, "name": "layer normalization", "modules": ["16"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 253, "name": "layer-wise pre-training", "modules": ["14b"], "moduleCount": 1, "linkCount": 6, "dangling": false}, {"id": 254, "name": "leaky ReLU", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 255, "name": "leaky relu", "modules": ["14b"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 256, "name": "learning rate", "modules": ["1", "2b", "4"], "moduleCount": 3, "linkCount": 7, "dangling": false}, {"id": 257, "name": "learning rate scheduler", "modules": ["11bp"], "moduleCount": 1, "linkCount": 2, "dangling": false}, {"id": 258, "name": "learning rates", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 259, "name": "learning with errors", "modules": ["bonus_privacy"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 260, "name": "length generalization", "modules": ["11b"], "moduleCount": 1, "linkCount": 7, "dangling": false}, {"id": 261, "name": "linear interpolation", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 262, "name": "linear layer", "modules": ["5"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 263, "name": "linear output layer", "modules": ["11bp"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 264, "name": "linear regression", "modules": ["2b"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 265, "name": "localized kernel", "modules": ["graph0b"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 266, "name": "log softmax", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 267, "name": "log softmax with nll loss", "modules": ["6p"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 268, "name": "log-likelihood", "modules": ["3"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 269, "name": "log-softmax", "modules": ["3", "1"], "moduleCount": 2, "linkCount": 4, "dangling": false}, {"id": 270, "name": "log-sum-exp trick", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 271, "name": "logistic regression", "modules": ["3"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 272, "name": "logits", "modules": ["3"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 273, "name": "long-term dependencies", "modules": ["11a"], "moduleCount": 1, "linkCount": 7, "dangling": false}, {"id": 274, "name": "long-term memory", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 275, "name": "loss function", "modules": ["2b"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 276, "name": "loss landscape", "modules": ["17"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 277, "name": "lossy compression", "modules": ["9a"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 278, "name": "low-pass filter", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 279, "name": "lstm", "modules": ["11a", "11b"], "moduleCount": 2, "linkCount": 12, "dangling": false}, {"id": 280, "name": "lstm in pytorch", "modules": ["11c"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 281, "name": "lstm training dynamics", "modules": ["11b"], "moduleCount": 1, "linkCount": 7, "dangling": false}, {"id": 282, "name": "machine learning", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 283, "name": "margin", "modules": ["13"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 284, "name": "matrix factorization", "modules": ["8b"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 285, "name": "max pooling", "modules": ["6", "6p"], "moduleCount": 2, "linkCount": 6, "dangling": false}, {"id": 286, "name": "mean squared error", "modules": ["2b"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 287, "name": "message passing GNN", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 288, "name": "message passing gnn", "modules": ["graph0c"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 289, "name": "metric learning", "modules": ["13"], "moduleCount": 1, "linkCount": 7, "dangling": false}, {"id": 290, "name": "mini-batch function", "modules": ["7+8a"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 291, "name": "mini-batch gradient descent", "modules": ["4"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 292, "name": "mini-batch training", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 293, "name": "mnist dataset", "modules": ["6"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 294, "name": "mode collapse", "modules": ["10"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 295, "name": "model averaging", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 296, "name": "model evaluation", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 297, "name": "modular backpropagation", "modules": ["2bp"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 298, "name": "momentum", "modules": ["4", "4p"], "moduleCount": 2, "linkCount": 6, "dangling": false}, {"id": 299, "name": "movie bias ranking", "modules": ["8bp1", "8bp2"], "moduleCount": 2, "linkCount": 4, "dangling": false}, {"id": 300, "name": "multi-layer perceptron", "modules": ["9a"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 301, "name": "multi-layer rnn", "modules": ["11a"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 302, "name": "multilayer perceptron", "modules": ["5"], "moduleCount": 1, "linkCount": 6, "dangling": false}, {"id": 303, "name": "multiple dispatch", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 304, "name": "multiply-by-weight block", "modules": ["2bp"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 305, "name": "multitask learning", "modules": ["bonus_tl"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 306, "name": "n-pair loss", "modules": ["13"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 307, "name": "nearest-mean classifier", "modules": ["6"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 308, "name": "negative pair", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 309, "name": "negative sampling", "modules": ["graph0a"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 310, "name": "nesterov accelerated gradient", "modules": ["4", "4p"], "moduleCount": 2, "linkCount": 5, "dangling": false}, {"id": 311, "name": "neural network", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 312, "name": "neural networks", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 313, "name": "nn.Linear", "modules": ["2b"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 314, "name": "nn.Sequential", "modules": ["2b", "5"], "moduleCount": 2, "linkCount": 7, "dangling": false}, {"id": 315, "name": "nn.functional", "modules": ["5"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 316, "name": "nn.module", "modules": ["5"], "moduleCount": 1, "linkCount": 6, "dangling": false}, {"id": 317, "name": "nn.sequential", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 318, "name": "node embedding", "modules": ["graph0a"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 319, "name": "node embeddings", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 320, "name": "node2vec", "modules": ["graph0a"], "moduleCount": 1, "linkCount": 6, "dangling": false}, {"id": 321, "name": "non-convex optimization", "modules": ["4"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 322, "name": "non-saturating generator loss", "modules": ["10"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 323, "name": "numerical methods", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 324, "name": "numerical stability", "modules": ["3"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 325, "name": "numpy array", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 326, "name": "numpy-pytorch interoperability", "modules": ["2a"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 327, "name": "object detection", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 328, "name": "off-the-shelf features", "modules": ["bonus_tl"], "moduleCount": 1, "linkCount": 6, "dangling": false}, {"id": 329, "name": "one-hot encoding", "modules": ["11a", "11b", "7+8a"], "moduleCount": 3, "linkCount": 6, "dangling": false}, {"id": 330, "name": "one-hot encoding with scatter", "modules": ["10p"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 331, "name": "operator overloading", "modules": ["bonus_julia"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 332, "name": "optimizer", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 333, "name": "ordinal encoding pitfall", "modules": ["7+8a"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 334, "name": "output gate", "modules": ["11a"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 335, "name": "output size formula", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 336, "name": "overfitting", "modules": ["3", "1", "8b"], "moduleCount": 3, "linkCount": 7, "dangling": false}, {"id": 337, "name": "overfitting detection", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 338, "name": "overfitting in deep networks", "modules": ["14b", "15"], "moduleCount": 2, "linkCount": 6, "dangling": false}, {"id": 339, "name": "overfitting on a small batch", "modules": ["8bp1"], "moduleCount": 1, "linkCount": 2, "dangling": false}, {"id": 340, "name": "overparameterization", "modules": ["14a"], "moduleCount": 1, "linkCount": 6, "dangling": false}, {"id": 341, "name": "oxford pets dataset", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 342, "name": "pack_padded_sequence", "modules": ["11c"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 343, "name": "packed sequence batch sizes", "modules": ["11c"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 344, "name": "pad token", "modules": ["11c"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 345, "name": "pad_packed_sequence", "modules": ["11c"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 346, "name": "padding", "modules": ["6"], "moduleCount": 1, "linkCount": 2, "dangling": false}, {"id": 347, "name": "padding sequences for batching", "modules": ["11c"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 348, "name": "parameter efficiency", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 349, "name": "parameters", "modules": ["5"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 350, "name": "parametric ReLU", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 351, "name": "parametric relu", "modules": ["14b"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 352, "name": "patch descriptor", "modules": ["13"], "moduleCount": 1, "linkCount": 6, "dangling": false}, {"id": 353, "name": "pca on movie embeddings", "modules": ["8bp2"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 354, "name": "permutation invariance in graph learning", "modules": ["graph0c"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 355, "name": "person re-identification", "modules": ["13"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 356, "name": "polynomial activation functions", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 357, "name": "pooling layer", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 358, "name": "positive pair", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 359, "name": "post-quantum cryptography", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 360, "name": "pre-trained model", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 361, "name": "precision and recall", "modules": ["6"], "moduleCount": 1, "linkCount": 2, "dangling": false}, {"id": 362, "name": "precomputed features", "modules": ["1"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 363, "name": "precomputing features", "modules": ["1p"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 364, "name": "pretrained model", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 365, "name": "pretrained models", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 366, "name": "principal component analysis", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 367, "name": "principal component analysis of embeddings", "modules": ["8b"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 368, "name": "principal component analysis on latent factors", "modules": ["8bp1"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 369, "name": "probability\ndistribution", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 370, "name": "probability distribution", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 371, "name": "prototypical network", "modules": ["13"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 372, "name": "pytorch", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 373, "name": "pytorch data loader", "modules": ["8bp2"], "moduleCount": 1, "linkCount": 2, "dangling": false}, {"id": 374, "name": "pytorch optimizer", "modules": ["4"], "moduleCount": 1, "linkCount": 6, "dangling": false}, {"id": 375, "name": "pytorch training loop", "modules": ["6p"], "moduleCount": 1, "linkCount": 6, "dangling": false}, {"id": 376, "name": "quadratic loss", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 377, "name": "random forest", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 378, "name": "random walk", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 379, "name": "rating matrix", "modules": ["8b"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 380, "name": "reconstruction loss", "modules": ["9a"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 381, "name": "recurrent neural network", "modules": ["11a"], "moduleCount": 1, "linkCount": 6, "dangling": false}, {"id": 382, "name": "recurrent neural networks", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 383, "name": "reduction", "modules": ["3"], "moduleCount": 1, "linkCount": 2, "dangling": false}, {"id": 384, "name": "regular expressions", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 385, "name": "regularization", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 386, "name": "relu", "modules": ["14b", "5"], "moduleCount": 2, "linkCount": 10, "dangling": false}, {"id": 387, "name": "relu approximation", "modules": ["14a"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 388, "name": "representation learning", "modules": ["13"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 389, "name": "requires_grad", "modules": ["2b"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 390, "name": "reset gate", "modules": ["11a"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 391, "name": "residual networks", "modules": ["17"], "moduleCount": 1, "linkCount": 7, "dangling": false}, {"id": 392, "name": "resnet transfer learning", "modules": ["1p"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 393, "name": "resnet vs vgg efficiency", "modules": ["17"], "moduleCount": 1, "linkCount": 7, "dangling": false}, {"id": 394, "name": "retain_graph", "modules": ["2b"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 395, "name": "rmsprop", "modules": ["4", "4p"], "moduleCount": 2, "linkCount": 5, "dangling": false}, {"id": 396, "name": "root mean square error", "modules": ["8b"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 397, "name": "running statistics", "modules": ["16"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 398, "name": "saddle point", "modules": ["4"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 399, "name": "scalar product", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 400, "name": "scaled embedding", "modules": ["8b"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 401, "name": "secret sharing", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 402, "name": "secure multi-party computation", "modules": ["bonus_privacy"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 403, "name": "self-supervised learning", "modules": ["13", "9a"], "moduleCount": 2, "linkCount": 8, "dangling": false}, {"id": 404, "name": "semantic segmentation", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 405, "name": "semi-hard mining", "modules": ["13"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 406, "name": "separating power", "modules": ["graph0c"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 407, "name": "sequence classification", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 408, "name": "sequence-to-label classification", "modules": ["11a"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 409, "name": "shuffling", "modules": ["7+8a"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 410, "name": "siamese network", "modules": ["13"], "moduleCount": 1, "linkCount": 6, "dangling": false}, {"id": 411, "name": "sigmoid", "modules": ["3"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 412, "name": "sigmoid activation", "modules": ["14b"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 413, "name": "skip connections", "modules": ["17"], "moduleCount": 1, "linkCount": 7, "dangling": false}, {"id": 414, "name": "skip-gram model", "modules": ["graph0a"], "moduleCount": 1, "linkCount": 6, "dangling": false}, {"id": 415, "name": "sobel operator", "modules": ["6"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 416, "name": "softmax", "modules": ["3", "1"], "moduleCount": 2, "linkCount": 8, "dangling": false}, {"id": 417, "name": "softmax regression", "modules": ["3"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 418, "name": "sorting sequences by length", "modules": ["11c"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 419, "name": "spatial dimensions", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 420, "name": "spatial dropout", "modules": ["15"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 421, "name": "spectral clustering", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 422, "name": "spectral graph theory", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 423, "name": "spectral methods", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 424, "name": "statistical learning", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 425, "name": "stochastic depth", "modules": ["17"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 426, "name": "stochastic gradient descent", "modules": ["1", "4", "2bp"], "moduleCount": 3, "linkCount": 8, "dangling": false}, {"id": 427, "name": "strided convolution", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 428, "name": "structure from motion", "modules": ["13"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 429, "name": "supervised learning", "modules": ["1"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 430, "name": "surface normal estimation", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 431, "name": "synthetic dataset generation", "modules": ["11b"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 432, "name": "tanh activation", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 433, "name": "task transfer learning", "modules": ["bonus_tl"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 434, "name": "tensor", "modules": ["2a", "2b"], "moduleCount": 2, "linkCount": 8, "dangling": false}, {"id": 435, "name": "tensor operations", "modules": ["2a"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 436, "name": "tensor type casting", "modules": ["8bp2"], "moduleCount": 1, "linkCount": 2, "dangling": false}, {"id": 437, "name": "test set", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 438, "name": "timing attacks", "modules": ["bonus_privacy"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 439, "name": "torch.max", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 440, "name": "torchvision", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 441, "name": "train-eval mode", "modules": ["15"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 442, "name": "train-validation split", "modules": ["3", "8b"], "moduleCount": 2, "linkCount": 6, "dangling": false}, {"id": 443, "name": "train-validation-test split", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 444, "name": "training loop", "modules": ["3", "1", "11a", "2b", "8b", "9a"], "moduleCount": 6, "linkCount": 20, "dangling": false}, {"id": 445, "name": "training loop with validation", "modules": ["8bp2"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 446, "name": "training set", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 447, "name": "training vs test evaluation", "modules": ["11b"], "moduleCount": 1, "linkCount": 7, "dangling": false}, {"id": 448, "name": "training without batching", "modules": ["11bp"], "moduleCount": 1, "linkCount": 2, "dangling": false}, {"id": 449, "name": "transfer learning", "modules": ["1", "bonus_tl"], "moduleCount": 2, "linkCount": 9, "dangling": false}, {"id": 450, "name": "transfer learning with vgg", "modules": ["1p"], "moduleCount": 1, "linkCount": 7, "dangling": false}, {"id": 451, "name": "transformers", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 452, "name": "transposed convolution", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 453, "name": "triplet loss", "modules": ["13"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 454, "name": "triplet network", "modules": ["13"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 455, "name": "type casting", "modules": ["2a"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 456, "name": "underfitting", "modules": ["3"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 457, "name": "universal approximation theorem", "modules": ["14a"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 458, "name": "unsupervised learning", "modules": ["9a"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 459, "name": "user-item bias", "modules": ["8b"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 460, "name": "validation loss", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 461, "name": "vanilla RNN", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 462, "name": "vanilla rnn", "modules": ["11b"], "moduleCount": 1, "linkCount": 6, "dangling": false}, {"id": 463, "name": "vanishing gradient problem", "modules": ["11a", "14b"], "moduleCount": 2, "linkCount": 11, "dangling": false}, {"id": 464, "name": "vanishing gradients", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 465, "name": "variational autoencoder", "modules": ["9a"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 466, "name": "vgg architecture", "modules": ["15"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 467, "name": "vocabulary construction", "modules": ["11c"], "moduleCount": 1, "linkCount": 3, "dangling": false}, {"id": 468, "name": "wavenet", "modules": [], "moduleCount": 0, "linkCount": 0, "dangling": true}, {"id": 469, "name": "weibull distribution for survival", "modules": ["11bp"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 470, "name": "weight decay", "modules": ["8b"], "moduleCount": 1, "linkCount": 7, "dangling": false}, {"id": 471, "name": "weight initialization", "modules": ["14b"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 472, "name": "weight standardization", "modules": ["16"], "moduleCount": 1, "linkCount": 4, "dangling": false}, {"id": 473, "name": "weisfeiler-lehmann test", "modules": ["graph0c"], "moduleCount": 1, "linkCount": 5, "dangling": false}, {"id": 474, "name": "zero_grad", "modules": ["2b"], "moduleCount": 1, "linkCount": 5, "dangling": false}];
const links = [{"source": 0, "target": 381}, {"source": 0, "target": 468}, {"source": 1, "target": 88}, {"source": 1, "target": 391}, {"source": 1, "target": 94}, {"source": 1, "target": 89}, {"source": 5, "target": 135}, {"source": 5, "target": 435}, {"source": 5, "target": 434}, {"source": 9, "target": 198}, {"source": 9, "target": 427}, {"source": 9, "target": 199}, {"source": 9, "target": 144}, {"source": 9, "target": 452}, {"source": 9, "target": 71}, {"source": 14, "target": 336}, {"source": 14, "target": 56}, {"source": 14, "target": 198}, {"source": 14, "target": 199}, {"source": 14, "target": 144}, {"source": 14, "target": 444}, {"source": 14, "target": 294}, {"source": 15, "target": 444}, {"source": 15, "target": 134}, {"source": 20, "target": 46}, {"source": 20, "target": 130}, {"source": 20, "target": 127}, {"source": 20, "target": 449}, {"source": 21, "target": 198}, {"source": 21, "target": 99}, {"source": 21, "target": 107}, {"source": 21, "target": 106}, {"source": 21, "target": 199}, {"source": 21, "target": 237}, {"source": 21, "target": 144}, {"source": 21, "target": 294}, {"source": 32, "target": 268}, {"source": 32, "target": 269}, {"source": 32, "target": 444}, {"source": 32, "target": 122}, {"source": 32, "target": 96}, {"source": 33, "target": 101}, {"source": 33, "target": 379}, {"source": 33, "target": 396}, {"source": 42, "target": 38}, {"source": 42, "target": 202}, {"source": 42, "target": 67}, {"source": 42, "target": 205}, {"source": 42, "target": 256}, {"source": 42, "target": 444}, {"source": 46, "target": 172}, {"source": 46, "target": 20}, {"source": 46, "target": 449}, {"source": 46, "target": 118}, {"source": 49, "target": 302}, {"source": 49, "target": 262}, {"source": 49, "target": 349}, {"source": 49, "target": 386}, {"source": 49, "target": 411}, {"source": 50, "target": 53}, {"source": 50, "target": 51}, {"source": 50, "target": 256}, {"source": 50, "target": 395}, {"source": 51, "target": 53}, {"source": 51, "target": 57}, {"source": 51, "target": 82}, {"source": 51, "target": 50}, {"source": 51, "target": 298}, {"source": 51, "target": 395}, {"source": 53, "target": 51}, {"source": 53, "target": 256}, {"source": 53, "target": 395}, {"source": 53, "target": 50}, {"source": 56, "target": 198}, {"source": 56, "target": 199}, {"source": 56, "target": 144}, {"source": 56, "target": 444}, {"source": 56, "target": 294}, {"source": 57, "target": 53}, {"source": 57, "target": 51}, {"source": 57, "target": 50}, {"source": 57, "target": 395}, {"source": 61, "target": 87}, {"source": 61, "target": 139}, {"source": 61, "target": 133}, {"source": 61, "target": 286}, {"source": 60, "target": 161}, {"source": 60, "target": 132}, {"source": 60, "target": 250}, {"source": 60, "target": 403}, {"source": 60, "target": 249}, {"source": 60, "target": 380}, {"source": 60, "target": 458}, {"source": 62, "target": 93}, {"source": 62, "target": 38}, {"source": 62, "target": 202}, {"source": 62, "target": 65}, {"source": 62, "target": 389}, {"source": 62, "target": 349}, {"source": 62, "target": 67}, {"source": 62, "target": 444}, {"source": 62, "target": 104}, {"source": 62, "target": 275}, {"source": 64, "target": 154}, {"source": 64, "target": 184}, {"source": 64, "target": 323}, {"source": 66, "target": 444}, {"source": 66, "target": 381}, {"source": 66, "target": 463}, {"source": 65, "target": 332}, {"source": 65, "target": 349}, {"source": 65, "target": 62}, {"source": 65, "target": 444}, {"source": 65, "target": 183}, {"source": 68, "target": 426}, {"source": 68, "target": 297}, {"source": 68, "target": 275}, {"source": 68, "target": 376}, {"source": 67, "target": 93}, {"source": 67, "target": 202}, {"source": 67, "target": 183}, {"source": 67, "target": 62}, {"source": 67, "target": 104}, {"source": 67, "target": 275}, {"source": 69, "target": 431}, {"source": 69, "target": 408}, {"source": 69, "target": 407}, {"source": 69, "target": 381}, {"source": 69, "target": 329}, {"source": 70, "target": 311}, {"source": 70, "target": 457}, {"source": 70, "target": 387}, {"source": 72, "target": 40}, {"source": 72, "target": 392}, {"source": 72, "target": 71}, {"source": 72, "target": 363}, {"source": 71, "target": 252}, {"source": 71, "target": 190}, {"source": 71, "target": 218}, {"source": 71, "target": 397}, {"source": 71, "target": 258}, {"source": 71, "target": 80}, {"source": 71, "target": 189}, {"source": 71, "target": 242}, {"source": 74, "target": 252}, {"source": 74, "target": 404}, {"source": 74, "target": 327}, {"source": 74, "target": 218}, {"source": 74, "target": 472}, {"source": 74, "target": 71}, {"source": 73, "target": 444}, {"source": 73, "target": 426}, {"source": 73, "target": 126}, {"source": 75, "target": 345}, {"source": 75, "target": 38}, {"source": 75, "target": 342}, {"source": 75, "target": 280}, {"source": 77, "target": 26}, {"source": 77, "target": 195}, {"source": 77, "target": 462}, {"source": 77, "target": 381}, {"source": 77, "target": 279}, {"source": 76, "target": 290}, {"source": 76, "target": 426}, {"source": 76, "target": 126}, {"source": 76, "target": 444}, {"source": 82, "target": 51}, {"source": 82, "target": 169}, {"source": 83, "target": 148}, {"source": 83, "target": 90}, {"source": 83, "target": 158}, {"source": 84, "target": 150}, {"source": 84, "target": 336}, {"source": 84, "target": 340}, {"source": 84, "target": 160}, {"source": 84, "target": 456}, {"source": 84, "target": 442}, {"source": 86, "target": 361}, {"source": 86, "target": 307}, {"source": 86, "target": 87}, {"source": 86, "target": 97}, {"source": 86, "target": 118}, {"source": 86, "target": 293}, {"source": 87, "target": 270}, {"source": 87, "target": 271}, {"source": 87, "target": 411}, {"source": 87, "target": 198}, {"source": 87, "target": 272}, {"source": 87, "target": 324}, {"source": 87, "target": 32}, {"source": 87, "target": 144}, {"source": 87, "target": 122}, {"source": 87, "target": 96}, {"source": 88, "target": 348}, {"source": 88, "target": 391}, {"source": 88, "target": 1}, {"source": 90, "target": 325}, {"source": 90, "target": 435}, {"source": 90, "target": 434}, {"source": 91, "target": 329}, {"source": 91, "target": 158}, {"source": 91, "target": 333}, {"source": 92, "target": 182}, {"source": 92, "target": 239}, {"source": 92, "target": 279}, {"source": 92, "target": 463}, {"source": 92, "target": 222}, {"source": 93, "target": 62}, {"source": 93, "target": 104}, {"source": 93, "target": 67}, {"source": 93, "target": 202}, {"source": 95, "target": 423}, {"source": 95, "target": 265}, {"source": 95, "target": 278}, {"source": 95, "target": 213}, {"source": 97, "target": 336}, {"source": 97, "target": 160}, {"source": 97, "target": 417}, {"source": 97, "target": 122}, {"source": 97, "target": 96}, {"source": 96, "target": 122}, {"source": 96, "target": 98}, {"source": 96, "target": 429}, {"source": 96, "target": 416}, {"source": 100, "target": 262}, {"source": 100, "target": 115}, {"source": 100, "target": 119}, {"source": 100, "target": 180}, {"source": 100, "target": 116}, {"source": 101, "target": 159}, {"source": 101, "target": 33}, {"source": 101, "target": 149}, {"source": 101, "target": 130}, {"source": 101, "target": 158}, {"source": 101, "target": 284}, {"source": 101, "target": 157}, {"source": 101, "target": 379}, {"source": 104, "target": 93}, {"source": 104, "target": 202}, {"source": 104, "target": 62}, {"source": 104, "target": 67}, {"source": 104, "target": 183}, {"source": 106, "target": 191}, {"source": 106, "target": 198}, {"source": 106, "target": 236}, {"source": 106, "target": 199}, {"source": 106, "target": 144}, {"source": 106, "target": 21}, {"source": 106, "target": 329}, {"source": 106, "target": 330}, {"source": 106, "target": 294}, {"source": 108, "target": 231}, {"source": 108, "target": 438}, {"source": 108, "target": 402}, {"source": 108, "target": 59}, {"source": 109, "target": 97}, {"source": 109, "target": 296}, {"source": 109, "target": 450}, {"source": 111, "target": 283}, {"source": 111, "target": 157}, {"source": 111, "target": 410}, {"source": 111, "target": 453}, {"source": 111, "target": 358}, {"source": 111, "target": 308}, {"source": 113, "target": 331}, {"source": 113, "target": 23}, {"source": 113, "target": 154}, {"source": 114, "target": 246}, {"source": 114, "target": 346}, {"source": 114, "target": 118}, {"source": 114, "target": 120}, {"source": 114, "target": 285}, {"source": 116, "target": 114}, {"source": 116, "target": 119}, {"source": 116, "target": 346}, {"source": 116, "target": 285}, {"source": 116, "target": 335}, {"source": 119, "target": 262}, {"source": 119, "target": 8}, {"source": 119, "target": 266}, {"source": 119, "target": 115}, {"source": 119, "target": 285}, {"source": 119, "target": 267}, {"source": 119, "target": 116}, {"source": 118, "target": 357}, {"source": 118, "target": 115}, {"source": 118, "target": 316}, {"source": 118, "target": 114}, {"source": 118, "target": 246}, {"source": 118, "target": 32}, {"source": 118, "target": 269}, {"source": 118, "target": 285}, {"source": 118, "target": 444}, {"source": 120, "target": 246}, {"source": 120, "target": 114}, {"source": 121, "target": 321}, {"source": 121, "target": 122}, {"source": 121, "target": 160}, {"source": 121, "target": 205}, {"source": 122, "target": 60}, {"source": 122, "target": 32}, {"source": 122, "target": 87}, {"source": 122, "target": 96}, {"source": 122, "target": 268}, {"source": 122, "target": 97}, {"source": 122, "target": 269}, {"source": 122, "target": 369}, {"source": 122, "target": 444}, {"source": 122, "target": 380}, {"source": 122, "target": 416}, {"source": 122, "target": 69}, {"source": 124, "target": 426}, {"source": 124, "target": 292}, {"source": 124, "target": 112}, {"source": 126, "target": 73}, {"source": 126, "target": 130}, {"source": 126, "target": 15}, {"source": 126, "target": 76}, {"source": 126, "target": 290}, {"source": 126, "target": 444}, {"source": 128, "target": 455}, {"source": 128, "target": 324}, {"source": 128, "target": 434}, {"source": 129, "target": 373}, {"source": 129, "target": 443}, {"source": 129, "target": 341}, {"source": 129, "target": 126}, {"source": 129, "target": 384}, {"source": 130, "target": 20}, {"source": 130, "target": 234}, {"source": 130, "target": 126}, {"source": 130, "target": 444}, {"source": 130, "target": 442}, {"source": 132, "target": 60}, {"source": 132, "target": 161}, {"source": 132, "target": 250}, {"source": 132, "target": 380}, {"source": 133, "target": 60}, {"source": 133, "target": 39}, {"source": 133, "target": 29}, {"source": 133, "target": 61}, {"source": 133, "target": 139}, {"source": 133, "target": 251}, {"source": 135, "target": 349}, {"source": 135, "target": 316}, {"source": 135, "target": 65}, {"source": 135, "target": 62}, {"source": 135, "target": 46}, {"source": 135, "target": 40}, {"source": 135, "target": 444}, {"source": 135, "target": 434}, {"source": 134, "target": 172}, {"source": 134, "target": 98}, {"source": 134, "target": 15}, {"source": 134, "target": 444}, {"source": 137, "target": 320}, {"source": 137, "target": 225}, {"source": 137, "target": 414}, {"source": 137, "target": 319}, {"source": 137, "target": 378}, {"source": 138, "target": 336}, {"source": 138, "target": 391}, {"source": 138, "target": 413}, {"source": 138, "target": 464}, {"source": 139, "target": 60}, {"source": 139, "target": 161}, {"source": 139, "target": 133}, {"source": 139, "target": 61}, {"source": 139, "target": 249}, {"source": 139, "target": 380}, {"source": 139, "target": 132}, {"source": 140, "target": 413}, {"source": 140, "target": 88}, {"source": 140, "target": 391}, {"source": 140, "target": 40}, {"source": 142, "target": 340}, {"source": 142, "target": 387}, {"source": 142, "target": 224}, {"source": 144, "target": 198}, {"source": 144, "target": 411}, {"source": 144, "target": 87}, {"source": 144, "target": 199}, {"source": 144, "target": 122}, {"source": 144, "target": 416}, {"source": 145, "target": 147}, {"source": 145, "target": 56}, {"source": 145, "target": 449}, {"source": 145, "target": 209}, {"source": 145, "target": 146}, {"source": 148, "target": 101}, {"source": 148, "target": 83}, {"source": 148, "target": 158}, {"source": 149, "target": 101}, {"source": 149, "target": 284}, {"source": 149, "target": 157}, {"source": 149, "target": 459}, {"source": 150, "target": 312}, {"source": 150, "target": 142}, {"source": 150, "target": 340}, {"source": 150, "target": 84}, {"source": 151, "target": 307}, {"source": 151, "target": 118}, {"source": 151, "target": 114}, {"source": 151, "target": 285}, {"source": 152, "target": 420}, {"source": 152, "target": 153}, {"source": 152, "target": 117}, {"source": 153, "target": 164}, {"source": 153, "target": 336}, {"source": 153, "target": 196}, {"source": 153, "target": 338}, {"source": 153, "target": 420}, {"source": 153, "target": 152}, {"source": 153, "target": 163}, {"source": 153, "target": 79}, {"source": 153, "target": 244}, {"source": 154, "target": 44}, {"source": 154, "target": 331}, {"source": 154, "target": 184}, {"source": 155, "target": 415}, {"source": 155, "target": 246}, {"source": 155, "target": 177}, {"source": 155, "target": 114}, {"source": 156, "target": 381}, {"source": 156, "target": 192}, {"source": 156, "target": 222}, {"source": 156, "target": 195}, {"source": 158, "target": 159}, {"source": 158, "target": 38}, {"source": 158, "target": 467}, {"source": 158, "target": 148}, {"source": 158, "target": 280}, {"source": 158, "target": 83}, {"source": 158, "target": 344}, {"source": 158, "target": 329}, {"source": 158, "target": 101}, {"source": 159, "target": 101}, {"source": 159, "target": 158}, {"source": 159, "target": 329}, {"source": 157, "target": 172}, {"source": 157, "target": 388}, {"source": 157, "target": 149}, {"source": 157, "target": 367}, {"source": 157, "target": 410}, {"source": 157, "target": 101}, {"source": 157, "target": 400}, {"source": 160, "target": 336}, {"source": 160, "target": 84}, {"source": 160, "target": 442}, {"source": 161, "target": 60}, {"source": 161, "target": 300}, {"source": 161, "target": 250}, {"source": 161, "target": 132}, {"source": 162, "target": 48}, {"source": 162, "target": 263}, {"source": 162, "target": 194}, {"source": 162, "target": 469}, {"source": 164, "target": 163}, {"source": 164, "target": 153}, {"source": 164, "target": 295}, {"source": 165, "target": 73}, {"source": 165, "target": 336}, {"source": 165, "target": 130}, {"source": 165, "target": 205}, {"source": 165, "target": 256}, {"source": 165, "target": 444}, {"source": 166, "target": 288}, {"source": 166, "target": 216}, {"source": 166, "target": 318}, {"source": 166, "target": 30}, {"source": 166, "target": 243}, {"source": 167, "target": 93}, {"source": 167, "target": 304}, {"source": 167, "target": 297}, {"source": 167, "target": 168}, {"source": 169, "target": 51}, {"source": 169, "target": 298}, {"source": 169, "target": 50}, {"source": 169, "target": 395}, {"source": 170, "target": 289}, {"source": 170, "target": 171}, {"source": 170, "target": 157}, {"source": 170, "target": 355}, {"source": 170, "target": 410}, {"source": 171, "target": 410}, {"source": 171, "target": 170}, {"source": 171, "target": 157}, {"source": 171, "target": 355}, {"source": 172, "target": 130}, {"source": 172, "target": 158}, {"source": 172, "target": 449}, {"source": 172, "target": 234}, {"source": 172, "target": 118}, {"source": 172, "target": 134}, {"source": 172, "target": 98}, {"source": 173, "target": 246}, {"source": 173, "target": 285}, {"source": 173, "target": 177}, {"source": 173, "target": 114}, {"source": 175, "target": 37}, {"source": 175, "target": 388}, {"source": 175, "target": 157}, {"source": 175, "target": 371}, {"source": 175, "target": 410}, {"source": 176, "target": 421}, {"source": 176, "target": 186}, {"source": 176, "target": 210}, {"source": 176, "target": 215}, {"source": 177, "target": 246}, {"source": 177, "target": 155}, {"source": 177, "target": 114}, {"source": 178, "target": 360}, {"source": 178, "target": 328}, {"source": 178, "target": 256}, {"source": 178, "target": 449}, {"source": 180, "target": 187}, {"source": 180, "target": 262}, {"source": 180, "target": 116}, {"source": 180, "target": 285}, {"source": 181, "target": 288}, {"source": 181, "target": 287}, {"source": 181, "target": 473}, {"source": 181, "target": 406}, {"source": 181, "target": 227}, {"source": 182, "target": 192}, {"source": 182, "target": 411}, {"source": 182, "target": 195}, {"source": 182, "target": 381}, {"source": 182, "target": 219}, {"source": 182, "target": 279}, {"source": 182, "target": 222}, {"source": 183, "target": 65}, {"source": 183, "target": 316}, {"source": 183, "target": 67}, {"source": 183, "target": 444}, {"source": 183, "target": 104}, {"source": 183, "target": 275}, {"source": 184, "target": 3}, {"source": 184, "target": 67}, {"source": 184, "target": 154}, {"source": 184, "target": 12}, {"source": 185, "target": 67}, {"source": 185, "target": 154}, {"source": 185, "target": 184}, {"source": 186, "target": 213}, {"source": 186, "target": 210}, {"source": 186, "target": 422}, {"source": 186, "target": 215}, {"source": 186, "target": 11}, {"source": 190, "target": 65}, {"source": 190, "target": 71}, {"source": 191, "target": 107}, {"source": 191, "target": 236}, {"source": 191, "target": 106}, {"source": 191, "target": 237}, {"source": 191, "target": 21}, {"source": 191, "target": 13}, {"source": 192, "target": 182}, {"source": 192, "target": 334}, {"source": 192, "target": 390}, {"source": 192, "target": 411}, {"source": 192, "target": 239}, {"source": 192, "target": 381}, {"source": 192, "target": 222}, {"source": 194, "target": 162}, {"source": 194, "target": 263}, {"source": 194, "target": 469}, {"source": 195, "target": 182}, {"source": 195, "target": 192}, {"source": 195, "target": 462}, {"source": 195, "target": 219}, {"source": 195, "target": 279}, {"source": 195, "target": 156}, {"source": 195, "target": 222}, {"source": 196, "target": 153}, {"source": 196, "target": 79}, {"source": 198, "target": 56}, {"source": 198, "target": 87}, {"source": 198, "target": 199}, {"source": 198, "target": 144}, {"source": 198, "target": 294}, {"source": 199, "target": 250}, {"source": 199, "target": 198}, {"source": 199, "target": 144}, {"source": 199, "target": 56}, {"source": 200, "target": 393}, {"source": 200, "target": 46}, {"source": 200, "target": 391}, {"source": 200, "target": 188}, {"source": 201, "target": 128}, {"source": 201, "target": 135}, {"source": 201, "target": 434}, {"source": 203, "target": 38}, {"source": 203, "target": 202}, {"source": 203, "target": 474}, {"source": 203, "target": 67}, {"source": 203, "target": 444}, {"source": 206, "target": 205}, {"source": 206, "target": 310}, {"source": 206, "target": 298}, {"source": 206, "target": 256}, {"source": 205, "target": 202}, {"source": 205, "target": 121}, {"source": 205, "target": 291}, {"source": 205, "target": 426}, {"source": 205, "target": 42}, {"source": 205, "target": 256}, {"source": 205, "target": 444}, {"source": 205, "target": 275}, {"source": 209, "target": 172}, {"source": 209, "target": 145}, {"source": 209, "target": 56}, {"source": 209, "target": 146}, {"source": 202, "target": 93}, {"source": 202, "target": 389}, {"source": 202, "target": 205}, {"source": 202, "target": 67}, {"source": 202, "target": 275}, {"source": 213, "target": 95}, {"source": 213, "target": 114}, {"source": 213, "target": 265}, {"source": 213, "target": 215}, {"source": 213, "target": 186}, {"source": 214, "target": 166}, {"source": 214, "target": 216}, {"source": 214, "target": 473}, {"source": 214, "target": 212}, {"source": 214, "target": 243}, {"source": 215, "target": 422}, {"source": 215, "target": 55}, {"source": 215, "target": 213}, {"source": 215, "target": 186}, {"source": 217, "target": 265}, {"source": 217, "target": 285}, {"source": 217, "target": 213}, {"source": 217, "target": 118}, {"source": 218, "target": 241}, {"source": 218, "target": 252}, {"source": 218, "target": 472}, {"source": 218, "target": 71}, {"source": 219, "target": 182}, {"source": 219, "target": 192}, {"source": 219, "target": 390}, {"source": 219, "target": 195}, {"source": 219, "target": 381}, {"source": 219, "target": 279}, {"source": 219, "target": 222}, {"source": 219, "target": 69}, {"source": 220, "target": 274}, {"source": 220, "target": 26}, {"source": 220, "target": 193}, {"source": 220, "target": 447}, {"source": 220, "target": 461}, {"source": 220, "target": 260}, {"source": 220, "target": 69}, {"source": 221, "target": 283}, {"source": 221, "target": 157}, {"source": 221, "target": 410}, {"source": 221, "target": 453}, {"source": 221, "target": 111}, {"source": 221, "target": 405}, {"source": 221, "target": 454}, {"source": 223, "target": 345}, {"source": 223, "target": 342}, {"source": 223, "target": 280}, {"source": 222, "target": 381}, {"source": 222, "target": 192}, {"source": 222, "target": 92}, {"source": 224, "target": 311}, {"source": 224, "target": 340}, {"source": 224, "target": 142}, {"source": 225, "target": 414}, {"source": 225, "target": 411}, {"source": 225, "target": 137}, {"source": 225, "target": 19}, {"source": 225, "target": 416}, {"source": 226, "target": 181}, {"source": 226, "target": 166}, {"source": 226, "target": 78}, {"source": 226, "target": 354}, {"source": 229, "target": 306}, {"source": 229, "target": 111}, {"source": 229, "target": 289}, {"source": 230, "target": 231}, {"source": 230, "target": 377}, {"source": 230, "target": 356}, {"source": 231, "target": 7}, {"source": 231, "target": 402}, {"source": 231, "target": 108}, {"source": 231, "target": 259}, {"source": 231, "target": 282}, {"source": 232, "target": 373}, {"source": 232, "target": 158}, {"source": 233, "target": 289}, {"source": 233, "target": 352}, {"source": 233, "target": 157}, {"source": 233, "target": 410}, {"source": 233, "target": 453}, {"source": 234, "target": 172}, {"source": 234, "target": 440}, {"source": 234, "target": 130}, {"source": 234, "target": 126}, {"source": 235, "target": 435}, {"source": 235, "target": 434}, {"source": 237, "target": 107}, {"source": 237, "target": 191}, {"source": 237, "target": 236}, {"source": 237, "target": 21}, {"source": 238, "target": 271}, {"source": 238, "target": 268}, {"source": 239, "target": 192}, {"source": 239, "target": 182}, {"source": 239, "target": 334}, {"source": 239, "target": 411}, {"source": 239, "target": 92}, {"source": 239, "target": 279}, {"source": 239, "target": 222}, {"source": 241, "target": 218}, {"source": 241, "target": 252}, {"source": 241, "target": 71}, {"source": 242, "target": 471}, {"source": 242, "target": 386}, {"source": 242, "target": 71}, {"source": 243, "target": 166}, {"source": 243, "target": 55}, {"source": 243, "target": 354}, {"source": 243, "target": 214}, {"source": 244, "target": 153}, {"source": 244, "target": 441}, {"source": 245, "target": 139}, {"source": 245, "target": 133}, {"source": 245, "target": 24}, {"source": 246, "target": 415}, {"source": 246, "target": 118}, {"source": 246, "target": 177}, {"source": 246, "target": 114}, {"source": 247, "target": 470}, {"source": 247, "target": 338}, {"source": 247, "target": 25}, {"source": 248, "target": 60}, {"source": 248, "target": 161}, {"source": 248, "target": 250}, {"source": 248, "target": 27}, {"source": 248, "target": 132}, {"source": 251, "target": 133}, {"source": 251, "target": 61}, {"source": 251, "target": 4}, {"source": 251, "target": 261}, {"source": 250, "target": 60}, {"source": 250, "target": 161}, {"source": 250, "target": 143}, {"source": 250, "target": 157}, {"source": 250, "target": 248}, {"source": 250, "target": 132}, {"source": 252, "target": 382}, {"source": 252, "target": 218}, {"source": 252, "target": 451}, {"source": 252, "target": 241}, {"source": 252, "target": 71}, {"source": 253, "target": 471}, {"source": 253, "target": 28}, {"source": 253, "target": 412}, {"source": 253, "target": 39}, {"source": 253, "target": 386}, {"source": 253, "target": 463}, {"source": 255, "target": 351}, {"source": 255, "target": 39}, {"source": 255, "target": 386}, {"source": 255, "target": 254}, {"source": 255, "target": 131}, {"source": 257, "target": 448}, {"source": 257, "target": 194}, {"source": 256, "target": 53}, {"source": 256, "target": 426}, {"source": 256, "target": 205}, {"source": 256, "target": 42}, {"source": 256, "target": 50}, {"source": 256, "target": 444}, {"source": 256, "target": 395}, {"source": 259, "target": 231}, {"source": 259, "target": 7}, {"source": 259, "target": 6}, {"source": 259, "target": 359}, {"source": 260, "target": 274}, {"source": 260, "target": 26}, {"source": 260, "target": 220}, {"source": 260, "target": 193}, {"source": 260, "target": 447}, {"source": 260, "target": 461}, {"source": 260, "target": 279}, {"source": 262, "target": 349}, {"source": 262, "target": 316}, {"source": 262, "target": 271}, {"source": 262, "target": 411}, {"source": 262, "target": 317}, {"source": 263, "target": 262}, {"source": 263, "target": 194}, {"source": 263, "target": 48}, {"source": 263, "target": 469}, {"source": 264, "target": 205}, {"source": 264, "target": 286}, {"source": 264, "target": 313}, {"source": 264, "target": 81}, {"source": 264, "target": 275}, {"source": 265, "target": 213}, {"source": 265, "target": 95}, {"source": 265, "target": 210}, {"source": 265, "target": 118}, {"source": 265, "target": 215}, {"source": 267, "target": 123}, {"source": 267, "target": 266}, {"source": 267, "target": 31}, {"source": 267, "target": 119}, {"source": 267, "target": 96}, {"source": 268, "target": 271}, {"source": 268, "target": 122}, {"source": 268, "target": 160}, {"source": 268, "target": 32}, {"source": 269, "target": 122}, {"source": 269, "target": 324}, {"source": 269, "target": 32}, {"source": 269, "target": 416}, {"source": 271, "target": 411}, {"source": 271, "target": 87}, {"source": 271, "target": 268}, {"source": 271, "target": 417}, {"source": 271, "target": 96}, {"source": 272, "target": 370}, {"source": 272, "target": 411}, {"source": 272, "target": 324}, {"source": 272, "target": 87}, {"source": 272, "target": 416}, {"source": 273, "target": 16}, {"source": 273, "target": 26}, {"source": 273, "target": 381}, {"source": 273, "target": 279}, {"source": 273, "target": 219}, {"source": 273, "target": 463}, {"source": 273, "target": 69}, {"source": 275, "target": 205}, {"source": 275, "target": 160}, {"source": 275, "target": 67}, {"source": 275, "target": 286}, {"source": 276, "target": 205}, {"source": 276, "target": 413}, {"source": 276, "target": 391}, {"source": 277, "target": 60}, {"source": 277, "target": 250}, {"source": 277, "target": 249}, {"source": 277, "target": 380}, {"source": 277, "target": 132}, {"source": 280, "target": 38}, {"source": 280, "target": 75}, {"source": 280, "target": 158}, {"source": 280, "target": 223}, {"source": 280, "target": 342}, {"source": 281, "target": 197}, {"source": 281, "target": 26}, {"source": 281, "target": 195}, {"source": 281, "target": 193}, {"source": 281, "target": 462}, {"source": 281, "target": 447}, {"source": 281, "target": 279}, {"source": 279, "target": 182}, {"source": 279, "target": 334}, {"source": 279, "target": 274}, {"source": 279, "target": 195}, {"source": 279, "target": 462}, {"source": 279, "target": 239}, {"source": 279, "target": 381}, {"source": 279, "target": 92}, {"source": 279, "target": 219}, {"source": 279, "target": 463}, {"source": 279, "target": 260}, {"source": 279, "target": 222}, {"source": 283, "target": 221}, {"source": 283, "target": 453}, {"source": 283, "target": 111}, {"source": 284, "target": 101}, {"source": 284, "target": 149}, {"source": 284, "target": 379}, {"source": 284, "target": 157}, {"source": 285, "target": 114}, {"source": 285, "target": 116}, {"source": 285, "target": 179}, {"source": 285, "target": 118}, {"source": 285, "target": 419}, {"source": 285, "target": 151}, {"source": 286, "target": 38}, {"source": 286, "target": 383}, {"source": 286, "target": 264}, {"source": 286, "target": 275}, {"source": 288, "target": 473}, {"source": 288, "target": 166}, {"source": 288, "target": 181}, {"source": 288, "target": 211}, {"source": 289, "target": 388}, {"source": 289, "target": 157}, {"source": 289, "target": 410}, {"source": 289, "target": 453}, {"source": 289, "target": 111}, {"source": 289, "target": 454}, {"source": 289, "target": 43}, {"source": 290, "target": 76}, {"source": 290, "target": 444}, {"source": 290, "target": 126}, {"source": 290, "target": 409}, {"source": 291, "target": 205}, {"source": 291, "target": 426}, {"source": 291, "target": 256}, {"source": 293, "target": 114}, {"source": 293, "target": 97}, {"source": 293, "target": 118}, {"source": 293, "target": 86}, {"source": 293, "target": 285}, {"source": 294, "target": 198}, {"source": 294, "target": 106}, {"source": 294, "target": 199}, {"source": 294, "target": 144}, {"source": 294, "target": 21}, {"source": 297, "target": 93}, {"source": 297, "target": 104}, {"source": 297, "target": 183}, {"source": 297, "target": 67}, {"source": 298, "target": 51}, {"source": 298, "target": 206}, {"source": 298, "target": 310}, {"source": 298, "target": 426}, {"source": 298, "target": 256}, {"source": 298, "target": 395}, {"source": 299, "target": 101}, {"source": 299, "target": 353}, {"source": 299, "target": 83}, {"source": 299, "target": 232}, {"source": 300, "target": 60}, {"source": 300, "target": 161}, {"source": 300, "target": 444}, {"source": 300, "target": 132}, {"source": 301, "target": 381}, {"source": 301, "target": 279}, {"source": 301, "target": 222}, {"source": 301, "target": 219}, {"source": 302, "target": 262}, {"source": 302, "target": 316}, {"source": 302, "target": 386}, {"source": 302, "target": 411}, {"source": 302, "target": 87}, {"source": 302, "target": 317}, {"source": 304, "target": 67}, {"source": 304, "target": 297}, {"source": 304, "target": 167}, {"source": 304, "target": 54}, {"source": 305, "target": 433}, {"source": 305, "target": 208}, {"source": 305, "target": 145}, {"source": 305, "target": 449}, {"source": 306, "target": 229}, {"source": 306, "target": 403}, {"source": 306, "target": 453}, {"source": 306, "target": 111}, {"source": 307, "target": 114}, {"source": 307, "target": 97}, {"source": 307, "target": 177}, {"source": 307, "target": 285}, {"source": 309, "target": 320}, {"source": 309, "target": 225}, {"source": 309, "target": 414}, {"source": 310, "target": 51}, {"source": 310, "target": 206}, {"source": 310, "target": 426}, {"source": 310, "target": 205}, {"source": 310, "target": 298}, {"source": 313, "target": 38}, {"source": 313, "target": 389}, {"source": 313, "target": 314}, {"source": 313, "target": 81}, {"source": 313, "target": 264}, {"source": 314, "target": 38}, {"source": 314, "target": 262}, {"source": 314, "target": 316}, {"source": 314, "target": 65}, {"source": 314, "target": 313}, {"source": 314, "target": 444}, {"source": 314, "target": 183}, {"source": 315, "target": 349}, {"source": 315, "target": 316}, {"source": 315, "target": 411}, {"source": 315, "target": 386}, {"source": 315, "target": 183}, {"source": 316, "target": 262}, {"source": 316, "target": 332}, {"source": 316, "target": 349}, {"source": 316, "target": 317}, {"source": 316, "target": 444}, {"source": 316, "target": 183}, {"source": 318, "target": 103}, {"source": 318, "target": 320}, {"source": 318, "target": 414}, {"source": 318, "target": 137}, {"source": 320, "target": 103}, {"source": 320, "target": 225}, {"source": 320, "target": 85}, {"source": 320, "target": 309}, {"source": 320, "target": 137}, {"source": 320, "target": 10}, {"source": 321, "target": 121}, {"source": 321, "target": 205}, {"source": 321, "target": 398}, {"source": 322, "target": 56}, {"source": 322, "target": 198}, {"source": 322, "target": 87}, {"source": 322, "target": 199}, {"source": 322, "target": 144}, {"source": 324, "target": 411}, {"source": 324, "target": 269}, {"source": 324, "target": 87}, {"source": 324, "target": 416}, {"source": 326, "target": 325}, {"source": 326, "target": 201}, {"source": 326, "target": 434}, {"source": 328, "target": 20}, {"source": 328, "target": 449}, {"source": 328, "target": 360}, {"source": 328, "target": 118}, {"source": 328, "target": 178}, {"source": 328, "target": 233}, {"source": 330, "target": 107}, {"source": 330, "target": 236}, {"source": 330, "target": 106}, {"source": 330, "target": 21}, {"source": 330, "target": 329}, {"source": 329, "target": 158}, {"source": 329, "target": 381}, {"source": 329, "target": 240}, {"source": 329, "target": 91}, {"source": 329, "target": 69}, {"source": 329, "target": 333}, {"source": 331, "target": 113}, {"source": 331, "target": 303}, {"source": 331, "target": 154}, {"source": 331, "target": 184}, {"source": 333, "target": 329}, {"source": 333, "target": 34}, {"source": 333, "target": 91}, {"source": 333, "target": 158}, {"source": 334, "target": 92}, {"source": 334, "target": 192}, {"source": 334, "target": 279}, {"source": 334, "target": 222}, {"source": 338, "target": 312}, {"source": 338, "target": 385}, {"source": 338, "target": 150}, {"source": 338, "target": 247}, {"source": 338, "target": 153}, {"source": 338, "target": 470}, {"source": 339, "target": 444}, {"source": 339, "target": 256}, {"source": 336, "target": 160}, {"source": 336, "target": 470}, {"source": 336, "target": 456}, {"source": 336, "target": 444}, {"source": 336, "target": 165}, {"source": 336, "target": 84}, {"source": 336, "target": 442}, {"source": 340, "target": 150}, {"source": 340, "target": 457}, {"source": 340, "target": 35}, {"source": 340, "target": 142}, {"source": 340, "target": 424}, {"source": 340, "target": 136}, {"source": 342, "target": 38}, {"source": 342, "target": 280}, {"source": 342, "target": 347}, {"source": 342, "target": 345}, {"source": 342, "target": 418}, {"source": 343, "target": 342}, {"source": 343, "target": 347}, {"source": 343, "target": 418}, {"source": 344, "target": 467}, {"source": 344, "target": 347}, {"source": 344, "target": 158}, {"source": 345, "target": 38}, {"source": 345, "target": 342}, {"source": 345, "target": 280}, {"source": 345, "target": 75}, {"source": 347, "target": 38}, {"source": 347, "target": 342}, {"source": 347, "target": 418}, {"source": 347, "target": 344}, {"source": 346, "target": 246}, {"source": 346, "target": 114}, {"source": 349, "target": 262}, {"source": 349, "target": 332}, {"source": 349, "target": 65}, {"source": 349, "target": 316}, {"source": 349, "target": 444}, {"source": 351, "target": 386}, {"source": 351, "target": 254}, {"source": 351, "target": 350}, {"source": 351, "target": 205}, {"source": 351, "target": 255}, {"source": 352, "target": 428}, {"source": 352, "target": 289}, {"source": 352, "target": 157}, {"source": 352, "target": 410}, {"source": 352, "target": 453}, {"source": 352, "target": 233}, {"source": 353, "target": 158}, {"source": 353, "target": 299}, {"source": 353, "target": 232}, {"source": 353, "target": 36}, {"source": 354, "target": 166}, {"source": 354, "target": 55}, {"source": 354, "target": 288}, {"source": 354, "target": 214}, {"source": 354, "target": 243}, {"source": 355, "target": 289}, {"source": 355, "target": 171}, {"source": 355, "target": 170}, {"source": 355, "target": 157}, {"source": 355, "target": 410}, {"source": 361, "target": 97}, {"source": 361, "target": 86}, {"source": 362, "target": 172}, {"source": 362, "target": 15}, {"source": 362, "target": 165}, {"source": 362, "target": 449}, {"source": 362, "target": 98}, {"source": 363, "target": 187}, {"source": 363, "target": 392}, {"source": 363, "target": 174}, {"source": 363, "target": 450}, {"source": 367, "target": 101}, {"source": 367, "target": 284}, {"source": 367, "target": 157}, {"source": 367, "target": 366}, {"source": 368, "target": 101}, {"source": 368, "target": 299}, {"source": 368, "target": 158}, {"source": 368, "target": 366}, {"source": 371, "target": 175}, {"source": 371, "target": 388}, {"source": 371, "target": 410}, {"source": 371, "target": 157}, {"source": 373, "target": 232}, {"source": 373, "target": 445}, {"source": 374, "target": 51}, {"source": 374, "target": 426}, {"source": 374, "target": 256}, {"source": 374, "target": 50}, {"source": 374, "target": 444}, {"source": 374, "target": 395}, {"source": 375, "target": 65}, {"source": 375, "target": 426}, {"source": 375, "target": 439}, {"source": 375, "target": 267}, {"source": 375, "target": 52}, {"source": 375, "target": 275}, {"source": 379, "target": 101}, {"source": 379, "target": 284}, {"source": 379, "target": 157}, {"source": 380, "target": 60}, {"source": 380, "target": 286}, {"source": 380, "target": 444}, {"source": 380, "target": 122}, {"source": 381, "target": 192}, {"source": 381, "target": 66}, {"source": 381, "target": 0}, {"source": 381, "target": 156}, {"source": 381, "target": 222}, {"source": 381, "target": 416}, {"source": 383, "target": 444}, {"source": 383, "target": 122}, {"source": 387, "target": 457}, {"source": 387, "target": 142}, {"source": 387, "target": 39}, {"source": 386, "target": 412}, {"source": 386, "target": 39}, {"source": 386, "target": 315}, {"source": 386, "target": 411}, {"source": 386, "target": 49}, {"source": 386, "target": 432}, {"source": 386, "target": 255}, {"source": 386, "target": 463}, {"source": 386, "target": 131}, {"source": 386, "target": 183}, {"source": 388, "target": 403}, {"source": 388, "target": 157}, {"source": 388, "target": 410}, {"source": 388, "target": 175}, {"source": 388, "target": 43}, {"source": 389, "target": 38}, {"source": 389, "target": 62}, {"source": 389, "target": 202}, {"source": 389, "target": 434}, {"source": 390, "target": 192}, {"source": 390, "target": 219}, {"source": 390, "target": 222}, {"source": 390, "target": 182}, {"source": 391, "target": 413}, {"source": 391, "target": 466}, {"source": 391, "target": 65}, {"source": 391, "target": 105}, {"source": 391, "target": 138}, {"source": 391, "target": 88}, {"source": 391, "target": 71}, {"source": 392, "target": 187}, {"source": 392, "target": 413}, {"source": 392, "target": 63}, {"source": 392, "target": 450}, {"source": 392, "target": 41}, {"source": 393, "target": 466}, {"source": 393, "target": 200}, {"source": 393, "target": 188}, {"source": 393, "target": 46}, {"source": 393, "target": 391}, {"source": 393, "target": 40}, {"source": 393, "target": 88}, {"source": 394, "target": 203}, {"source": 394, "target": 67}, {"source": 394, "target": 38}, {"source": 394, "target": 104}, {"source": 395, "target": 51}, {"source": 395, "target": 53}, {"source": 395, "target": 256}, {"source": 395, "target": 50}, {"source": 395, "target": 298}, {"source": 396, "target": 101}, {"source": 396, "target": 33}, {"source": 396, "target": 444}, {"source": 396, "target": 160}, {"source": 397, "target": 441}, {"source": 397, "target": 169}, {"source": 397, "target": 71}, {"source": 398, "target": 205}, {"source": 398, "target": 321}, {"source": 398, "target": 298}, {"source": 398, "target": 18}, {"source": 400, "target": 444}, {"source": 400, "target": 149}, {"source": 400, "target": 157}, {"source": 402, "target": 231}, {"source": 402, "target": 108}, {"source": 402, "target": 401}, {"source": 402, "target": 102}, {"source": 403, "target": 60}, {"source": 403, "target": 388}, {"source": 403, "target": 125}, {"source": 403, "target": 410}, {"source": 403, "target": 306}, {"source": 403, "target": 111}, {"source": 403, "target": 380}, {"source": 403, "target": 458}, {"source": 405, "target": 283}, {"source": 405, "target": 221}, {"source": 405, "target": 454}, {"source": 405, "target": 453}, {"source": 406, "target": 288}, {"source": 406, "target": 287}, {"source": 406, "target": 473}, {"source": 406, "target": 181}, {"source": 406, "target": 214}, {"source": 408, "target": 381}, {"source": 408, "target": 122}, {"source": 408, "target": 222}, {"source": 408, "target": 416}, {"source": 408, "target": 69}, {"source": 409, "target": 444}, {"source": 409, "target": 126}, {"source": 409, "target": 76}, {"source": 410, "target": 388}, {"source": 410, "target": 289}, {"source": 410, "target": 157}, {"source": 410, "target": 111}, {"source": 410, "target": 454}, {"source": 410, "target": 275}, {"source": 412, "target": 411}, {"source": 412, "target": 386}, {"source": 412, "target": 432}, {"source": 412, "target": 463}, {"source": 411, "target": 271}, {"source": 411, "target": 324}, {"source": 411, "target": 87}, {"source": 411, "target": 96}, {"source": 411, "target": 416}, {"source": 413, "target": 276}, {"source": 413, "target": 228}, {"source": 413, "target": 202}, {"source": 413, "target": 382}, {"source": 413, "target": 65}, {"source": 413, "target": 391}, {"source": 413, "target": 207}, {"source": 414, "target": 320}, {"source": 414, "target": 225}, {"source": 414, "target": 309}, {"source": 414, "target": 137}, {"source": 414, "target": 399}, {"source": 414, "target": 416}, {"source": 415, "target": 114}, {"source": 415, "target": 246}, {"source": 415, "target": 155}, {"source": 415, "target": 118}, {"source": 417, "target": 271}, {"source": 417, "target": 411}, {"source": 417, "target": 97}, {"source": 417, "target": 122}, {"source": 417, "target": 416}, {"source": 416, "target": 370}, {"source": 416, "target": 271}, {"source": 416, "target": 411}, {"source": 416, "target": 272}, {"source": 416, "target": 32}, {"source": 416, "target": 269}, {"source": 416, "target": 122}, {"source": 416, "target": 96}, {"source": 418, "target": 342}, {"source": 418, "target": 38}, {"source": 418, "target": 347}, {"source": 420, "target": 153}, {"source": 420, "target": 117}, {"source": 420, "target": 152}, {"source": 425, "target": 140}, {"source": 425, "target": 153}, {"source": 425, "target": 391}, {"source": 426, "target": 65}, {"source": 426, "target": 291}, {"source": 426, "target": 32}, {"source": 426, "target": 204}, {"source": 426, "target": 205}, {"source": 426, "target": 256}, {"source": 426, "target": 444}, {"source": 426, "target": 298}, {"source": 428, "target": 289}, {"source": 428, "target": 352}, {"source": 428, "target": 233}, {"source": 429, "target": 444}, {"source": 429, "target": 130}, {"source": 429, "target": 96}, {"source": 431, "target": 220}, {"source": 431, "target": 437}, {"source": 431, "target": 447}, {"source": 431, "target": 69}, {"source": 433, "target": 449}, {"source": 433, "target": 141}, {"source": 433, "target": 430}, {"source": 433, "target": 305}, {"source": 433, "target": 178}, {"source": 435, "target": 90}, {"source": 435, "target": 325}, {"source": 435, "target": 235}, {"source": 435, "target": 434}, {"source": 436, "target": 373}, {"source": 436, "target": 445}, {"source": 434, "target": 202}, {"source": 434, "target": 389}, {"source": 434, "target": 128}, {"source": 434, "target": 62}, {"source": 434, "target": 325}, {"source": 434, "target": 201}, {"source": 434, "target": 372}, {"source": 434, "target": 90}, {"source": 438, "target": 22}, {"source": 438, "target": 108}, {"source": 438, "target": 110}, {"source": 441, "target": 244}, {"source": 441, "target": 153}, {"source": 441, "target": 71}, {"source": 442, "target": 336}, {"source": 442, "target": 160}, {"source": 442, "target": 456}, {"source": 442, "target": 444}, {"source": 442, "target": 101}, {"source": 442, "target": 84}, {"source": 445, "target": 460}, {"source": 445, "target": 336}, {"source": 445, "target": 337}, {"source": 445, "target": 373}, {"source": 444, "target": 149}, {"source": 444, "target": 66}, {"source": 444, "target": 381}, {"source": 444, "target": 42}, {"source": 444, "target": 396}, {"source": 444, "target": 474}, {"source": 444, "target": 165}, {"source": 444, "target": 275}, {"source": 444, "target": 126}, {"source": 444, "target": 32}, {"source": 444, "target": 122}, {"source": 444, "target": 183}, {"source": 444, "target": 60}, {"source": 444, "target": 336}, {"source": 444, "target": 97}, {"source": 444, "target": 426}, {"source": 444, "target": 67}, {"source": 444, "target": 470}, {"source": 444, "target": 456}, {"source": 444, "target": 380}, {"source": 447, "target": 446}, {"source": 447, "target": 26}, {"source": 447, "target": 220}, {"source": 447, "target": 462}, {"source": 447, "target": 437}, {"source": 447, "target": 279}, {"source": 447, "target": 260}, {"source": 448, "target": 257}, {"source": 448, "target": 194}, {"source": 450, "target": 364}, {"source": 450, "target": 20}, {"source": 450, "target": 262}, {"source": 450, "target": 172}, {"source": 450, "target": 266}, {"source": 450, "target": 365}, {"source": 450, "target": 392}, {"source": 449, "target": 172}, {"source": 449, "target": 20}, {"source": 449, "target": 145}, {"source": 449, "target": 46}, {"source": 449, "target": 403}, {"source": 449, "target": 328}, {"source": 449, "target": 98}, {"source": 449, "target": 305}, {"source": 449, "target": 178}, {"source": 453, "target": 283}, {"source": 453, "target": 221}, {"source": 453, "target": 306}, {"source": 453, "target": 111}, {"source": 453, "target": 454}, {"source": 454, "target": 410}, {"source": 454, "target": 453}, {"source": 454, "target": 157}, {"source": 454, "target": 58}, {"source": 455, "target": 128}, {"source": 455, "target": 324}, {"source": 455, "target": 434}, {"source": 456, "target": 336}, {"source": 456, "target": 84}, {"source": 456, "target": 442}, {"source": 457, "target": 311}, {"source": 457, "target": 142}, {"source": 457, "target": 340}, {"source": 457, "target": 426}, {"source": 457, "target": 387}, {"source": 458, "target": 60}, {"source": 458, "target": 198}, {"source": 458, "target": 403}, {"source": 458, "target": 45}, {"source": 458, "target": 2}, {"source": 459, "target": 336}, {"source": 459, "target": 149}, {"source": 459, "target": 157}, {"source": 462, "target": 220}, {"source": 462, "target": 195}, {"source": 462, "target": 447}, {"source": 462, "target": 381}, {"source": 462, "target": 279}, {"source": 462, "target": 69}, {"source": 463, "target": 471}, {"source": 463, "target": 192}, {"source": 463, "target": 17}, {"source": 463, "target": 66}, {"source": 463, "target": 412}, {"source": 463, "target": 253}, {"source": 463, "target": 386}, {"source": 463, "target": 273}, {"source": 463, "target": 381}, {"source": 463, "target": 279}, {"source": 463, "target": 219}, {"source": 465, "target": 60}, {"source": 465, "target": 250}, {"source": 465, "target": 248}, {"source": 465, "target": 249}, {"source": 466, "target": 153}, {"source": 466, "target": 188}, {"source": 466, "target": 338}, {"source": 467, "target": 347}, {"source": 467, "target": 158}, {"source": 467, "target": 344}, {"source": 469, "target": 162}, {"source": 469, "target": 263}, {"source": 469, "target": 324}, {"source": 469, "target": 47}, {"source": 470, "target": 336}, {"source": 470, "target": 284}, {"source": 470, "target": 157}, {"source": 470, "target": 160}, {"source": 470, "target": 444}, {"source": 470, "target": 379}, {"source": 470, "target": 84}, {"source": 471, "target": 412}, {"source": 471, "target": 411}, {"source": 471, "target": 386}, {"source": 471, "target": 463}, {"source": 472, "target": 74}, {"source": 472, "target": 327}, {"source": 472, "target": 218}, {"source": 472, "target": 71}, {"source": 473, "target": 288}, {"source": 473, "target": 287}, {"source": 473, "target": 181}, {"source": 473, "target": 406}, {"source": 473, "target": 214}, {"source": 474, "target": 203}, {"source": 474, "target": 202}, {"source": 474, "target": 67}, {"source": 474, "target": 444}, {"source": 474, "target": 165}];
// Color by primary module
const moduleColors = {
"1": "#e94560", "2a": "#ff6b6b", "2b": "#ee5a24", "3": "#f0932b",
"4": "#f9ca24", "5": "#6ab04c", "6": "#78e08f", "7a": "#38ada9",
"7b": "#3dc1d3", "8a": "#4a69bd", "8b": "#6a89cc", "9a": "#a29bfe",
"9b": "#6c5ce7", "10": "#fd79a8", "11a": "#e17055", "11b": "#d63031",
"11c": "#b71540", "12": "#c44569", "13": "#574b90", "14": "#303952",
"15": "#6D214F", "16": "#182C61", "17": "#b33939",
"practical_1": "#45aaf2", "practical_2": "#2bcbba", "practical_3": "#fed330",
"practical_4": "#fc5c65", "practical_5": "#778ca3", "practical_6": "#4b7bec",
"practical_7": "#a55eea", "practical_8": "#d1d8e0", "practical_9": "#20bf6b",
"bonus_julia_autodiff": "#26de81", "bonus_transfer_learning": "#0fb9b1",
"bonus_privacy": "#2d98da", "bonus_graphs1": "#eb3b5a",
"bonus_graphs2": "#fa8231", "bonus_graphs3": "#8854d0",
};
function nodeColor(d) {
if (d.dangling) return "#444";
if (d.modules.length === 0) return "#888";
return moduleColors[d.modules[0]] || "#888";
}
function nodeRadius(d) {
if (d.dangling) return 2;
return Math.max(3, Math.min(12, 3 + d.linkCount * 0.5 + d.moduleCount * 1.5));
}
const width = window.innerWidth;
const height = window.innerHeight;
const svg = d3.select("svg");
const g = svg.append("g");
// Zoom
svg.call(d3.zoom()
.scaleExtent([0.1, 8])
.on("zoom", (e) => g.attr("transform", e.transform)));
const simulation = d3.forceSimulation(nodes)
.force("link", d3.forceLink(links).id(d => d.id).distance(40))
.force("charge", d3.forceManyBody().strength(-60))
.force("center", d3.forceCenter(width / 2, height / 2))
.force("collision", d3.forceCollide().radius(d => nodeRadius(d) + 2));
const link = g.append("g")
.selectAll("line")
.data(links)
.join("line")
.attr("class", "link");
const node = g.append("g")
.selectAll("g")
.data(nodes)
.join("g")
.attr("class", d => "node" + (d.dangling ? " dangling" : "") + (d.linkCount >= 8 ? " show-label" : ""))
.call(d3.drag()
.on("start", dragstarted)
.on("drag", dragged)
.on("end", dragended));
node.append("circle")
.attr("r", nodeRadius)
.attr("fill", nodeColor);
node.append("text")
.attr("dx", d => nodeRadius(d) + 3)
.attr("dy", "0.35em")
.text(d => d.name);
// Tooltip
const tooltip = d3.select("#tooltip");
node.on("mouseover", function(event, d) {
// Highlight connected links
link.classed("highlighted", l => l.source.id === d.id || l.target.id === d.id);
// Show tooltip
const mods = d.modules.length ? "Modules: " + d.modules.join(", ") : "Dangling reference";
tooltip.html(`<h3>${d.name}</h3><div class="modules">${mods}</div>`)
.style("display", "block")
.style("left", (event.clientX + 15) + "px")
.style("top", (event.clientY - 10) + "px");
// Show neighbor labels
const neighborIds = new Set();
links.forEach(l => {
if (l.source.id === d.id) neighborIds.add(l.target.id);
if (l.target.id === d.id) neighborIds.add(l.source.id);
});
node.classed("show-label", n => n.id === d.id || neighborIds.has(n.id) || n.linkCount >= 8);
}).on("mouseout", function() {
link.classed("highlighted", false);
tooltip.style("display", "none");
node.classed("show-label", d => d.linkCount >= 8);
});
// Search
d3.select("#search").on("input", function() {
const q = this.value.toLowerCase();
if (!q) {
node.style("opacity", 1);
link.style("opacity", 1);
node.classed("show-label", d => d.linkCount >= 8);
return;
}
node.style("opacity", d => d.name.toLowerCase().includes(q) ? 1 : 0.1);
node.classed("show-label", d => d.name.toLowerCase().includes(q));
link.style("opacity", 0.05);
});
simulation.on("tick", () => {
link.attr("x1", d => d.source.x).attr("y1", d => d.source.y)
.attr("x2", d => d.target.x).attr("y2", d => d.target.y);
node.attr("transform", d => `translate(${d.x},${d.y})`);
});
function dragstarted(event) {
if (!event.active) simulation.alphaTarget(0.3).restart();
event.subject.fx = event.subject.x;
event.subject.fy = event.subject.y;
}
function dragged(event) {
event.subject.fx = event.x;
event.subject.fy = event.y;
}
function dragended(event) {
if (!event.active) simulation.alphaTarget(0);
event.subject.fx = null;
event.subject.fy = null;
}
</script>
</body>
</html>