├── README.md
├── images
├── LeNetwithL0.png
└── LeNetwithoutL0.png
├── l0module.py
├── mnist.py
├── notebooks
└── hard_concrete.ipynb
└── trainer.py
/README.md:
--------------------------------------------------------------------------------
1 | # l0.pytorch
2 |
3 | An implementation of **Learning Sparse Neural Networks through $L_0$ Regularization** by C. Louizos, M. Welling and D.P. Kingma.
4 |
5 | ## Contents
6 |
7 | * [LeNet5 with MNIST w/ and w/o L0 norm](mnist.py)
8 | + `python mnist.py [--baseline]`. `--baseline` is for without L0 norm (original LeNet5).
9 | + LeNet5 with L0 regularization achieves 0.9% validation error as mentioned in the paper.
10 |
11 | * [an interactive explanation about the hard concrete distribution](notebooks/hard_concrete.ipynb)
12 |
13 | ## Requirements
14 |
15 | * PyTorch 0.3/ torchvision 0.2
16 | * tensorboard-pytorch
17 | * tqdm
18 |
19 | ## Results
20 |
21 | ### LeNet5
22 |
23 | Not yet strictly measure how sparse the L0 regularized model is, but show histograms of the first convolutional layers' weights.
24 |
25 | * with L0 normalization
26 |
27 | 
28 |
29 | * without L0 normalization
30 |
31 | 
32 |
33 | ## ToDo
34 |
35 | - [ ] Regularization for biases (currently only weights are regularized).
36 | - [ ] More complex architectures with L0 Norm.
37 |
38 |
--------------------------------------------------------------------------------
/images/LeNetwithL0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/moskomule/l0.pytorch/e32da1be3d40df02a81c1a9e9e2eeb700f108070/images/LeNetwithL0.png
--------------------------------------------------------------------------------
/images/LeNetwithoutL0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/moskomule/l0.pytorch/e32da1be3d40df02a81c1a9e9e2eeb700f108070/images/LeNetwithoutL0.png
--------------------------------------------------------------------------------
/l0module.py:
--------------------------------------------------------------------------------
1 | import math
2 |
3 | import torch
4 | from torch import nn
5 | from torch.autograd import Variable
6 | from torch.nn import functional as F
7 |
8 |
9 | def hard_sigmoid(x):
10 | return torch.min(torch.max(x, torch.zeros_like(x)), torch.ones_like(x))
11 |
12 |
13 | class _L0Norm(nn.Module):
14 |
15 | def __init__(self, origin, loc_mean=0, loc_sdev=0.01, beta=2 / 3, gamma=-0.1,
16 | zeta=1.1, fix_temp=True):
17 | """
18 | Base class of layers using L0 Norm
19 | :param origin: original layer such as nn.Linear(..), nn.Conv2d(..)
20 | :param loc_mean: mean of the normal distribution which generates initial location parameters
21 | :param loc_sdev: standard deviation of the normal distribution which generates initial location parameters
22 | :param beta: initial temperature parameter
23 | :param gamma: lower bound of "stretched" s
24 | :param zeta: upper bound of "stretched" s
25 | :param fix_temp: True if temperature is fixed
26 | """
27 | super(_L0Norm, self).__init__()
28 | self._origin = origin
29 | self._size = self._origin.weight.size()
30 | self.loc = nn.Parameter(torch.zeros(self._size).normal_(loc_mean, loc_sdev))
31 | self.temp = beta if fix_temp else nn.Parameter(torch.zeros(1).fill_(beta))
32 | self.register_buffer("uniform", torch.zeros(self._size))
33 | self.gamma = gamma
34 | self.zeta = zeta
35 | self.gamma_zeta_ratio = math.log(-gamma / zeta)
36 |
37 | def _get_mask(self):
38 | if self.training:
39 | self.uniform.uniform_()
40 | u = Variable(self.uniform)
41 | s = F.sigmoid((torch.log(u) - torch.log(1 - u) + self.loc) / self.temp)
42 | s = s * (self.zeta - self.gamma) + self.gamma
43 | penalty = F.sigmoid(self.loc - self.temp * self.gamma_zeta_ratio).sum()
44 | else:
45 | s = F.sigmoid(self.loc) * (self.zeta - self.gamma) + self.gamma
46 | penalty = 0
47 | return hard_sigmoid(s), penalty
48 |
49 |
50 | class L0Linear(_L0Norm):
51 | def __init__(self, in_features, out_features, bias=True, **kwargs):
52 | super(L0Linear, self).__init__(nn.Linear(in_features, out_features, bias=bias), **kwargs)
53 |
54 | def forward(self, input):
55 | mask, penalty = self._get_mask()
56 | return F.linear(input, self._origin.weight * mask, self._origin.bias), penalty
57 |
58 |
59 | class L0Conv2d(_L0Norm):
60 | def __init__(self, in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True,
61 | **kwargs):
62 | super(L0Conv2d, self).__init__(nn.Conv2d(in_channels, out_channels, kernel_size, stride=stride, padding=padding,
63 | dilation=dilation, groups=groups, bias=bias), **kwargs)
64 |
65 | def forward(self, input):
66 | mask, penalty = self._get_mask()
67 | conv = F.conv2d(input, self._origin.weight * mask, self._origin.bias, stride=self._origin.stride,
68 | padding=self._origin.padding, dilation=self._origin.dilation, groups=self._origin.groups)
69 | return conv, penalty
70 |
71 |
72 | class L0Sequential(nn.Sequential):
73 | def forward(self, input):
74 | penalty = 0
75 | for module in self._modules.values():
76 | output = module(input)
77 | if isinstance(output, tuple):
78 | input = output[0]
79 | penalty += output[1]
80 | else:
81 | input = output
82 | return input, penalty
83 |
--------------------------------------------------------------------------------
/mnist.py:
--------------------------------------------------------------------------------
1 | import os
2 | import torch
3 | import torch.nn as nn
4 | import torch.nn.functional as F
5 | import torch.optim as optim
6 | from torchvision import datasets, transforms
7 |
8 | import tensorboardX
9 |
10 | from trainer import Trainer
11 | from l0module import L0Linear, L0Conv2d
12 |
13 |
14 | def get_loader(batch_size):
15 | data_root = os.path.expanduser('~/.torch/data/mnist')
16 | train_loader = torch.utils.data.DataLoader(
17 | datasets.MNIST(data_root, train=True, download=True,
18 | transform=transforms.Compose([
19 | transforms.ToTensor(),
20 | transforms.Normalize((0.1307,), (0.3081,))
21 | ])), shuffle=True, batch_size=batch_size)
22 |
23 | test_loader = torch.utils.data.DataLoader(
24 | datasets.MNIST(data_root, train=False,
25 | transform=transforms.Compose([
26 | transforms.ToTensor(),
27 | transforms.Normalize((0.1307,), (0.3081,))
28 | ])), batch_size=batch_size)
29 | return train_loader, test_loader
30 |
31 |
32 | class L0Net(nn.Module):
33 | """
34 | based on Caffe LeNet (https://github.com/BVLC/caffe/blob/master/examples/mnist/lenet.prototxt)
35 | """
36 |
37 | def __init__(self, mean):
38 | super(L0Net, self).__init__()
39 | self.conv1 = L0Conv2d(1, 20, kernel_size=5, stride=1, loc_mean=mean)
40 | self.conv2 = L0Conv2d(20, 50, kernel_size=5, stride=1, loc_mean=mean)
41 | self.dense1 = L0Linear(800, 500, loc_mean=mean)
42 | self.dense2 = L0Linear(500, 10, loc_mean=mean)
43 |
44 | def forward(self, x):
45 | x, z1 = self.conv1(x)
46 | x = F.max_pool2d(x, 2, stride=2)
47 | x, z2 = self.conv2(x)
48 | x = F.max_pool2d(x, 2, stride=2)
49 | x = x.view(x.shape[0], -1)
50 | x, z3 = self.dense1(x)
51 | x = F.relu(x)
52 | x, z4 = self.dense2(x)
53 | penalty = z1 + z2 + z3 + z4
54 | return x, penalty
55 |
56 |
57 | class LeNet(nn.Module):
58 | """
59 | based on Caffe LeNet (https://github.com/BVLC/caffe/blob/master/examples/mnist/lenet.prototxt)
60 | """
61 |
62 | def __init__(self):
63 | super(LeNet, self).__init__()
64 | self.conv1 = nn.Conv2d(1, 20, kernel_size=5, stride=1)
65 | self.conv2 = nn.Conv2d(20, 50, kernel_size=5, stride=1)
66 | self.dense1 = nn.Linear(800, 500)
67 | self.dense2 = nn.Linear(500, 10)
68 |
69 | def forward(self, x):
70 | x = self.conv1(x)
71 | x = F.max_pool2d(x, 2, stride=2)
72 | x = self.conv2(x)
73 | x = F.max_pool2d(x, 2, stride=2)
74 | x = x.view(x.shape[0], -1)
75 | x = self.dense1(x)
76 | x = F.relu(x)
77 | x = self.dense2(x)
78 | return x
79 |
80 |
81 | def main(epochs, batch_size, coef, mean, baseline):
82 | train_loader, test_loader = get_loader(batch_size)
83 | logger = tensorboardX.SummaryWriter()
84 |
85 | model = LeNet() if baseline else L0Net(mean)
86 | model.cuda()
87 |
88 | optimizer = optim.Adam(params=model.parameters(), lr=1e-3)
89 | l0_loss = lambda output, target: F.cross_entropy(output[0], target) + coef / len(train_loader.dataset) * output[1]
90 | loss_f = F.cross_entropy if baseline else l0_loss
91 | trainer = Trainer(model, optimizer, loss_f, logger)
92 | if not baseline:
93 | correct = lambda output, target: (output[0].max(dim=1)[1] == target).sum().data[0]
94 | trainer.correct = correct
95 |
96 | trainer.start(epochs, train_loader, test_loader)
97 |
98 |
99 | if __name__ == '__main__':
100 | import argparse
101 |
102 | parser = argparse.ArgumentParser()
103 | parser.add_argument("--batch_size", type=int, default=128)
104 | parser.add_argument("--epochs", type=int, default=200)
105 | parser.add_argument("--coef", type=float, default=1e-1)
106 | parser.add_argument("--mean", type=float, default=1)
107 | parser.add_argument("--baseline", action="store_true")
108 |
109 | main(**vars(parser.parse_args()))
110 |
--------------------------------------------------------------------------------
/notebooks/hard_concrete.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "In the paper, the hard concrete distribution is used to generate the *gating parameter* $z$. This notebook is for explaination of it. \n",
8 | "\n",
9 | "Now, $\\ln\\alpha$ and $\\beta$ are hyper parameters (the location parameter and temparature parameter). Suppose\n",
10 | "\n",
11 | "$$u\\sim \\mathscr{U}(0,1), ~ s=\\sigma(\\frac{\\ln u-\\ln(1-u)+\\ln\\alpha}{\\beta}),~\\bar{s}=s(\\zeta-\\gamma)+\\gamma$$\n",
12 | "\n",
13 | "Here $s\\in(0, 1)$ and it's \"stretched\" to $(\\gamma, \\zeta)~~(\\ni\\bar{s})$. Plus, $\\sigma$ is the sigmoid function. \n",
14 | "\n",
15 | "Then now you see $z$ generated from the hard concrete distribution as below.\n",
16 | "\n",
17 | "$$z=\\min(1, \\max(0, \\bar{s}))$$\n",
18 | "\n",
19 | "This $\\min(1, \\max(0, \\cdot))$ is called hard-sigmoid function. Let's see how $z$ behaves."
20 | ]
21 | },
22 | {
23 | "cell_type": "code",
24 | "execution_count": 1,
25 | "metadata": {},
26 | "outputs": [],
27 | "source": [
28 | "%matplotlib inline\n",
29 | "import numpy as np\n",
30 | "import matplotlib.pyplot as plt\n",
31 | "from ipywidgets import interact\n",
32 | "plt.style.use(\"ggplot\")"
33 | ]
34 | },
35 | {
36 | "cell_type": "code",
37 | "execution_count": 2,
38 | "metadata": {},
39 | "outputs": [],
40 | "source": [
41 | "def sigmoid(x):\n",
42 | " return 1 / (1 + np.exp(-x))\n",
43 | "\n",
44 | "def hard_sigmoid(x):\n",
45 | " return min(1, max(0, x))\n",
46 | "\n",
47 | "def hard_concrete(loc, temp, gamma, zeta):\n",
48 | " u = np.random.random()\n",
49 | " s = sigmoid((np.log(u) - np.log(1 - u) + loc) / temp)\n",
50 | " s = s * (zeta - gamma) + gamma\n",
51 | " return hard_sigmoid(s)\n"
52 | ]
53 | },
54 | {
55 | "cell_type": "code",
56 | "execution_count": 3,
57 | "metadata": {},
58 | "outputs": [],
59 | "source": [
60 | "def plot_hard_concreate(loc, temp, gamma, zeta, num=10_000, bins=100, **kwargs):\n",
61 | " plt.hist([hard_concrete(loc, temp, gamma, zeta) for _ in range(num)], bins=bins, density=True, **kwargs)\n"
62 | ]
63 | },
64 | {
65 | "cell_type": "markdown",
66 | "metadata": {},
67 | "source": [
68 | "Now the histograms of $z\\sim\\mathrm{hard~conc.}(\\ln\\alpha, \\beta, \\gamma, \\zeta)$ is shown below. It's an interactive graph so you can change the parameters $\\ln\\alpha, \\beta$."
69 | ]
70 | },
71 | {
72 | "cell_type": "code",
73 | "execution_count": 4,
74 | "metadata": {},
75 | "outputs": [
76 | {
77 | "data": {
78 | "application/vnd.jupyter.widget-view+json": {
79 | "model_id": "2358a1796acb41acbf8641793dee99b4",
80 | "version_major": 2,
81 | "version_minor": 0
82 | },
83 | "text/html": [
84 | "
Failed to display Jupyter Widget of type interactive
.
\n",
85 | "\n",
86 | " If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n",
87 | " that the widgets JavaScript is still loading. If this message persists, it\n",
88 | " likely means that the widgets JavaScript library is either not installed or\n",
89 | " not enabled. See the Jupyter\n",
90 | " Widgets Documentation for setup instructions.\n",
91 | "
\n",
92 | "\n",
93 | " If you're reading this message in another frontend (for example, a static\n",
94 | " rendering on GitHub or NBViewer),\n",
95 | " it may mean that your frontend doesn't currently support widgets.\n",
96 | "
\n"
97 | ],
98 | "text/plain": [
99 | "interactive(children=(FloatSlider(value=0.0, description='loc', max=0.5, min=-0.5), FloatSlider(value=0.505, description='temp', max=1.0, min=0.01), Output()), _dom_classes=('widget-interact',))"
100 | ]
101 | },
102 | "metadata": {},
103 | "output_type": "display_data"
104 | }
105 | ],
106 | "source": [
107 | "def interactive_hard_concrete(loc, temp):\n",
108 | " plot_hard_concreate(loc, temp, gamma=-0.1, zeta=1.1)\n",
109 | "\n",
110 | "interact(interactive_hard_concrete, loc=(-0.5, 0.5), temp=(0.01, 1));\n"
111 | ]
112 | },
113 | {
114 | "cell_type": "markdown",
115 | "metadata": {},
116 | "source": [
117 | "You see that the location parameter $\\ln\\alpha$ determins the ratio of $0$ and $1$ like the hyper parameter of Bernoulli distribution and the temparature $\\beta$ controls the degree of approximation to a Bernoulli distribution; if it is high then the number of $x\\in(0,1)$ increases (less Bernoulli), while $\\beta$ is low then the number of $x$ decreases. When $\\beta\\to 0$, this hard concrete ditiribution is exactly the Bernoulli distribution.\n"
118 | ]
119 | },
120 | {
121 | "cell_type": "code",
122 | "execution_count": null,
123 | "metadata": {},
124 | "outputs": [],
125 | "source": []
126 | }
127 | ],
128 | "metadata": {
129 | "kernelspec": {
130 | "display_name": "Python 3",
131 | "language": "python",
132 | "name": "python3"
133 | },
134 | "language_info": {
135 | "codemirror_mode": {
136 | "name": "ipython",
137 | "version": 3
138 | },
139 | "file_extension": ".py",
140 | "mimetype": "text/x-python",
141 | "name": "python",
142 | "nbconvert_exporter": "python",
143 | "pygments_lexer": "ipython3",
144 | "version": "3.6.3"
145 | },
146 | "widgets": {
147 | "application/vnd.jupyter.widget-state+json": {
148 | "state": {
149 | "021f6332aa734f648ffda288dd3c0546": {
150 | "model_module": "@jupyter-widgets/controls",
151 | "model_module_version": "1.0.0",
152 | "model_name": "FloatSliderModel",
153 | "state": {
154 | "description": "zeta",
155 | "layout": "IPY_MODEL_8849a62152b0411dbfb19679e33aea23",
156 | "max": 3.3000000000000003,
157 | "min": -1.1,
158 | "step": 0.1,
159 | "style": "IPY_MODEL_50ec233ce43c405f8a2a5d407365ae48",
160 | "value": 1.1
161 | }
162 | },
163 | "030c2c6969e74a3e81ac2833f36c0ac9": {
164 | "model_module": "@jupyter-widgets/controls",
165 | "model_module_version": "1.0.0",
166 | "model_name": "SliderStyleModel",
167 | "state": {
168 | "description_width": ""
169 | }
170 | },
171 | "038e8fa28c51401082479eec6137e857": {
172 | "model_module": "@jupyter-widgets/base",
173 | "model_module_version": "1.0.0",
174 | "model_name": "LayoutModel",
175 | "state": {}
176 | },
177 | "046b0662d2ae4cecb730455d3c0419b8": {
178 | "model_module": "@jupyter-widgets/controls",
179 | "model_module_version": "1.0.0",
180 | "model_name": "IntSliderModel",
181 | "state": {
182 | "description": "bins",
183 | "layout": "IPY_MODEL_561ee5585db1450ea84e6b542ea5cd8b",
184 | "max": 300,
185 | "min": -100,
186 | "style": "IPY_MODEL_cfdb4bfc11624760b5df19a09ac4c0db",
187 | "value": 100
188 | }
189 | },
190 | "04dacf4eaa904faf9862197a4c1b84ef": {
191 | "model_module": "@jupyter-widgets/controls",
192 | "model_module_version": "1.0.0",
193 | "model_name": "FloatSliderModel",
194 | "state": {
195 | "description": "gamma",
196 | "layout": "IPY_MODEL_abafeda1a4014e309ee379aaf5148007",
197 | "max": 0.1,
198 | "min": -0.30000000000000004,
199 | "step": 0.1,
200 | "style": "IPY_MODEL_2a4d60802e5a40f894e532fadba680a5",
201 | "value": -0.1
202 | }
203 | },
204 | "056b504b662b4078bd47341b9e2b4c7b": {
205 | "model_module": "@jupyter-widgets/base",
206 | "model_module_version": "1.0.0",
207 | "model_name": "LayoutModel",
208 | "state": {}
209 | },
210 | "05c96903ee1544f9a6443f4e5b08b81c": {
211 | "model_module": "@jupyter-widgets/controls",
212 | "model_module_version": "1.0.0",
213 | "model_name": "SliderStyleModel",
214 | "state": {
215 | "description_width": ""
216 | }
217 | },
218 | "06c1ab54ddbe45ee8af8dae6943c8554": {
219 | "model_module": "@jupyter-widgets/controls",
220 | "model_module_version": "1.0.0",
221 | "model_name": "SliderStyleModel",
222 | "state": {
223 | "description_width": ""
224 | }
225 | },
226 | "074e6119e14b4abb931a901978a72026": {
227 | "model_module": "@jupyter-widgets/controls",
228 | "model_module_version": "1.0.0",
229 | "model_name": "IntSliderModel",
230 | "state": {
231 | "description": "num",
232 | "layout": "IPY_MODEL_e6700421878140d78e37d5bad0edd14d",
233 | "max": 30000,
234 | "min": -10000,
235 | "style": "IPY_MODEL_4d772eca1a364d21b67324c66193bab3",
236 | "value": 10000
237 | }
238 | },
239 | "0883655433c246c681967186673996a0": {
240 | "model_module": "@jupyter-widgets/controls",
241 | "model_module_version": "1.0.0",
242 | "model_name": "SliderStyleModel",
243 | "state": {
244 | "description_width": ""
245 | }
246 | },
247 | "0a8f1879a8474dfc9ef9f432fbf70900": {
248 | "model_module": "@jupyter-widgets/controls",
249 | "model_module_version": "1.0.0",
250 | "model_name": "SliderStyleModel",
251 | "state": {
252 | "description_width": ""
253 | }
254 | },
255 | "0aa3595cd23943c8a5f68b8255dc64af": {
256 | "model_module": "@jupyter-widgets/controls",
257 | "model_module_version": "1.0.0",
258 | "model_name": "IntSliderModel",
259 | "state": {
260 | "description": "bins",
261 | "layout": "IPY_MODEL_698a3c7447234c8caac9efd63418749e",
262 | "max": 300,
263 | "min": -100,
264 | "style": "IPY_MODEL_277455afad55437b9eaf3db9dbe5caa9",
265 | "value": 100
266 | }
267 | },
268 | "0c74014857b34981aeaa894a94392e67": {
269 | "model_module": "@jupyter-widgets/controls",
270 | "model_module_version": "1.0.0",
271 | "model_name": "SliderStyleModel",
272 | "state": {
273 | "description_width": ""
274 | }
275 | },
276 | "0cb76ee674bb4f208416b5f1b4690afb": {
277 | "model_module": "@jupyter-widgets/controls",
278 | "model_module_version": "1.0.0",
279 | "model_name": "SliderStyleModel",
280 | "state": {
281 | "description_width": ""
282 | }
283 | },
284 | "0d126c0e25024ebc8505b30cf3b16cc2": {
285 | "model_module": "@jupyter-widgets/base",
286 | "model_module_version": "1.0.0",
287 | "model_name": "LayoutModel",
288 | "state": {}
289 | },
290 | "0db5ab40f0b0452a9863e834af7e2df0": {
291 | "model_module": "@jupyter-widgets/controls",
292 | "model_module_version": "1.0.0",
293 | "model_name": "SliderStyleModel",
294 | "state": {
295 | "description_width": ""
296 | }
297 | },
298 | "0e2a764c4a0e4d649f89669628a1dbc6": {
299 | "model_module": "@jupyter-widgets/controls",
300 | "model_module_version": "1.0.0",
301 | "model_name": "VBoxModel",
302 | "state": {
303 | "_dom_classes": [
304 | "widget-interact"
305 | ],
306 | "children": [
307 | "IPY_MODEL_181f9ea6cb724317ad47c3151e4459bf",
308 | "IPY_MODEL_15ab6d4517574cf395ddf4caf1bbf81d",
309 | "IPY_MODEL_6a21374c65d8470fbddef485bf6ec5f1",
310 | "IPY_MODEL_31ded3e846db4305bde44a31e808a57a",
311 | "IPY_MODEL_ebd3a8173b7f497986865d59080c885a",
312 | "IPY_MODEL_3fb04d0fd52a4fc98708f7f64430716d",
313 | "IPY_MODEL_1a41ece7d1734147ac4a0d60d1a647cf"
314 | ],
315 | "layout": "IPY_MODEL_c9aa92b0940d41c98d8724ac421664a1"
316 | }
317 | },
318 | "0ec8aa7cdc5d47e8b70655173e09f360": {
319 | "model_module": "@jupyter-widgets/base",
320 | "model_module_version": "1.0.0",
321 | "model_name": "LayoutModel",
322 | "state": {}
323 | },
324 | "0ef59949bfd345b98a1757b05b93417d": {
325 | "model_module": "@jupyter-widgets/controls",
326 | "model_module_version": "1.0.0",
327 | "model_name": "VBoxModel",
328 | "state": {
329 | "_dom_classes": [
330 | "widget-interact"
331 | ],
332 | "children": [
333 | "IPY_MODEL_a3c5ab8be9ae412983775fc3b7f9fd97",
334 | "IPY_MODEL_ddbf1ce8dc494844938ac8e7455cb4c1",
335 | "IPY_MODEL_0f7fbb9e6f1d40ed89b8f3d0d338e4fa"
336 | ],
337 | "layout": "IPY_MODEL_0ec8aa7cdc5d47e8b70655173e09f360"
338 | }
339 | },
340 | "0f0077226f4c4bf98b250437c4de61fc": {
341 | "model_module": "@jupyter-widgets/base",
342 | "model_module_version": "1.0.0",
343 | "model_name": "LayoutModel",
344 | "state": {}
345 | },
346 | "0f7fbb9e6f1d40ed89b8f3d0d338e4fa": {
347 | "model_module": "@jupyter-widgets/output",
348 | "model_module_version": "1.0.0",
349 | "model_name": "OutputModel",
350 | "state": {
351 | "layout": "IPY_MODEL_2f7673b50eb84bb9a2b63bba1e357390",
352 | "outputs": [
353 | {
354 | "data": {
355 | "image/png": "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\n",
356 | "text/plain": ""
357 | },
358 | "metadata": {},
359 | "output_type": "display_data"
360 | }
361 | ]
362 | }
363 | },
364 | "0ff265c0daee454e8542cba46add905c": {
365 | "model_module": "@jupyter-widgets/controls",
366 | "model_module_version": "1.0.0",
367 | "model_name": "SliderStyleModel",
368 | "state": {
369 | "description_width": ""
370 | }
371 | },
372 | "106bf329a08640ecad0bb44ccfb9d2c2": {
373 | "model_module": "@jupyter-widgets/base",
374 | "model_module_version": "1.0.0",
375 | "model_name": "LayoutModel",
376 | "state": {}
377 | },
378 | "109fcfbda77e476cbe27cb66facf1122": {
379 | "model_module": "@jupyter-widgets/controls",
380 | "model_module_version": "1.0.0",
381 | "model_name": "SliderStyleModel",
382 | "state": {
383 | "description_width": ""
384 | }
385 | },
386 | "120fa72b45c245018c527da062edd195": {
387 | "model_module": "@jupyter-widgets/base",
388 | "model_module_version": "1.0.0",
389 | "model_name": "LayoutModel",
390 | "state": {}
391 | },
392 | "12549d974b564b44932d940857de8ff8": {
393 | "model_module": "@jupyter-widgets/base",
394 | "model_module_version": "1.0.0",
395 | "model_name": "LayoutModel",
396 | "state": {}
397 | },
398 | "1288125c81d84678b1895e9631035187": {
399 | "model_module": "@jupyter-widgets/controls",
400 | "model_module_version": "1.0.0",
401 | "model_name": "IntSliderModel",
402 | "state": {
403 | "description": "bins",
404 | "layout": "IPY_MODEL_568321796a0541ac9a1ca0d4347fedee",
405 | "max": 300,
406 | "min": -100,
407 | "style": "IPY_MODEL_05c96903ee1544f9a6443f4e5b08b81c",
408 | "value": 100
409 | }
410 | },
411 | "1320ff9b07744f8c8900a532fce6c7df": {
412 | "model_module": "@jupyter-widgets/base",
413 | "model_module_version": "1.0.0",
414 | "model_name": "LayoutModel",
415 | "state": {}
416 | },
417 | "1460c365493a4442bf8bc1b6921e4fe9": {
418 | "model_module": "@jupyter-widgets/base",
419 | "model_module_version": "1.0.0",
420 | "model_name": "LayoutModel",
421 | "state": {}
422 | },
423 | "15ab6d4517574cf395ddf4caf1bbf81d": {
424 | "model_module": "@jupyter-widgets/controls",
425 | "model_module_version": "1.0.0",
426 | "model_name": "FloatSliderModel",
427 | "state": {
428 | "description": "temp",
429 | "layout": "IPY_MODEL_7bff30a503cd4f75b82aea17f132f867",
430 | "max": 1.5,
431 | "min": -0.5,
432 | "step": 0.1,
433 | "style": "IPY_MODEL_4be13d42779746fb846f4c15cad02150",
434 | "value": 1.1
435 | }
436 | },
437 | "181f9ea6cb724317ad47c3151e4459bf": {
438 | "model_module": "@jupyter-widgets/controls",
439 | "model_module_version": "1.0.0",
440 | "model_name": "FloatSliderModel",
441 | "state": {
442 | "description": "loc",
443 | "layout": "IPY_MODEL_8affef153ace46259509729499cef951",
444 | "max": 0.30000000000000004,
445 | "min": -0.1,
446 | "step": 0.1,
447 | "style": "IPY_MODEL_f931729afda0402aa0dcd4022875cc0e",
448 | "value": 0.3
449 | }
450 | },
451 | "19da3242a77a4934ab33442d11873d05": {
452 | "model_module": "@jupyter-widgets/controls",
453 | "model_module_version": "1.0.0",
454 | "model_name": "FloatSliderModel",
455 | "state": {
456 | "description": "temp",
457 | "layout": "IPY_MODEL_f48f6be0f6b14bfd93c832af8b8184ba",
458 | "max": 1,
459 | "min": 0.1,
460 | "step": 0.1,
461 | "style": "IPY_MODEL_3d7e628b47e64ed4a33cec39decae24a",
462 | "value": 0.55
463 | }
464 | },
465 | "19e95538f98e44018c3de6d2e267db5c": {
466 | "model_module": "@jupyter-widgets/controls",
467 | "model_module_version": "1.0.0",
468 | "model_name": "IntSliderModel",
469 | "state": {
470 | "description": "num",
471 | "layout": "IPY_MODEL_cfe56e5fedad4252a41fda6c624c1c20",
472 | "max": 30000,
473 | "min": -10000,
474 | "style": "IPY_MODEL_0ff265c0daee454e8542cba46add905c",
475 | "value": 10000
476 | }
477 | },
478 | "1a41ece7d1734147ac4a0d60d1a647cf": {
479 | "model_module": "@jupyter-widgets/output",
480 | "model_module_version": "1.0.0",
481 | "model_name": "OutputModel",
482 | "state": {
483 | "layout": "IPY_MODEL_a71f9a9ee22145fb91359eab43636d9e",
484 | "outputs": [
485 | {
486 | "data": {
487 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAADtFJREFUeJzt3X+MZfVZx/H3lmk0EZS0N2x3KAYTqSkSLXHVRv7BYAw1ZClJ++iathjWnTaKhhRNEE1K5B+0tITESlwKAYzSPm1FNohig21IpRABaYqiCcEV193MMkAopvHHbMc/7l0ymd6Zc+bcHzv3ue9XMrm/vud8n+fOnc899+y5Z3etra0hSZp9bzndBUiSxsNAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKmJhyvP5tVRJ6mZX04BpBzrHjh3rtFyv12NlZWXM1exs9jwf7Hk+jNLz4uJiq3HucpGkIgx0SSrCQJekIgx0SSrCQJekIgx0SSrCQJekIgx0SSqi8YtFEXEecB/wDuA7wKHMvD0ibgIOAi8Pht6YmQ9PqlBJ0tbafFN0Fbg+M5+JiLOApyPiy4PHbsvMWydXniTNtpMH9/WvPPD4xOdqDPTMPA4cH1x/IyKeB86ddGGSpO3Z1rlcIuJ84GLgSeAS4NqI+AjwFP2t+NfGXqEkqZXWgR4RZwJfAq7LzG9FxB3AzfTPoHgz8CngmiHLLQFLAJlJr9frVujCQudlZ5U9zwd7rm15cDmNnnetrTWf0TYi3go8BDySmZ8e8vj5wEOZeVHDqtY822J79jwf7Lm2U/vQdz/w+KhnW2w8fW7jYYsRsQu4C3h+fZhHxJ51w64Cntt+mZKkcWmzy+US4MPANyPi2cF9NwL7I+I99He5HAE+OpEKJUmttDnK5WsM39T3mHNJ2kH8pqgkFWGgS1IRBrokFWGgS1IRBrokFWGgS1IRBrokFWGgS1IRBrokFWGgS1IRBrokFWGgS1IRBrokFWGgS1IRBrokFWGgS1IRBrokFWGgS1IRBrokFWGgS1IRBrokFWGgS1IRBrokFWGgS1IRBrokFWGgS1IRBrokFWGgS1IRBrokFWGgS1IRBrokFWGgS1IRC00DIuI84D7gHcB3gEOZeXtEvA34PHA+cASIzHxtcqVKkrbSZgt9Fbg+M98NvBf49Yi4ELgBeDQzLwAeHdyWJJ0mjYGemccz85nB9TeA54FzgSuBewfD7gXeP6kiJUnNtrUPPSLOBy4GngR2Z+Zx6Ic+cM7Yq5Mktda4D/2UiDgT+BJwXWZ+KyLaLrcELAFkJr1er0udLCwsdF52VtnzfLDn2pYHl9PouVWgR8Rb6Yf5n2XmXwzuXo6IPZl5PCL2ACeGLZuZh4BDg5trKysrnQrt9Xp0XXZW2fN8sOf5sLq62rnnxcXFVuMad7lExC7gLuD5zPz0uocOA1cPrl8NPLjNGiVJY9RmC/0S4MPANyPi2cF9NwK3ABkRB4CXgA9OpkRJUhuNgZ6ZXwN2bfLwZeMtR5LUld8UlaQiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKmKhaUBE3A1cAZzIzIsG990EHAReHgy7MTMfnlSRkqRmjYEO3AP8EXDfhvtvy8xbx16RJKmTxl0umfkY8OoUapEkjaDNFvpmro2IjwBPAddn5mvDBkXEErAEkJn0er1Oky0sLHRedlbZ83yw59qWB5fT6LlroN8B3AysDS4/BVwzbGBmHgIODW6uraysdJqw1+vRddlZZc/zwZ7nw+rqaueeFxcXW43rFOiZeepNh4i4E3ioy3okSePT6bDFiNiz7uZVwHPjKUeS1FWbwxbvBy4FehFxFPgEcGlEvIf+LpcjwEcnWKMkqYXGQM/M/UPuvmsCtUiSRuA3RSWpiJkJ9OWrfuZ0lyBJO9rMBLokaWsGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVsdA0ICLuBq4ATmTmRYP73gZ8HjgfOAJEZr42uTIlSU3abKHfA1y+4b4bgEcz8wLg0cFtSdJp1BjomfkY8OqGu68E7h1cvxd4/5jrkiRtU+Mul03szszjAJl5PCLO2WxgRCwBS4Ox9Hq9ThMuQ+dlZ9XCwoI9zwF7rm15cDmNnrsGemuZeQg4NLi5trKy0nldoyw7i3q9nj3PAXueD6urq517XlxcbDWu61EuyxGxB2BweaLjeiRJY9I10A8DVw+uXw08OJ5yJEldtTls8X7gUqAXEUeBTwC3ABkRB4CXgA9OskhJUrPGQM/M/Zs8dNmYa5EkjcBvikpSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQujLBwRR4A3gJPAambuHUdRkqTtGynQB342M1fGsB5J0gjc5SJJRYwa6GvA30bE0xGxNI6CJEndjLrL5ZLMPBYR5wBfjoh/yczH1g8YBP0SQGbS6/U6TbQMnZedVQsLC/Y8B+y5tuXB5TR63rW2tjaWFUXETcB/ZeatWwxbO3bsWKf1nzy4jzPuPNxp2VnV6/VYWZmvf56w5/kwTz2fPLgPgN0PPN6558XFRYBdTeM673KJiO+LiLNOXQd+Hniu6/okSaMZZZfLbuCBiDi1nj/PzL8ZS1WSpG3rHOiZ+SLw42OsRZI0Ag9blKQiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJ23by4L7TXYKGMNA11wym0Zx6/nba8ziOunZqb1sx0FXayYP73vxZf9841z9svjbLtBnbdfxmYTTs/o3XNz5nXebd7LHtPPeb/d6a5mgav9XvbKvnq828TXNN2sJUZ9NQJw/u44w7D49t/HbXN655tzP3xhf6GXce5uTBfSwPrreZ49Q6Tl1ff9nG+j/CjctstZ718w6rZ2N/68cNe3zYnE3zD+t//Vwb+9uqj65jtlqm6fW5vO72Zr0MW1/XN+aNNW32/Detd7Nahq1nEn+DTXatra1Nc761Y8eOdVpwUiE16hzb+SOE4b/kYS+SrcJpszDcqo42gTcsqIbN0eZFvX6Zjdebxm722CjraGOznkZdb9d1jGNe7Ry7H3iclZWVTssuLi4C7GoaV26XS9NHxY3vwm0fb/uH1ebj3framj7SDRu31dwbt2A2ew62+gi81fO22e0mTeOb+hp1HW1s9XyMqss6DHNt10xtoW9mqy3KaWmzhSlpfk1jC32kQI+Iy4HbgTOAz2bmLQ2LTCTQJWmn29G7XCLiDOAzwPuAC4H9EXFh1/VJkkYzyj70nwJeyMwXM/N/gc8BV46nLEnSdo0S6OcC/7Hu9tHBfZKk02CU49CH7c/5rh3yEbEELAFk5ql9Qdv3V091W06SdojO+dfSKFvoR4Hz1t1+J/Bd/+KZmYcyc29m7qX/JtDpJyKeHmX5Wfyx5/n4sef5+BlDz41G2UL/B+CCiPgh4D+BXwJ+eYT1SZJG0HkLPTNXgWuBR4Dn+3flP42rMEnS9ox0LpfMfBh4eEy1NDk0pXl2EnueD/Y8Hybe87S/KSpJmpBy53KRpHm1406f23Q6gYj4HuA+4CeAV4BfzMwj065znFr0/HHgV4FV4GXgmsz896kXOkZtTxsRER8AvgD8ZGbO7LGrbfqNiABuon/47zcyc6YPMmjxuv5B4F7g7MGYGwa7cWdWRNwNXAGcyMyLhjy+i/5z8gvAt4FfycxnxjX/jtpCb3k6gQPAa5n5w8BtwB9Mt8rxatnzPwJ7M/PHgC8CfzjdKser7WkjIuIs4DeBJ6db4Xi16TciLgB+B7gkM38UuG7qhY5Ry9/x79E/mOJi+kfJ/fF0q5yIe4DLt3j8fcAFg58l4I5xTr6jAp12pxO4kv67OvTD7bLBu96sauw5M7+Smd8e3HyC/jH/s6ztaSNupv/m9d/TLG4C2vR7EPhMZr4GkJknplzjuLXpeQ34/sH1H2DI91hmTWY+Bry6xZArgfsycy0znwDOjog945p/pwV6m9MJvDlmcOjk68Dbp1LdZGz3FAoHgL+eaEWT19hzRFwMnJeZD02zsAlp8zt+F/CuiPj7iHhisLtilrXp+SbgQxFxlP7Rcr8xndJOq4meMmWnBfqwLe2Nh+G0GTNLWvcTER8C9gKfnGhFk7dlzxHxFvq7066fWkWT1eZ3vED/Y/ilwH7gsxFx9oTrmqQ2Pe8H7snMd9Lfp/yng999ZRPNr5325LU5ncCbYyJigf5Hta0+4ux0rU6hEBE/B/wusC8z/2dKtU1KU89nARcBX42II8B7gcMRsXdqFY5X29f1g5n5f5n5b8C/0g/4WdWm5wNAAmTm14HvBXpTqe70afX33tVOO8qlzekEDgNXA18HPgD8XWbO8hZ6Y8+D3Q9/AlxeYN8qNPScma+z7g87Ir4K/NYMH+XS5nX9lwy2WCOiR38XzItTrXK82vT8EnAZ/Z7fTT/QX55qldN3GLg2Ij4H/DTwemYeH9fKd9QW+manE4iI34+IU/9l0V3A2yPiBeDjwA2np9rxaNnzJ4EzgS9ExLMRMf3/TnyMWvZcRst+HwFeiYh/Br4C/HZmvnJ6Kh5dy56vBw5GxDeA++kfwjfLG2dExP30NzZ/JCKORsSBiPhYRHxsMORh+m/ULwB3Ar82zvn9pqgkFbGjttAlSd0Z6JJUhIEuSUUY6JJUhIEuSUUY6JJUhIEuSUUY6JJUxP8DuW50TcoVFCYAAAAASUVORK5CYII=\n",
488 | "text/plain": ""
489 | },
490 | "metadata": {},
491 | "output_type": "display_data"
492 | }
493 | ]
494 | }
495 | },
496 | "1a49807950f842be8f500e8b82a3fc4d": {
497 | "model_module": "@jupyter-widgets/base",
498 | "model_module_version": "1.0.0",
499 | "model_name": "LayoutModel",
500 | "state": {}
501 | },
502 | "1ca6e221d623444d882725afda2d59bc": {
503 | "model_module": "@jupyter-widgets/controls",
504 | "model_module_version": "1.0.0",
505 | "model_name": "SliderStyleModel",
506 | "state": {
507 | "description_width": ""
508 | }
509 | },
510 | "1ddbfd1a05f646199f72011640a83c2b": {
511 | "model_module": "@jupyter-widgets/output",
512 | "model_module_version": "1.0.0",
513 | "model_name": "OutputModel",
514 | "state": {
515 | "layout": "IPY_MODEL_43f59818d30f4abcab342d05161e5161",
516 | "outputs": [
517 | {
518 | "data": {
519 | "image/png": "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\n",
520 | "text/plain": ""
521 | },
522 | "metadata": {},
523 | "output_type": "display_data"
524 | }
525 | ]
526 | }
527 | },
528 | "2358a1796acb41acbf8641793dee99b4": {
529 | "model_module": "@jupyter-widgets/controls",
530 | "model_module_version": "1.0.0",
531 | "model_name": "VBoxModel",
532 | "state": {
533 | "_dom_classes": [
534 | "widget-interact"
535 | ],
536 | "children": [
537 | "IPY_MODEL_759d5679f9a147fab0b425807a1d624e",
538 | "IPY_MODEL_36db55863b4e496abcd72fa62206279a",
539 | "IPY_MODEL_8e47cf84ce4949d4b9bebdc83893dc85"
540 | ],
541 | "layout": "IPY_MODEL_106bf329a08640ecad0bb44ccfb9d2c2"
542 | }
543 | },
544 | "2683c7a1027b4b1983ccdb588407c356": {
545 | "model_module": "@jupyter-widgets/base",
546 | "model_module_version": "1.0.0",
547 | "model_name": "LayoutModel",
548 | "state": {}
549 | },
550 | "26c55c6fa20f4dcbbcb51805f3a8d825": {
551 | "model_module": "@jupyter-widgets/controls",
552 | "model_module_version": "1.0.0",
553 | "model_name": "FloatSliderModel",
554 | "state": {
555 | "description": "gamma",
556 | "layout": "IPY_MODEL_62d89b6cd0554f4da71b3c29c9090b7b",
557 | "max": 0.1,
558 | "min": -0.30000000000000004,
559 | "step": 0.1,
560 | "style": "IPY_MODEL_72450776e69f4d84b2386d288774191b",
561 | "value": -0.1
562 | }
563 | },
564 | "26d8b2df157c4eb7837dc9fd13022f85": {
565 | "model_module": "@jupyter-widgets/base",
566 | "model_module_version": "1.0.0",
567 | "model_name": "LayoutModel",
568 | "state": {}
569 | },
570 | "277455afad55437b9eaf3db9dbe5caa9": {
571 | "model_module": "@jupyter-widgets/controls",
572 | "model_module_version": "1.0.0",
573 | "model_name": "SliderStyleModel",
574 | "state": {
575 | "description_width": ""
576 | }
577 | },
578 | "2817ba9382f74e488aff04bf2f3206e4": {
579 | "model_module": "@jupyter-widgets/controls",
580 | "model_module_version": "1.0.0",
581 | "model_name": "SliderStyleModel",
582 | "state": {
583 | "description_width": ""
584 | }
585 | },
586 | "29ecb72e0ce6456596f14282c8cce777": {
587 | "model_module": "@jupyter-widgets/controls",
588 | "model_module_version": "1.0.0",
589 | "model_name": "SliderStyleModel",
590 | "state": {
591 | "description_width": ""
592 | }
593 | },
594 | "2a4d60802e5a40f894e532fadba680a5": {
595 | "model_module": "@jupyter-widgets/controls",
596 | "model_module_version": "1.0.0",
597 | "model_name": "SliderStyleModel",
598 | "state": {
599 | "description_width": ""
600 | }
601 | },
602 | "2f1bb9cb11b4449abb506e70f6013d4d": {
603 | "model_module": "@jupyter-widgets/base",
604 | "model_module_version": "1.0.0",
605 | "model_name": "LayoutModel",
606 | "state": {}
607 | },
608 | "2f7673b50eb84bb9a2b63bba1e357390": {
609 | "model_module": "@jupyter-widgets/base",
610 | "model_module_version": "1.0.0",
611 | "model_name": "LayoutModel",
612 | "state": {}
613 | },
614 | "311729424d8e4204ada79860a130d0ea": {
615 | "model_module": "@jupyter-widgets/base",
616 | "model_module_version": "1.0.0",
617 | "model_name": "LayoutModel",
618 | "state": {}
619 | },
620 | "31ded3e846db4305bde44a31e808a57a": {
621 | "model_module": "@jupyter-widgets/controls",
622 | "model_module_version": "1.0.0",
623 | "model_name": "FloatSliderModel",
624 | "state": {
625 | "description": "zeta",
626 | "layout": "IPY_MODEL_79e65a39fb594d13a2b8bc65cfa9e4c7",
627 | "max": 3.3000000000000003,
628 | "min": -1.1,
629 | "step": 0.1,
630 | "style": "IPY_MODEL_86bfe0bc13744a9490646f7efc2da31d",
631 | "value": 1.1
632 | }
633 | },
634 | "365f4c2b38a34077a9b953a008981ed8": {
635 | "model_module": "@jupyter-widgets/base",
636 | "model_module_version": "1.0.0",
637 | "model_name": "LayoutModel",
638 | "state": {}
639 | },
640 | "36db55863b4e496abcd72fa62206279a": {
641 | "model_module": "@jupyter-widgets/controls",
642 | "model_module_version": "1.0.0",
643 | "model_name": "FloatSliderModel",
644 | "state": {
645 | "description": "temp",
646 | "layout": "IPY_MODEL_db7a4cfe2d0f48d2a84729e5b2040bae",
647 | "max": 1,
648 | "min": 0.01,
649 | "step": 0.1,
650 | "style": "IPY_MODEL_0a8f1879a8474dfc9ef9f432fbf70900",
651 | "value": 0.505
652 | }
653 | },
654 | "3b6a413d0ba249d39a82fc29b422abbe": {
655 | "model_module": "@jupyter-widgets/controls",
656 | "model_module_version": "1.0.0",
657 | "model_name": "FloatSliderModel",
658 | "state": {
659 | "description": "loc",
660 | "layout": "IPY_MODEL_0f0077226f4c4bf98b250437c4de61fc",
661 | "max": 0.5,
662 | "min": -0.5,
663 | "step": 0.1,
664 | "style": "IPY_MODEL_0cb76ee674bb4f208416b5f1b4690afb"
665 | }
666 | },
667 | "3d7e628b47e64ed4a33cec39decae24a": {
668 | "model_module": "@jupyter-widgets/controls",
669 | "model_module_version": "1.0.0",
670 | "model_name": "SliderStyleModel",
671 | "state": {
672 | "description_width": ""
673 | }
674 | },
675 | "3fb04d0fd52a4fc98708f7f64430716d": {
676 | "model_module": "@jupyter-widgets/controls",
677 | "model_module_version": "1.0.0",
678 | "model_name": "IntSliderModel",
679 | "state": {
680 | "description": "bins",
681 | "layout": "IPY_MODEL_51bc21c442ad4da2945ed7cc26f27fc7",
682 | "max": 300,
683 | "min": -100,
684 | "style": "IPY_MODEL_b9f7ac4627df49ee8d4a1f43777b758f",
685 | "value": 274
686 | }
687 | },
688 | "43f59818d30f4abcab342d05161e5161": {
689 | "model_module": "@jupyter-widgets/base",
690 | "model_module_version": "1.0.0",
691 | "model_name": "LayoutModel",
692 | "state": {}
693 | },
694 | "47e205f6b0194c978759a8a81b26fd52": {
695 | "model_module": "@jupyter-widgets/controls",
696 | "model_module_version": "1.0.0",
697 | "model_name": "IntSliderModel",
698 | "state": {
699 | "description": "num",
700 | "layout": "IPY_MODEL_311729424d8e4204ada79860a130d0ea",
701 | "max": 30000,
702 | "min": -10000,
703 | "style": "IPY_MODEL_6a7fa68cd15a46f5a8cabd69471ccad1",
704 | "value": 10000
705 | }
706 | },
707 | "497ea0e68c5246ce97b4891797c78cad": {
708 | "model_module": "@jupyter-widgets/controls",
709 | "model_module_version": "1.0.0",
710 | "model_name": "FloatSliderModel",
711 | "state": {
712 | "description": "temp",
713 | "layout": "IPY_MODEL_fa098aeb62a14e3b920f1de71e30b383",
714 | "max": 1,
715 | "min": 0.1,
716 | "step": 0.1,
717 | "style": "IPY_MODEL_2817ba9382f74e488aff04bf2f3206e4",
718 | "value": 1
719 | }
720 | },
721 | "4b99d78dabf9407491e2275ec7fe1e5d": {
722 | "model_module": "@jupyter-widgets/controls",
723 | "model_module_version": "1.0.0",
724 | "model_name": "FloatSliderModel",
725 | "state": {
726 | "description": "loc",
727 | "layout": "IPY_MODEL_fa8db0a511cf4896ba3577a2876e60d5",
728 | "max": 0.5,
729 | "min": -0.5,
730 | "step": 0.1,
731 | "style": "IPY_MODEL_ee80b7b9e3864ec3be498ddd46856af8"
732 | }
733 | },
734 | "4be13d42779746fb846f4c15cad02150": {
735 | "model_module": "@jupyter-widgets/controls",
736 | "model_module_version": "1.0.0",
737 | "model_name": "SliderStyleModel",
738 | "state": {
739 | "description_width": ""
740 | }
741 | },
742 | "4d772eca1a364d21b67324c66193bab3": {
743 | "model_module": "@jupyter-widgets/controls",
744 | "model_module_version": "1.0.0",
745 | "model_name": "SliderStyleModel",
746 | "state": {
747 | "description_width": ""
748 | }
749 | },
750 | "4ea678e7cbc34f13a804f562b90bf0b3": {
751 | "model_module": "@jupyter-widgets/base",
752 | "model_module_version": "1.0.0",
753 | "model_name": "LayoutModel",
754 | "state": {}
755 | },
756 | "4ee9c5a933f44ca7a452a37e03ece5f2": {
757 | "model_module": "@jupyter-widgets/base",
758 | "model_module_version": "1.0.0",
759 | "model_name": "LayoutModel",
760 | "state": {}
761 | },
762 | "50ec233ce43c405f8a2a5d407365ae48": {
763 | "model_module": "@jupyter-widgets/controls",
764 | "model_module_version": "1.0.0",
765 | "model_name": "SliderStyleModel",
766 | "state": {
767 | "description_width": ""
768 | }
769 | },
770 | "51bc21c442ad4da2945ed7cc26f27fc7": {
771 | "model_module": "@jupyter-widgets/base",
772 | "model_module_version": "1.0.0",
773 | "model_name": "LayoutModel",
774 | "state": {}
775 | },
776 | "5495f6e24b704c0dad7fbc93e55c17c8": {
777 | "model_module": "@jupyter-widgets/base",
778 | "model_module_version": "1.0.0",
779 | "model_name": "LayoutModel",
780 | "state": {}
781 | },
782 | "561ee5585db1450ea84e6b542ea5cd8b": {
783 | "model_module": "@jupyter-widgets/base",
784 | "model_module_version": "1.0.0",
785 | "model_name": "LayoutModel",
786 | "state": {}
787 | },
788 | "561f0587f937432abf667e75dbb42de7": {
789 | "model_module": "@jupyter-widgets/controls",
790 | "model_module_version": "1.0.0",
791 | "model_name": "SliderStyleModel",
792 | "state": {
793 | "description_width": ""
794 | }
795 | },
796 | "568321796a0541ac9a1ca0d4347fedee": {
797 | "model_module": "@jupyter-widgets/base",
798 | "model_module_version": "1.0.0",
799 | "model_name": "LayoutModel",
800 | "state": {}
801 | },
802 | "595d51c6cdc64f649c7b0a245c0b03f5": {
803 | "model_module": "@jupyter-widgets/controls",
804 | "model_module_version": "1.0.0",
805 | "model_name": "SliderStyleModel",
806 | "state": {
807 | "description_width": ""
808 | }
809 | },
810 | "597f9eda29d14af6ad4b2c5a7c022038": {
811 | "model_module": "@jupyter-widgets/controls",
812 | "model_module_version": "1.0.0",
813 | "model_name": "IntSliderModel",
814 | "state": {
815 | "description": "num",
816 | "layout": "IPY_MODEL_de43c155251248c2bfa2809c5dbf8e59",
817 | "max": 30000,
818 | "min": -10000,
819 | "style": "IPY_MODEL_76560e0c81fa4dbeb5f3e4d2ca097b02",
820 | "value": 10000
821 | }
822 | },
823 | "5d1b50ac3a424494b6164ad379ced733": {
824 | "model_module": "@jupyter-widgets/controls",
825 | "model_module_version": "1.0.0",
826 | "model_name": "IntSliderModel",
827 | "state": {
828 | "description": "bins",
829 | "layout": "IPY_MODEL_96968120833e4191859087011a91e91b",
830 | "max": 300,
831 | "min": -100,
832 | "style": "IPY_MODEL_561f0587f937432abf667e75dbb42de7",
833 | "value": 100
834 | }
835 | },
836 | "5e4b55cca4634416bb36c1c587e07428": {
837 | "model_module": "@jupyter-widgets/output",
838 | "model_module_version": "1.0.0",
839 | "model_name": "OutputModel",
840 | "state": {
841 | "layout": "IPY_MODEL_b081a6ff7f0f4a25aef154fbe04b5540",
842 | "outputs": [
843 | {
844 | "data": {
845 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAADVhJREFUeJzt3X+IpPddwPH39UYUbDS0Q87bNhLBqzQGNXhqMf9EopJKyLXQfvSketLz1qJRSqMQq9Bg/4m2WgrW4l0TchGN/VSNOWq0SmwJmqb0hy3WRiXEM5577GWTI1aKPzauf8zsMb3c7jz7zDOzO595v2DJzOwzz3w/++O9zz2dme7b2NhAkjT/XrbbC5AkdcOgS1IRBl2SijDoklSEQZekIgy6JBVh0CWpCIMuSUUYdEkqojfjx/NlqZLUzr5xG8w66KysrLS6X7/fZ21trePV7G3OvBiceTFMMvPS0lKj7TzlIklFGHRJKsKgS1IRBl2SijDoklSEQZekIgy6JBVh0CWpCIMuSUXM/JWiba2+8fsvXd5/6swurkSS9iaP0CWpiLk5QpekefLiidu/+oaHHp/6Y3qELklFGHRJKsKgS1IRBl2SijDoklSEQZekIgy6JBVh0CWpCIMuSUUYdEkqwqBLUhEGXZKKMOiSVIRBl6QiDLokFWHQJakIgy5JRRh0SSrCoEtSEQZdkoow6JJUhEGXpCIMuiQVYdAlqQiDLklF9MZtEBHXAg8A3wT8H3AyM98fEa8APgxcB5wFIjMvTm+pkqTtNDlCXwfuzMzXAq8Dfi4irgfuAh7NzEPAo8PrkqRdMjbomXk+Mz83vPxl4EngVcAR4PRws9PAG6a1SEnSeDs6hx4R1wE3Ap8CDmTmeRhEH7im89VJkhobew59U0S8HPhj4O2Z+R8R0fR+y8AyQGbS7/fbrJPVkctt9zFver3ewsy6yZkXwyLMvHrZ9VnM3CjoEfE1DGL++5n5J8ObVyPiYGaej4iDwIUr3TczTwInh1c31tbWJl0zXexjHvT7/YWZdZMzL4ZFnHl9fb31zEtLS422G3vKJSL2AfcCT2bmb4186gxwbHj5GPDwDtcoSepQkyP0m4CfAP4+Ij4/vO2dwD1ARsRx4BngzdNZoiSpibFBz8y/AfZt8elbul2OJKktXykqSUUYdEkqwqBLUhEGXZKKMOiSVIRBl6QiDLokFWHQJakIgy5JRRh0SSrCoEtSEQZdkoow6JJUhEGXpCIMuiQVYdAlqQiDLklFGHRJKsKgS1IRBl2SijDoklSEQZekIgy6JBVh0CWpCIMuSUUYdEkqwqBLUhEGXZKKMOiSVIRBl6QiDLokFWHQJakIgy5JRRh0SSrCoEtSEb1xG0TEfcBtwIXMvGF4293ACeDZ4WbvzMxHprVISdJ4Y4MO3A/8NvDAZbe/LzPf2/mKJEmtjD3lkpmPAc/PYC2SpAk0OULfyh0R8ZPAZ4A7M/NiR2uSJLXQNugfBN4NbAz/+5vAW6+0YUQsA8sAmUm/32/1gKsjl9vuY970er2FmXWTMy+GRZh59bLrs5i5VdAz89JaI+IU8NFttj0JnBxe3VhbW2vzkF+li33Mg36/vzCzbnLmxbCIM6+vr7eeeWlpqdF2rZ62GBEHR66+Efhim/1IkrrT5GmLDwI3A/2IOAe8C7g5Ir6LwSmXs8DPTHGNkqQGxgY9M49e4eZ7p7AWSdIEfKWoJBVh0CWpCIMuSUUYdEkqwqBLUhEGXZKKMOiSVIRBl6QiDLokFWHQJakIgy5JRRh0SSrCoEtSEQZdkoow6JJUhEGXpCIMuiQVYdAlqQiDLklFGHRJKsKgS1IRBl2SijDoklSEQZekIgy6JBVh0CWpCIMuSUUYdEkqwqBLUhEGXZKKMOiSVIRBl6QiDLokFWHQJakIgy5JRfTGbRAR9wG3ARcy84bhba8APgxcB5wFIjMvTm+ZkqRxmhyh3w/cetltdwGPZuYh4NHhdUnSLhob9Mx8DHj+spuPAKeHl08Db+h4XZKkHRp7ymULBzLzPEBmno+Ia7baMCKWgeXhtvT7/VYPuDpyue0+5k2v11uYWTc582JYhJlXL7s+i5nbBr2xzDwJnBxe3VhbW5t4n13sYx70+/2FmXWTMy+GRZx5fX299cxLS0uNtmv7LJfViDgIMPzvhZb7kSR1pG3QzwDHhpePAQ93sxxJUltNnrb4IHAz0I+Ic8C7gHuAjIjjwDPAm6e5SEnSeGODnplHt/jULR2vRZI0AV8pKklFGHRJKsKgS1IRBl2SijDoklSEQZekIgy6JBVh0CWpCIMuSUUYdEkqwqBLUhEGXZKKMOiSVIRBl6QiDLokFWHQJakIgy5JRRh0SSrCoEtSEQZdkoow6JJUhEGXpCIMuiQVYdAlqQiDLklFGHRJKsKgS1IRBl2SijDoklSEQZekIgy6JBVh0CWpCIMuSUUYdEkqojfJnSPiLPBl4EVgPTMPd7EoSdLOTRT0oR/IzLUO9iNJmoCnXCSpiEmDvgH8ZUR8NiKWu1iQJKmdSU+53JSZKxFxDfBXEfGPmfnY6AbD0C8DZCb9fr/VA62OXG67j3nT6/UWZtZNzrwYFmHm1cuuz2LmfRsbG53sKCLuBv4zM9+7zWYbKysrrfb/4onbL13ef+pMq33Mm36/z9raYv3PE868GBZh5tFmARx46PHWMy8tLQHsG7dd61MuEfH1EXHV5mXgh4Evtt2fJGkyk5xyOQA8FBGb+/mDzPyLTlYlSdqx1kHPzKeB7+xwLZKkCfi0RUkqwqBLUhEGXZKKMOiSVIRBl6QiDLokFWHQJakIgy5JRRh0SSrCoEtSEQZdkoow6JJUhEGXpCIMuiQVYdAlqQiDLklFGHRJKsKgS1IRBl2SijDoklSEQZekIgy6JBVh0CWpCIMuSUUYdEkqwqBLUhEGXZKKMOiSVIRBl6QiDLokFdHb7QVIUhUvnrh9Vx9/LoM++kXbf+pM620kqamtmrLbER81l0Ef1eSL2fQbsdXn/IMgLaat+rKXIj5q7oPepa6+SVvtxz8Mi8cDg/Ym+do1+V3eq0fZk9i3sbExy8fbWFlZaXXHKl/wcUZ/yPr9Pmtra8Bkp5l2et/t1tTk8Zrsd6vtR2fuyk5/uZvup819rnTfrWberQODeTi1MI8OPPR465/tpaUlgH3jtpso6BFxK/B+YD/wocy8Z8xdDPqcm8YveJN9VgvLbn0dtXv2dNAjYj/wz8APAeeATwNHM/NL29zNoOslDJEWwSyCPsk59O8FnsrMpwEi4g+BI8B2QZdewohL3ZjkhUWvAv5t5Pq54W2SpF0wyRH6lQ7/X3L+JiKWgWWAzNz8p8PO/dln2t1PkvaI1v1raJIj9HPAtSPXXw285AR5Zp7MzMOZeZjBH4FWHxHx2UnuP48fzrwYH868GB8dzDzWJEfonwYORcS3AP8O/Bjw4xPsT5I0gdZH6Jm5DtwBfAx4cnBT/kNXC5Mk7cxErxTNzEeARzpayzgnZ/Q4e4kzLwZnXgxTn3nWrxSVJE2J74cuSUXsuTfnGvd2AhHxtcADwHcDzwE/mplnZ73OLjWY+R3ATwPrwLPAWzPzX2e+0A41fduIiHgT8BHgezJzbp+72mTeiAjgbgZP//1CZs71kwwa/Fx/M3AauHq4zV3D07hzKyLuA24DLmTmDVf4/D4GX5MfAb4C/FRmfq6rx99TR+jDtxP4APB64HrgaERcf9lmx4GLmfmtwPuAX5/tKrvVcOa/Aw5n5ncAfwT8xmxX2a2GMxMRVwG/AHxqtivsVpN5I+IQ8MvATZn57cDbZ77QDjX8Hv8qgydT3MjgWXK/M9tVTsX9wK3bfP71wKHhxzLwwS4ffE8FnZG3E8jM/wE2305g1BEGf9VhELdbhn/15tXYmTPz45n5leHVJxg853+eNfk+A7ybwR+v/5rl4qagybwngA9k5kWAzLww4zV2rcnMG8A3DC9/I1d4Hcu8yczHgOe32eQI8EBmbmTmE8DVEXGwq8ffa0Fv8nYCl7YZPnXyBeCVM1nddOz0LRSOA38+1RVN39iZI+JG4NrM/OgsFzYlTb7HrwFeExF/GxFPDE9XzLMmM98NvCUizjF4ttzPz2Zpu2qqb5my14J+pSPty5+G02SbedJ4noh4C3AYeM9UVzR9284cES9jcDrtzpmtaLqafI97DP4ZfjNwFPhQRFw95XVNU5OZjwL3Z+arGZxT/r3h976yqfZrr33xmrydwKVtIqLH4J9q2/0TZ69r9BYKEfGDwK8At2fmf89obdMybuargBuAT0TEWeB1wJmIODyzFXar6c/1w5n5v5n5L8A/MQj8vGoy83EgATLzk8DXAf2ZrG73NPp9b2uvPculydsJnAGOAZ8E3gT8dWbO8xH62JmHpx9+F7i1wLlVGDNzZr7AyC92RHwC+MU5fpZLk5/rP2V4xBoRfQanYJ6e6Sq71WTmZ4BbGMz8WgZBf3amq5y9M8Adw7cb/z7ghcw839XO99QR+lZvJxARvxYRm2+afS/wyoh4CngHcNfurLYbDWd+D/By4CMR8fmImOv/c8qGM5fRcN6PAc9FxJeAjwO/lJnP7c6KJ9dw5juBExHxBeBBBk/hm+eDMyLiQQYHm98WEeci4nhEvC0i3jbc5BEGf6ifAk4BP9vl4/tKUUkqYk8doUuS2jPoklSEQZekIgy6JBVh0CWpCIMuSUUYdEkqwqBLUhH/D1HP9RWHeniHAAAAAElFTkSuQmCC\n",
846 | "text/plain": ""
847 | },
848 | "metadata": {},
849 | "output_type": "display_data"
850 | }
851 | ]
852 | }
853 | },
854 | "60b9ca70164b40f0bd302169ebab3b4b": {
855 | "model_module": "@jupyter-widgets/controls",
856 | "model_module_version": "1.0.0",
857 | "model_name": "FloatSliderModel",
858 | "state": {
859 | "description": "temp",
860 | "layout": "IPY_MODEL_1320ff9b07744f8c8900a532fce6c7df",
861 | "max": 1.5,
862 | "min": -0.5,
863 | "step": 0.1,
864 | "style": "IPY_MODEL_8177c75f77a2409daeb4a5f67fab29f7",
865 | "value": 0.5
866 | }
867 | },
868 | "62d89b6cd0554f4da71b3c29c9090b7b": {
869 | "model_module": "@jupyter-widgets/base",
870 | "model_module_version": "1.0.0",
871 | "model_name": "LayoutModel",
872 | "state": {}
873 | },
874 | "6495768150254200b028cf826d7e9b73": {
875 | "model_module": "@jupyter-widgets/base",
876 | "model_module_version": "1.0.0",
877 | "model_name": "LayoutModel",
878 | "state": {}
879 | },
880 | "65f9e163774142b98f84fb203e592550": {
881 | "model_module": "@jupyter-widgets/output",
882 | "model_module_version": "1.0.0",
883 | "model_name": "OutputModel",
884 | "state": {
885 | "layout": "IPY_MODEL_70813af1f4b74bc9958fc62458bc34b0",
886 | "outputs": [
887 | {
888 | "data": {
889 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAADmFJREFUeJzt3X+M5PVdx/HnlW00EZS0E+gtxWAiNUWiJZ61Kf9gUEMNgZK0b3umLYbzto2iIUUTRJMS+QftD0JiJV0KAYxi3209udBTbLANqRRSijTFoobgiedd9li4UJLGH0vXP2YWl+3tzXe/853Znfc8H8nmvt+Zz3y/7/fOzuv7ne995zu7VldXkSRNv9dtdwGSpG4Y6JJUhIEuSUUY6JJUhIEuSUUY6JJUhIEuSUUY6JJUhIEuSUXMTXh9fixVktrZNWzApAOdo0ePtnpcr9djeXm542p2NnueDfY8G0bpeX5+vtE4D7lIUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhET/6SoJM2CV/Zf8dobDjwy9nW6hy5JRRjoklSEgS5JRRjoklTE0P8UjYhzgXuBNwHfAxYz87aIuAnYDzw/GHpjZh4aV6GSpFNrcpbLCnB9Zj4REWcA34iILw3uuzUzPz6+8iRJTQ0N9Mw8BhwbTL8cEU8D54y7MEnS1mzpPPSIOA+4CHgMuBi4NiI+CDxOfy/+ROcVSpIaaRzoEXE68AXgusz8TkTcDtxM/3tCbwY+AVxzksctAAsAmUmv12tX6Nxc68dOK3ueDfZc09KG+Un0vGt1dfj3NkfE64EHgAcz85Mnuf884IHMvHDIolb9TtHm7Hk22HNNGz8pevaBR0b9TtGhXxI99LTFiNgF3Ak8vT7MI2L3umFXAU9tvUxJUleaHHK5GPgA8K2IeHJw243A3oh4G/1DLoeBD42lQklSI03OcvkqJ9/V95xzSdpB/KSoJBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEVv6TtHttHTVO1+dPu2Og9tYiSTtTO6hS1IRBrokFWGgS1IRBrokFWGgS1IRBrokFWGgS1IRBrokFWGgS1IRBrokFWGgS1IRBrokFWGgS1IRBrokFWGgS1IRBrokFTH0Cy4i4lzgXuBNwPeAxcy8LSLeAHwWOA84DERmnhhfqZKkU2myh74CXJ+ZbwXeAfxmRFwA3AA8lJnnAw8N5iVJ22RooGfmscx8YjD9MvA0cA5wJXDPYNg9wLvHVaQkabgtfadoRJwHXAQ8BpydmcegH/oRcdYmj1kAFgbj6PV6rQpdWjfddhnTZm5ubmZ6XWPPs2EWel7aMD+JnhsHekScDnwBuC4zvxMRjR6XmYvA4mB2dXl5ectFbtTFMqZBr9ebmV7X2PNsmMWeV1ZWWvc8Pz/faFyjs1wi4vX0w/zPM/OvBjcvRcTuwf27geMt6pQkdWRooEfELuBO4OnM/OS6uw4CVw+mrwbu7748SVJTTQ65XAx8APhWRDw5uO1G4BYgI2If8Bzw3vGUKElqYmigZ+ZXgV2b3H1pt+VIktryk6KSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFzA0bEBF3AZcDxzPzwsFtNwH7gecHw27MzEPjKlKSNNzQQAfuBv4EuHfD7bdm5sc7r0iS1MrQQy6Z+TDw4gRqkSSNoMke+maujYgPAo8D12fmiY5qkiS10DbQbwduBlYH/34CuOZkAyNiAVgAyEx6vV6rFS6tm267jGkzNzc3M72usefZMAs9L22Yn0TPrQI9M1+tNSLuAB44xdhFYHEwu7q8vNxmla/RxTKmQa/Xm5le19jzbJjFnldWVlr3PD8/32hcq9MWI2L3utmrgKfaLEeS1J0mpy3eB1wC9CLiCPBR4JKIeBv9Qy6HgQ+NsUZJUgNDAz0z957k5jvHUIskaQR+UlSSijDQJakIA12SijDQJakIA12SijDQJakIA12SijDQJakIA12SijDQJakIA12SijDQJakIA12SijDQJakIA12SijDQJakIA12SijDQJakIA12SijDQJakIA12SijDQJakIA12SijDQJakIA12SijDQJakIA12SijDQJakIA12SijDQJakIA12SipgbNiAi7gIuB45n5oWD294AfBY4DzgMRGaeGF+ZkqRhmuyh3w1ctuG2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\n",
890 | "text/plain": ""
891 | },
892 | "metadata": {},
893 | "output_type": "display_data"
894 | }
895 | ]
896 | }
897 | },
898 | "660c69af7fdb495abd50421eceeeea05": {
899 | "model_module": "@jupyter-widgets/controls",
900 | "model_module_version": "1.0.0",
901 | "model_name": "VBoxModel",
902 | "state": {
903 | "_dom_classes": [
904 | "widget-interact"
905 | ],
906 | "children": [
907 | "IPY_MODEL_c3e8188b869a484b889c20a68120d415",
908 | "IPY_MODEL_497ea0e68c5246ce97b4891797c78cad",
909 | "IPY_MODEL_864cfd51a40f40fe8b5556f82a4d9895",
910 | "IPY_MODEL_ccc0829de18841eab299e3b12bbe50f8",
911 | "IPY_MODEL_597f9eda29d14af6ad4b2c5a7c022038",
912 | "IPY_MODEL_1288125c81d84678b1895e9631035187",
913 | "IPY_MODEL_a6ef71308a3d4b8799bf68cb9b38fe8b"
914 | ],
915 | "layout": "IPY_MODEL_12549d974b564b44932d940857de8ff8"
916 | }
917 | },
918 | "6643f2823da6496d8ff767f26c88c6de": {
919 | "model_module": "@jupyter-widgets/controls",
920 | "model_module_version": "1.0.0",
921 | "model_name": "VBoxModel",
922 | "state": {
923 | "_dom_classes": [
924 | "widget-interact"
925 | ],
926 | "children": [
927 | "IPY_MODEL_e3427cdeb83c446b97458c74afad4331",
928 | "IPY_MODEL_19da3242a77a4934ab33442d11873d05",
929 | "IPY_MODEL_efc531739a454ee792a83ccd85329e00",
930 | "IPY_MODEL_f2b7f41522204f1da9161978e6251deb",
931 | "IPY_MODEL_19e95538f98e44018c3de6d2e267db5c",
932 | "IPY_MODEL_5d1b50ac3a424494b6164ad379ced733",
933 | "IPY_MODEL_ddcdec6b97dc4ffaa1ed826ee149d546"
934 | ],
935 | "layout": "IPY_MODEL_b757cef261a147209a7ce96a1eb29783"
936 | }
937 | },
938 | "6809a6e0d9ff46acb1a93c6e031b8c2d": {
939 | "model_module": "@jupyter-widgets/base",
940 | "model_module_version": "1.0.0",
941 | "model_name": "LayoutModel",
942 | "state": {}
943 | },
944 | "698a3c7447234c8caac9efd63418749e": {
945 | "model_module": "@jupyter-widgets/base",
946 | "model_module_version": "1.0.0",
947 | "model_name": "LayoutModel",
948 | "state": {}
949 | },
950 | "6a21374c65d8470fbddef485bf6ec5f1": {
951 | "model_module": "@jupyter-widgets/controls",
952 | "model_module_version": "1.0.0",
953 | "model_name": "FloatSliderModel",
954 | "state": {
955 | "description": "gamma",
956 | "layout": "IPY_MODEL_1460c365493a4442bf8bc1b6921e4fe9",
957 | "max": 0.1,
958 | "min": -0.30000000000000004,
959 | "step": 0.1,
960 | "style": "IPY_MODEL_0883655433c246c681967186673996a0",
961 | "value": -0.1
962 | }
963 | },
964 | "6a2291d00f1348f1bac1d69f37bedd86": {
965 | "model_module": "@jupyter-widgets/base",
966 | "model_module_version": "1.0.0",
967 | "model_name": "LayoutModel",
968 | "state": {}
969 | },
970 | "6a7fa68cd15a46f5a8cabd69471ccad1": {
971 | "model_module": "@jupyter-widgets/controls",
972 | "model_module_version": "1.0.0",
973 | "model_name": "SliderStyleModel",
974 | "state": {
975 | "description_width": ""
976 | }
977 | },
978 | "6d1b8a33586a41218a9fecb2e64a3e7f": {
979 | "model_module": "@jupyter-widgets/controls",
980 | "model_module_version": "1.0.0",
981 | "model_name": "SliderStyleModel",
982 | "state": {
983 | "description_width": ""
984 | }
985 | },
986 | "6df38d04b5e54e689cc079c41c76c410": {
987 | "model_module": "@jupyter-widgets/base",
988 | "model_module_version": "1.0.0",
989 | "model_name": "LayoutModel",
990 | "state": {}
991 | },
992 | "6ee91273ed9a4278b07d01b050653858": {
993 | "model_module": "@jupyter-widgets/base",
994 | "model_module_version": "1.0.0",
995 | "model_name": "LayoutModel",
996 | "state": {}
997 | },
998 | "70813af1f4b74bc9958fc62458bc34b0": {
999 | "model_module": "@jupyter-widgets/base",
1000 | "model_module_version": "1.0.0",
1001 | "model_name": "LayoutModel",
1002 | "state": {}
1003 | },
1004 | "712288e69e3643ec9030451bd01446be": {
1005 | "model_module": "@jupyter-widgets/controls",
1006 | "model_module_version": "1.0.0",
1007 | "model_name": "VBoxModel",
1008 | "state": {
1009 | "_dom_classes": [
1010 | "widget-interact"
1011 | ],
1012 | "children": [
1013 | "IPY_MODEL_830f6c2eaa0b4da7837fdc95d89cee05",
1014 | "IPY_MODEL_9077f04f526c4c7eae30dde1ab83802c",
1015 | "IPY_MODEL_04dacf4eaa904faf9862197a4c1b84ef",
1016 | "IPY_MODEL_79d03140e79b415ba7b376cd857881e6",
1017 | "IPY_MODEL_47e205f6b0194c978759a8a81b26fd52",
1018 | "IPY_MODEL_755af2d5ab8c4a96a343666b3bca2a61",
1019 | "IPY_MODEL_1ddbfd1a05f646199f72011640a83c2b"
1020 | ],
1021 | "layout": "IPY_MODEL_bfca712373a148da94ec87c65a458c94"
1022 | }
1023 | },
1024 | "71de264f77d943238c925187864121d8": {
1025 | "model_module": "@jupyter-widgets/controls",
1026 | "model_module_version": "1.0.0",
1027 | "model_name": "VBoxModel",
1028 | "state": {
1029 | "_dom_classes": [
1030 | "widget-interact"
1031 | ],
1032 | "children": [
1033 | "IPY_MODEL_4b99d78dabf9407491e2275ec7fe1e5d",
1034 | "IPY_MODEL_b3d863071d3349a1a502456e93d5280b",
1035 | "IPY_MODEL_a22b7312c1a7496a947ac801f101cc25",
1036 | "IPY_MODEL_021f6332aa734f648ffda288dd3c0546",
1037 | "IPY_MODEL_074e6119e14b4abb931a901978a72026",
1038 | "IPY_MODEL_046b0662d2ae4cecb730455d3c0419b8",
1039 | "IPY_MODEL_5e4b55cca4634416bb36c1c587e07428"
1040 | ],
1041 | "layout": "IPY_MODEL_90aed7e3f33c42888fba36754219d685"
1042 | }
1043 | },
1044 | "72450776e69f4d84b2386d288774191b": {
1045 | "model_module": "@jupyter-widgets/controls",
1046 | "model_module_version": "1.0.0",
1047 | "model_name": "SliderStyleModel",
1048 | "state": {
1049 | "description_width": ""
1050 | }
1051 | },
1052 | "73ad3200b07848d28e9cd6a0ee8fa221": {
1053 | "model_module": "@jupyter-widgets/controls",
1054 | "model_module_version": "1.0.0",
1055 | "model_name": "VBoxModel",
1056 | "state": {
1057 | "_dom_classes": [
1058 | "widget-interact"
1059 | ],
1060 | "children": [
1061 | "IPY_MODEL_d76b82a3bfa9404ab895618522ed23b8",
1062 | "IPY_MODEL_60b9ca70164b40f0bd302169ebab3b4b",
1063 | "IPY_MODEL_26c55c6fa20f4dcbbcb51805f3a8d825",
1064 | "IPY_MODEL_c92083f3a1284275accbdddb33f4e6b7",
1065 | "IPY_MODEL_b171b9741e5f410dac82c5d887e1843e",
1066 | "IPY_MODEL_0aa3595cd23943c8a5f68b8255dc64af",
1067 | "IPY_MODEL_65f9e163774142b98f84fb203e592550"
1068 | ],
1069 | "layout": "IPY_MODEL_120fa72b45c245018c527da062edd195"
1070 | }
1071 | },
1072 | "755af2d5ab8c4a96a343666b3bca2a61": {
1073 | "model_module": "@jupyter-widgets/controls",
1074 | "model_module_version": "1.0.0",
1075 | "model_name": "IntSliderModel",
1076 | "state": {
1077 | "description": "bins",
1078 | "layout": "IPY_MODEL_26d8b2df157c4eb7837dc9fd13022f85",
1079 | "max": 300,
1080 | "min": -100,
1081 | "style": "IPY_MODEL_030c2c6969e74a3e81ac2833f36c0ac9",
1082 | "value": 100
1083 | }
1084 | },
1085 | "759d5679f9a147fab0b425807a1d624e": {
1086 | "model_module": "@jupyter-widgets/controls",
1087 | "model_module_version": "1.0.0",
1088 | "model_name": "FloatSliderModel",
1089 | "state": {
1090 | "description": "loc",
1091 | "layout": "IPY_MODEL_ae8f697c02ac462ebc7e4248d3d895b0",
1092 | "max": 0.5,
1093 | "min": -0.5,
1094 | "step": 0.1,
1095 | "style": "IPY_MODEL_8a2d9b47f4aa46948a0ee05576b023ab"
1096 | }
1097 | },
1098 | "76560e0c81fa4dbeb5f3e4d2ca097b02": {
1099 | "model_module": "@jupyter-widgets/controls",
1100 | "model_module_version": "1.0.0",
1101 | "model_name": "SliderStyleModel",
1102 | "state": {
1103 | "description_width": ""
1104 | }
1105 | },
1106 | "77f2eadac584460daefde96932b55e21": {
1107 | "model_module": "@jupyter-widgets/controls",
1108 | "model_module_version": "1.0.0",
1109 | "model_name": "SliderStyleModel",
1110 | "state": {
1111 | "description_width": ""
1112 | }
1113 | },
1114 | "79675eb0d9e147c09b59f8e88cce2b85": {
1115 | "model_module": "@jupyter-widgets/base",
1116 | "model_module_version": "1.0.0",
1117 | "model_name": "LayoutModel",
1118 | "state": {}
1119 | },
1120 | "79d03140e79b415ba7b376cd857881e6": {
1121 | "model_module": "@jupyter-widgets/controls",
1122 | "model_module_version": "1.0.0",
1123 | "model_name": "FloatSliderModel",
1124 | "state": {
1125 | "description": "zeta",
1126 | "layout": "IPY_MODEL_79675eb0d9e147c09b59f8e88cce2b85",
1127 | "max": 3.3000000000000003,
1128 | "min": -1.1,
1129 | "step": 0.1,
1130 | "style": "IPY_MODEL_7bd764ffb11e43adaa775c799b0d474c",
1131 | "value": 1.1
1132 | }
1133 | },
1134 | "79e65a39fb594d13a2b8bc65cfa9e4c7": {
1135 | "model_module": "@jupyter-widgets/base",
1136 | "model_module_version": "1.0.0",
1137 | "model_name": "LayoutModel",
1138 | "state": {}
1139 | },
1140 | "7bd764ffb11e43adaa775c799b0d474c": {
1141 | "model_module": "@jupyter-widgets/controls",
1142 | "model_module_version": "1.0.0",
1143 | "model_name": "SliderStyleModel",
1144 | "state": {
1145 | "description_width": ""
1146 | }
1147 | },
1148 | "7bff30a503cd4f75b82aea17f132f867": {
1149 | "model_module": "@jupyter-widgets/base",
1150 | "model_module_version": "1.0.0",
1151 | "model_name": "LayoutModel",
1152 | "state": {}
1153 | },
1154 | "80ab7b43894f470fad3e8320522c6d4d": {
1155 | "model_module": "@jupyter-widgets/controls",
1156 | "model_module_version": "1.0.0",
1157 | "model_name": "SliderStyleModel",
1158 | "state": {
1159 | "description_width": ""
1160 | }
1161 | },
1162 | "80e13e4b3073497dafb178278b821497": {
1163 | "model_module": "@jupyter-widgets/controls",
1164 | "model_module_version": "1.0.0",
1165 | "model_name": "VBoxModel",
1166 | "state": {
1167 | "_dom_classes": [
1168 | "widget-interact"
1169 | ],
1170 | "layout": "IPY_MODEL_2683c7a1027b4b1983ccdb588407c356"
1171 | }
1172 | },
1173 | "8177c75f77a2409daeb4a5f67fab29f7": {
1174 | "model_module": "@jupyter-widgets/controls",
1175 | "model_module_version": "1.0.0",
1176 | "model_name": "SliderStyleModel",
1177 | "state": {
1178 | "description_width": ""
1179 | }
1180 | },
1181 | "824162cdf7034bb9bebd882f15e0d2b3": {
1182 | "model_module": "@jupyter-widgets/controls",
1183 | "model_module_version": "1.0.0",
1184 | "model_name": "FloatSliderModel",
1185 | "state": {
1186 | "description": "temp",
1187 | "layout": "IPY_MODEL_6495768150254200b028cf826d7e9b73",
1188 | "max": 1,
1189 | "min": 0.1,
1190 | "step": 0.1,
1191 | "style": "IPY_MODEL_b3f06496d69b4592b824831454fb03e9",
1192 | "value": 0.55
1193 | }
1194 | },
1195 | "830f6c2eaa0b4da7837fdc95d89cee05": {
1196 | "model_module": "@jupyter-widgets/controls",
1197 | "model_module_version": "1.0.0",
1198 | "model_name": "FloatSliderModel",
1199 | "state": {
1200 | "description": "loc",
1201 | "layout": "IPY_MODEL_8eeb5455fb9b44e0bbc863ef67b2e150",
1202 | "max": 0.1,
1203 | "step": 0.4,
1204 | "style": "IPY_MODEL_29ecb72e0ce6456596f14282c8cce777"
1205 | }
1206 | },
1207 | "8511e918c1714c5a80333ad7b467f7af": {
1208 | "model_module": "@jupyter-widgets/base",
1209 | "model_module_version": "1.0.0",
1210 | "model_name": "LayoutModel",
1211 | "state": {}
1212 | },
1213 | "864cfd51a40f40fe8b5556f82a4d9895": {
1214 | "model_module": "@jupyter-widgets/controls",
1215 | "model_module_version": "1.0.0",
1216 | "model_name": "FloatSliderModel",
1217 | "state": {
1218 | "description": "gamma",
1219 | "layout": "IPY_MODEL_4ea678e7cbc34f13a804f562b90bf0b3",
1220 | "max": 0.1,
1221 | "min": -0.30000000000000004,
1222 | "step": 0.1,
1223 | "style": "IPY_MODEL_1ca6e221d623444d882725afda2d59bc",
1224 | "value": -0.1
1225 | }
1226 | },
1227 | "86bfe0bc13744a9490646f7efc2da31d": {
1228 | "model_module": "@jupyter-widgets/controls",
1229 | "model_module_version": "1.0.0",
1230 | "model_name": "SliderStyleModel",
1231 | "state": {
1232 | "description_width": ""
1233 | }
1234 | },
1235 | "8849a62152b0411dbfb19679e33aea23": {
1236 | "model_module": "@jupyter-widgets/base",
1237 | "model_module_version": "1.0.0",
1238 | "model_name": "LayoutModel",
1239 | "state": {}
1240 | },
1241 | "8a2d9b47f4aa46948a0ee05576b023ab": {
1242 | "model_module": "@jupyter-widgets/controls",
1243 | "model_module_version": "1.0.0",
1244 | "model_name": "SliderStyleModel",
1245 | "state": {
1246 | "description_width": ""
1247 | }
1248 | },
1249 | "8a3b9260d0eb4cb1a502066eaacf40b1": {
1250 | "model_module": "@jupyter-widgets/base",
1251 | "model_module_version": "1.0.0",
1252 | "model_name": "LayoutModel",
1253 | "state": {}
1254 | },
1255 | "8affef153ace46259509729499cef951": {
1256 | "model_module": "@jupyter-widgets/base",
1257 | "model_module_version": "1.0.0",
1258 | "model_name": "LayoutModel",
1259 | "state": {}
1260 | },
1261 | "8bfebebed41044ff82fda9d68e59344c": {
1262 | "model_module": "@jupyter-widgets/base",
1263 | "model_module_version": "1.0.0",
1264 | "model_name": "LayoutModel",
1265 | "state": {}
1266 | },
1267 | "8e47cf84ce4949d4b9bebdc83893dc85": {
1268 | "model_module": "@jupyter-widgets/output",
1269 | "model_module_version": "1.0.0",
1270 | "model_name": "OutputModel",
1271 | "state": {
1272 | "layout": "IPY_MODEL_f5c27bcb2a574a4294b18208cf026bda",
1273 | "outputs": [
1274 | {
1275 | "data": {
1276 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAADjRJREFUeJzt3X+sZPVZx/H3limaCEraCXRvi8FEaoobLXGtTfcfDGqoIfxI2kfXtNKw7m2jaAhogmhSIv+g/RWSVtJLISxGaZ9akQ2iaLANqZSmFGmKRQ3BFdcld7mwgZpG8dLrHzN3vdzu7px75sedeeb9Sm72nDPfc87z3Nn5zJmzZ87uWFtbQ5I0+1633QVIkkbDQJekIgx0SSrCQJekIgx0SSrCQJekIjqDBkTEucDdwJuA7wJLmXlrRNwE7Aee7w+9MTMfGFehkqRT2zHoOvSI2AnszMzHI+JM4OvAFUAA/5WZHx1/mZKkQQYG+mYRcR/wSWAPBrokTY0tBXpEnAc8DOwCrgM+ALwMPAZcn5nHBmzCr6VKUjs7Bg0YeA59XUScAXwBuDYzX46I24Cb6YX0zcDHgKtPsN4isAiQmbzyyitNd/naQjsdVldXW607q+x5PtjzfBim59NPP73RuEZH6BHxeuB+4MHM/PgJHj8PuD8zdw3Y1NqRI0caFbZZt9tlZWWl1bqzyp7ngz3Ph2F6XlhYgAZH6AMvW4yIHcAdwFMbw7z/j6XrrgSe3HqZkqRRaXLKZQ/wfuCbEfFEf9mNwN6IeDu9Uy6HgA+OpUJJUiMDAz0zv8yJD/W95lySpojfFJWkIgx0SSrCQJekIgx0SSrCQJekIhp/U3S7LV/5ruPTp91+cBsrkaTpNDOBLkmz5NX9l712wb2PjH2fnnKRpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqojNoQEScC9wNvAn4LrCUmbdGxBuAzwHnAYeAyMxj4ytVknQqTY7QV4HrM/NtwDuB34iIC4AbgIcy83zgof68JGmbDAz0zHwuMx/vT38beAp4M3A5cKA/7ABwxbiKlCQNNvCUy0YRcR5wIfBV4JzMfA56oR8RZ59knUVgsT+ObrfbqtDlDdNttzFrOp3O3PS6zp7nwzz0vLxpfhI9Nw70iDgD+AJwbWa+HBGN1svMJWCpP7u2srKy5SI3G8U2ZkG3252bXtfZ83yYx55XV1db97ywsNBoXKOrXCLi9fTC/E8z8y/6i5cjYmf/8Z3A0RZ1SpJGZGCgR8QO4A7gqcz8+IaHDgJX9aevAu4bfXmSpKaanHLZA7wf+GZEPNFfdiNwC5ARsQ94FnjveEqUJDUxMNAz88vAjpM8fPFoy5EkteU3RSWpCANdkoow0CWpCANdkoow0CWpCANdkoow0CWpCANdkoow0CWpCANdkoow0CWpCANdkoow0CWpCANdkoow0CWpCANdkoow0CWpCANdkoow0CWpCANdkoow0CWpCANdkoow0CWpCANdkoow0CWpCANdkoow0CWpCANdkoow0CWpCANdkoow0CWpCANdkoow0CWpCANdkoroDBoQEXcClwJHM3NXf9lNwH7g+f6wGzPzgXEVKUkabGCgA3cBnwTu3rT8E5n50ZFXJElqZeApl8x8GHhxArVIkobQ5Aj9ZK6JiF8FHgOuz8xjI6pJktRC20C/DbgZWOv/+THg6hMNjIhFYBEgM+l2u612uLxhuu02Zk2n05mbXtfZ83yYh56XN81PoudWgZ6Zx2uNiNuB+08xdglY6s+uraystNnla4xiG7Og2+3OTa/r7Hk+zGPPq6urrXteWFhoNK7VZYsRsXPD7JXAk222I0kanSaXLd4DXAR0I+Iw8GHgooh4O71TLoeAD46xRklSAwMDPTP3nmDxHWOoRZI0BL8pKklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVERn0ICIuBO4FDiambv6y94AfA44DzgERGYeG1+ZkqRBmhyh3wVcsmnZDcBDmXk+8FB/XpK0jQYGemY+DLy4afHlwIH+9AHgihHXJUnaorbn0M/JzOcA+n+ePbqSJEltDDyHPqyIWAQW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\n",
1277 | "text/plain": ""
1278 | },
1279 | "metadata": {},
1280 | "output_type": "display_data"
1281 | }
1282 | ]
1283 | }
1284 | },
1285 | "8eeb5455fb9b44e0bbc863ef67b2e150": {
1286 | "model_module": "@jupyter-widgets/base",
1287 | "model_module_version": "1.0.0",
1288 | "model_name": "LayoutModel",
1289 | "state": {}
1290 | },
1291 | "9077f04f526c4c7eae30dde1ab83802c": {
1292 | "model_module": "@jupyter-widgets/controls",
1293 | "model_module_version": "1.0.0",
1294 | "model_name": "FloatSliderModel",
1295 | "state": {
1296 | "description": "temp",
1297 | "layout": "IPY_MODEL_0d126c0e25024ebc8505b30cf3b16cc2",
1298 | "max": 1.5,
1299 | "min": -0.5,
1300 | "step": 0.1,
1301 | "style": "IPY_MODEL_0db5ab40f0b0452a9863e834af7e2df0",
1302 | "value": 1.1
1303 | }
1304 | },
1305 | "90aed7e3f33c42888fba36754219d685": {
1306 | "model_module": "@jupyter-widgets/base",
1307 | "model_module_version": "1.0.0",
1308 | "model_name": "LayoutModel",
1309 | "state": {}
1310 | },
1311 | "91f6409662a94e47bf535c7a6253ed7c": {
1312 | "model_module": "@jupyter-widgets/controls",
1313 | "model_module_version": "1.0.0",
1314 | "model_name": "SliderStyleModel",
1315 | "state": {
1316 | "description_width": ""
1317 | }
1318 | },
1319 | "941e53cdd6fc45b783d3fb2acd328f9f": {
1320 | "model_module": "@jupyter-widgets/controls",
1321 | "model_module_version": "1.0.0",
1322 | "model_name": "SliderStyleModel",
1323 | "state": {
1324 | "description_width": ""
1325 | }
1326 | },
1327 | "950b1b1f1fa94ab886146709d28db828": {
1328 | "model_module": "@jupyter-widgets/base",
1329 | "model_module_version": "1.0.0",
1330 | "model_name": "LayoutModel",
1331 | "state": {}
1332 | },
1333 | "96968120833e4191859087011a91e91b": {
1334 | "model_module": "@jupyter-widgets/base",
1335 | "model_module_version": "1.0.0",
1336 | "model_name": "LayoutModel",
1337 | "state": {}
1338 | },
1339 | "a0a295f4eba84b0f8554852594825f06": {
1340 | "model_module": "@jupyter-widgets/output",
1341 | "model_module_version": "1.0.0",
1342 | "model_name": "OutputModel",
1343 | "state": {
1344 | "layout": "IPY_MODEL_950b1b1f1fa94ab886146709d28db828",
1345 | "outputs": [
1346 | {
1347 | "data": {
1348 | "image/png": "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\n",
1349 | "text/plain": ""
1350 | },
1351 | "metadata": {},
1352 | "output_type": "display_data"
1353 | }
1354 | ]
1355 | }
1356 | },
1357 | "a0c3983442b3462e88f49996c912c5c6": {
1358 | "model_module": "@jupyter-widgets/controls",
1359 | "model_module_version": "1.0.0",
1360 | "model_name": "VBoxModel",
1361 | "state": {
1362 | "_dom_classes": [
1363 | "widget-interact"
1364 | ],
1365 | "layout": "IPY_MODEL_6ee91273ed9a4278b07d01b050653858"
1366 | }
1367 | },
1368 | "a22b7312c1a7496a947ac801f101cc25": {
1369 | "model_module": "@jupyter-widgets/controls",
1370 | "model_module_version": "1.0.0",
1371 | "model_name": "FloatSliderModel",
1372 | "state": {
1373 | "description": "gamma",
1374 | "layout": "IPY_MODEL_8bfebebed41044ff82fda9d68e59344c",
1375 | "max": 0.1,
1376 | "min": -0.30000000000000004,
1377 | "step": 0.1,
1378 | "style": "IPY_MODEL_109fcfbda77e476cbe27cb66facf1122",
1379 | "value": -0.1
1380 | }
1381 | },
1382 | "a3c5ab8be9ae412983775fc3b7f9fd97": {
1383 | "model_module": "@jupyter-widgets/controls",
1384 | "model_module_version": "1.0.0",
1385 | "model_name": "FloatSliderModel",
1386 | "state": {
1387 | "description": "loc",
1388 | "layout": "IPY_MODEL_5495f6e24b704c0dad7fbc93e55c17c8",
1389 | "max": 0.5,
1390 | "min": -0.5,
1391 | "step": 0.1,
1392 | "style": "IPY_MODEL_0c74014857b34981aeaa894a94392e67"
1393 | }
1394 | },
1395 | "a6ef71308a3d4b8799bf68cb9b38fe8b": {
1396 | "model_module": "@jupyter-widgets/output",
1397 | "model_module_version": "1.0.0",
1398 | "model_name": "OutputModel",
1399 | "state": {
1400 | "layout": "IPY_MODEL_8511e918c1714c5a80333ad7b467f7af",
1401 | "outputs": [
1402 | {
1403 | "data": {
1404 | "image/png": "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\n",
1405 | "text/plain": ""
1406 | },
1407 | "metadata": {},
1408 | "output_type": "display_data"
1409 | }
1410 | ]
1411 | }
1412 | },
1413 | "a71f9a9ee22145fb91359eab43636d9e": {
1414 | "model_module": "@jupyter-widgets/base",
1415 | "model_module_version": "1.0.0",
1416 | "model_name": "LayoutModel",
1417 | "state": {}
1418 | },
1419 | "abafeda1a4014e309ee379aaf5148007": {
1420 | "model_module": "@jupyter-widgets/base",
1421 | "model_module_version": "1.0.0",
1422 | "model_name": "LayoutModel",
1423 | "state": {}
1424 | },
1425 | "ae8f697c02ac462ebc7e4248d3d895b0": {
1426 | "model_module": "@jupyter-widgets/base",
1427 | "model_module_version": "1.0.0",
1428 | "model_name": "LayoutModel",
1429 | "state": {}
1430 | },
1431 | "b081a6ff7f0f4a25aef154fbe04b5540": {
1432 | "model_module": "@jupyter-widgets/base",
1433 | "model_module_version": "1.0.0",
1434 | "model_name": "LayoutModel",
1435 | "state": {}
1436 | },
1437 | "b171b9741e5f410dac82c5d887e1843e": {
1438 | "model_module": "@jupyter-widgets/controls",
1439 | "model_module_version": "1.0.0",
1440 | "model_name": "IntSliderModel",
1441 | "state": {
1442 | "description": "num",
1443 | "layout": "IPY_MODEL_056b504b662b4078bd47341b9e2b4c7b",
1444 | "max": 30000,
1445 | "min": -10000,
1446 | "style": "IPY_MODEL_6d1b8a33586a41218a9fecb2e64a3e7f",
1447 | "value": 10000
1448 | }
1449 | },
1450 | "b3d863071d3349a1a502456e93d5280b": {
1451 | "model_module": "@jupyter-widgets/controls",
1452 | "model_module_version": "1.0.0",
1453 | "model_name": "FloatSliderModel",
1454 | "state": {
1455 | "description": "temp",
1456 | "layout": "IPY_MODEL_2f1bb9cb11b4449abb506e70f6013d4d",
1457 | "max": 1.5,
1458 | "min": -0.5,
1459 | "step": 0.1,
1460 | "style": "IPY_MODEL_c6a0959a80b94c1e9093678de0d0ff5c",
1461 | "value": 0.5
1462 | }
1463 | },
1464 | "b3f06496d69b4592b824831454fb03e9": {
1465 | "model_module": "@jupyter-widgets/controls",
1466 | "model_module_version": "1.0.0",
1467 | "model_name": "SliderStyleModel",
1468 | "state": {
1469 | "description_width": ""
1470 | }
1471 | },
1472 | "b757cef261a147209a7ce96a1eb29783": {
1473 | "model_module": "@jupyter-widgets/base",
1474 | "model_module_version": "1.0.0",
1475 | "model_name": "LayoutModel",
1476 | "state": {}
1477 | },
1478 | "b9f7ac4627df49ee8d4a1f43777b758f": {
1479 | "model_module": "@jupyter-widgets/controls",
1480 | "model_module_version": "1.0.0",
1481 | "model_name": "SliderStyleModel",
1482 | "state": {
1483 | "description_width": ""
1484 | }
1485 | },
1486 | "ba471b74a47046ac8a0d5e70b53ea135": {
1487 | "model_module": "@jupyter-widgets/controls",
1488 | "model_module_version": "1.0.0",
1489 | "model_name": "VBoxModel",
1490 | "state": {
1491 | "_dom_classes": [
1492 | "widget-interact"
1493 | ],
1494 | "children": [
1495 | "IPY_MODEL_3b6a413d0ba249d39a82fc29b422abbe",
1496 | "IPY_MODEL_824162cdf7034bb9bebd882f15e0d2b3",
1497 | "IPY_MODEL_a0a295f4eba84b0f8554852594825f06"
1498 | ],
1499 | "layout": "IPY_MODEL_6df38d04b5e54e689cc079c41c76c410"
1500 | }
1501 | },
1502 | "bd346fe09f5f435bbf286c88a1a33b4e": {
1503 | "model_module": "@jupyter-widgets/controls",
1504 | "model_module_version": "1.0.0",
1505 | "model_name": "SliderStyleModel",
1506 | "state": {
1507 | "description_width": ""
1508 | }
1509 | },
1510 | "bfca712373a148da94ec87c65a458c94": {
1511 | "model_module": "@jupyter-widgets/base",
1512 | "model_module_version": "1.0.0",
1513 | "model_name": "LayoutModel",
1514 | "state": {}
1515 | },
1516 | "c3e8188b869a484b889c20a68120d415": {
1517 | "model_module": "@jupyter-widgets/controls",
1518 | "model_module_version": "1.0.0",
1519 | "model_name": "FloatSliderModel",
1520 | "state": {
1521 | "description": "loc",
1522 | "layout": "IPY_MODEL_8a3b9260d0eb4cb1a502066eaacf40b1",
1523 | "max": 0.5,
1524 | "min": -0.5,
1525 | "step": 0.1,
1526 | "style": "IPY_MODEL_06c1ab54ddbe45ee8af8dae6943c8554"
1527 | }
1528 | },
1529 | "c6a0959a80b94c1e9093678de0d0ff5c": {
1530 | "model_module": "@jupyter-widgets/controls",
1531 | "model_module_version": "1.0.0",
1532 | "model_name": "SliderStyleModel",
1533 | "state": {
1534 | "description_width": ""
1535 | }
1536 | },
1537 | "c92083f3a1284275accbdddb33f4e6b7": {
1538 | "model_module": "@jupyter-widgets/controls",
1539 | "model_module_version": "1.0.0",
1540 | "model_name": "FloatSliderModel",
1541 | "state": {
1542 | "description": "zeta",
1543 | "layout": "IPY_MODEL_dc3f940ff96e4f21b418552dfab32c30",
1544 | "max": 3.3000000000000003,
1545 | "min": -1.1,
1546 | "step": 0.1,
1547 | "style": "IPY_MODEL_bd346fe09f5f435bbf286c88a1a33b4e",
1548 | "value": 1.1
1549 | }
1550 | },
1551 | "c9aa92b0940d41c98d8724ac421664a1": {
1552 | "model_module": "@jupyter-widgets/base",
1553 | "model_module_version": "1.0.0",
1554 | "model_name": "LayoutModel",
1555 | "state": {}
1556 | },
1557 | "caba85222a354c5d818562e0d49925c5": {
1558 | "model_module": "@jupyter-widgets/controls",
1559 | "model_module_version": "1.0.0",
1560 | "model_name": "SliderStyleModel",
1561 | "state": {
1562 | "description_width": ""
1563 | }
1564 | },
1565 | "ccc0829de18841eab299e3b12bbe50f8": {
1566 | "model_module": "@jupyter-widgets/controls",
1567 | "model_module_version": "1.0.0",
1568 | "model_name": "FloatSliderModel",
1569 | "state": {
1570 | "description": "zeta",
1571 | "layout": "IPY_MODEL_4ee9c5a933f44ca7a452a37e03ece5f2",
1572 | "max": 3.3000000000000003,
1573 | "min": -1.1,
1574 | "step": 0.1,
1575 | "style": "IPY_MODEL_caba85222a354c5d818562e0d49925c5",
1576 | "value": 1.1
1577 | }
1578 | },
1579 | "cfdb4bfc11624760b5df19a09ac4c0db": {
1580 | "model_module": "@jupyter-widgets/controls",
1581 | "model_module_version": "1.0.0",
1582 | "model_name": "SliderStyleModel",
1583 | "state": {
1584 | "description_width": ""
1585 | }
1586 | },
1587 | "cfe56e5fedad4252a41fda6c624c1c20": {
1588 | "model_module": "@jupyter-widgets/base",
1589 | "model_module_version": "1.0.0",
1590 | "model_name": "LayoutModel",
1591 | "state": {}
1592 | },
1593 | "d76b82a3bfa9404ab895618522ed23b8": {
1594 | "model_module": "@jupyter-widgets/controls",
1595 | "model_module_version": "1.0.0",
1596 | "model_name": "FloatSliderModel",
1597 | "state": {
1598 | "description": "loc",
1599 | "layout": "IPY_MODEL_1a49807950f842be8f500e8b82a3fc4d",
1600 | "max": 0.30000000000000004,
1601 | "min": -0.1,
1602 | "step": 0.1,
1603 | "style": "IPY_MODEL_80ab7b43894f470fad3e8320522c6d4d",
1604 | "value": 0.1
1605 | }
1606 | },
1607 | "d8dc6ad8905f4e3c8119b3c86aff8f49": {
1608 | "model_module": "@jupyter-widgets/controls",
1609 | "model_module_version": "1.0.0",
1610 | "model_name": "SliderStyleModel",
1611 | "state": {
1612 | "description_width": ""
1613 | }
1614 | },
1615 | "db7a4cfe2d0f48d2a84729e5b2040bae": {
1616 | "model_module": "@jupyter-widgets/base",
1617 | "model_module_version": "1.0.0",
1618 | "model_name": "LayoutModel",
1619 | "state": {}
1620 | },
1621 | "dc3f940ff96e4f21b418552dfab32c30": {
1622 | "model_module": "@jupyter-widgets/base",
1623 | "model_module_version": "1.0.0",
1624 | "model_name": "LayoutModel",
1625 | "state": {}
1626 | },
1627 | "ddbf1ce8dc494844938ac8e7455cb4c1": {
1628 | "model_module": "@jupyter-widgets/controls",
1629 | "model_module_version": "1.0.0",
1630 | "model_name": "FloatSliderModel",
1631 | "state": {
1632 | "description": "temp",
1633 | "layout": "IPY_MODEL_e1b00ef0c6e04b2f8ee9370a824c1039",
1634 | "max": 1,
1635 | "min": 0.01,
1636 | "step": 0.1,
1637 | "style": "IPY_MODEL_77f2eadac584460daefde96932b55e21",
1638 | "value": 0.505
1639 | }
1640 | },
1641 | "ddcdec6b97dc4ffaa1ed826ee149d546": {
1642 | "model_module": "@jupyter-widgets/output",
1643 | "model_module_version": "1.0.0",
1644 | "model_name": "OutputModel",
1645 | "state": {
1646 | "layout": "IPY_MODEL_6809a6e0d9ff46acb1a93c6e031b8c2d",
1647 | "outputs": [
1648 | {
1649 | "data": {
1650 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAADWdJREFUeJzt3X+MHPdZx/G360Ug0UDUrmJ8bVCQcFFDBEQYqJp/ggIoRVHcSO0DRgWjGh8VBFQ1IIWC1Ij+E2ihqkSpODdRHARpnwImVgkUFFpFkKbqD1pRGkBRMMGcdc4lViiq+HHh+GP3rMvV552bnd27ffb9kk6e2fvOzPPsj8/Ozs2O962vryNJmn0v2+0CJEndMNAlqQgDXZKKMNAlqQgDXZKKMNAlqQgDXZKKMNAlqQgDXZKK6E15e34tVZLa2TdqwLQDneXl5VbL9ft9VldXO65mb7Pn+WDP82GcnhcWFhqN85CLJBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBUx9W+KStI8ePHE7S+94fTjE9+me+iSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVMTMnIe+csfrL03vP3lmFyuRpL3JPXRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKmLktVwi4lrgQeBbgP8DljLz/RHxCuAjwHXAWSAy8+LkSpUkXUmTPfQ14K7MfC3wOuDnI+J64G7g0cw8BDw6nJck7ZKRgZ6Z5zPz88PprwBPAq8CjgCnhsNOAW+cVJGSpNF2dAw9Iq4DbgQ+DRzIzPMwCH3gms6rkyQ11vh66BHxcuCPgbdn5n9ERNPlFoFFgMyk3++3qZOVTdNt1zFrer3e3PS6wZ7nwzz0vLJlfho9Nwr0iPg6BmH+B5n5J8ObVyLiYGaej4iDwIXLLZuZS8DScHZ9dXV13JrpYh2zoN/vz02vG+x5Psxjz2tra617XlhYaDRu5CGXiNgH3Ac8mZm/velXZ4Bjw+ljwMM7rFGS1KEme+g3AT8J/H1EfGF42zuBe4GMiOPAM8CbJ1OiJKmJkYGemX8D7Nvm17d0W44kqS2/KSpJRRjoklSEgS5JRRjoklSEgS5JRRjoklSEgS5JRRjoklSEgS5JRRjoklSEgS5JRRjoklSEgS5JRRjoklSEgS5JRRjoklSEgS5JRRjoklSEgS5JRRjoklSEgS5JRRjoklSEgS5JRRjoklSEgS5JRRjoklSEgS5JRRjoklSEgS5JRRjoklSEgS5JRRjoklSEgS5JRRjoklSEgS5JRRjoklSEgS5JRfRGDYiI+4HbgAuZecPwtnuAE8Czw2HvzMxHJlWkJGm0kYEOPAD8DvDgltvfl5nv7bwiSVIrIw+5ZOZjwPNTqEWSNIYme+jbuTMifgr4LHBXZl7sqCZJUgttA/2DwLuB9eG/vwW89XIDI2IRWATITPr9fqsNrmyabruOWdPr9eam1w32PB/moeeVLfPT6LlVoGfmpVoj4iTwsSuMXQKWhrPrq6urbTb5El2sYxb0+/256XWDPc+Heex5bW2tdc8LCwuNxrU6bTEiDm6avQP4Upv1SJK60+S0xYeAm4F+RJwD3gXcHBHfw+CQy1ngZydYoySpgZGBnplHL3PzfROoRZI0Br8pKklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklFGOiSVISBLklF9EYNiIj7gduAC5l5w/C2VwAfAa4DzgKRmRcnV6YkaZQme+gPALduue1u4NHMPAQ8OpyXJO2ikYGemY8Bz2+5+Qhwajh9Cnhjx3VJknZo5CGXbRzIzPMAmXk+Iq7ZbmBELAKLw7H0+/1WG1zZNN12HbOm1+vNTa8b7Hk+zEPPK1vmp9Fz20BvLDOXgKXh7Prq6urY6+xiHbOg3+/PTa8b7Hk+zGPPa2trrXteWFhoNK7tWS4rEXEQYPjvhZbrkSR1pG2gnwGODaePAQ93U44kqa0mpy0+BNwM9CPiHPAu4F4gI+I48Azw5kkWKUkabWSgZ+bRbX51S8e1SJLG4DdFJakIA12SijDQJakIA12SijDQJakIA12SijDQJakIA12SijDQJakIA12SijDQJakIA12SijDQJakIA12SijDQJakIA12SijDQJakIA12SijDQJakIA12SijDQJakIA12SijDQ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\n",
1651 | "text/plain": ""
1652 | },
1653 | "metadata": {},
1654 | "output_type": "display_data"
1655 | }
1656 | ]
1657 | }
1658 | },
1659 | "de43c155251248c2bfa2809c5dbf8e59": {
1660 | "model_module": "@jupyter-widgets/base",
1661 | "model_module_version": "1.0.0",
1662 | "model_name": "LayoutModel",
1663 | "state": {}
1664 | },
1665 | "e1b00ef0c6e04b2f8ee9370a824c1039": {
1666 | "model_module": "@jupyter-widgets/base",
1667 | "model_module_version": "1.0.0",
1668 | "model_name": "LayoutModel",
1669 | "state": {}
1670 | },
1671 | "e3427cdeb83c446b97458c74afad4331": {
1672 | "model_module": "@jupyter-widgets/controls",
1673 | "model_module_version": "1.0.0",
1674 | "model_name": "FloatSliderModel",
1675 | "state": {
1676 | "description": "loc",
1677 | "layout": "IPY_MODEL_365f4c2b38a34077a9b953a008981ed8",
1678 | "max": 0.5,
1679 | "min": -0.5,
1680 | "step": 0.1,
1681 | "style": "IPY_MODEL_91f6409662a94e47bf535c7a6253ed7c"
1682 | }
1683 | },
1684 | "e6700421878140d78e37d5bad0edd14d": {
1685 | "model_module": "@jupyter-widgets/base",
1686 | "model_module_version": "1.0.0",
1687 | "model_name": "LayoutModel",
1688 | "state": {}
1689 | },
1690 | "ea381401916d42d59d1931e2cc9ad8c8": {
1691 | "model_module": "@jupyter-widgets/base",
1692 | "model_module_version": "1.0.0",
1693 | "model_name": "LayoutModel",
1694 | "state": {}
1695 | },
1696 | "ebd3a8173b7f497986865d59080c885a": {
1697 | "model_module": "@jupyter-widgets/controls",
1698 | "model_module_version": "1.0.0",
1699 | "model_name": "IntSliderModel",
1700 | "state": {
1701 | "description": "num",
1702 | "layout": "IPY_MODEL_038e8fa28c51401082479eec6137e857",
1703 | "max": 30000,
1704 | "min": -10000,
1705 | "style": "IPY_MODEL_941e53cdd6fc45b783d3fb2acd328f9f",
1706 | "value": 21613
1707 | }
1708 | },
1709 | "ee80b7b9e3864ec3be498ddd46856af8": {
1710 | "model_module": "@jupyter-widgets/controls",
1711 | "model_module_version": "1.0.0",
1712 | "model_name": "SliderStyleModel",
1713 | "state": {
1714 | "description_width": ""
1715 | }
1716 | },
1717 | "efc531739a454ee792a83ccd85329e00": {
1718 | "model_module": "@jupyter-widgets/controls",
1719 | "model_module_version": "1.0.0",
1720 | "model_name": "FloatSliderModel",
1721 | "state": {
1722 | "description": "gamma",
1723 | "layout": "IPY_MODEL_ea381401916d42d59d1931e2cc9ad8c8",
1724 | "max": 0.1,
1725 | "min": -0.30000000000000004,
1726 | "step": 0.1,
1727 | "style": "IPY_MODEL_595d51c6cdc64f649c7b0a245c0b03f5",
1728 | "value": -0.1
1729 | }
1730 | },
1731 | "f2b7f41522204f1da9161978e6251deb": {
1732 | "model_module": "@jupyter-widgets/controls",
1733 | "model_module_version": "1.0.0",
1734 | "model_name": "FloatSliderModel",
1735 | "state": {
1736 | "description": "zeta",
1737 | "layout": "IPY_MODEL_6a2291d00f1348f1bac1d69f37bedd86",
1738 | "max": 3.3000000000000003,
1739 | "min": -1.1,
1740 | "step": 0.1,
1741 | "style": "IPY_MODEL_d8dc6ad8905f4e3c8119b3c86aff8f49",
1742 | "value": 1.1
1743 | }
1744 | },
1745 | "f48f6be0f6b14bfd93c832af8b8184ba": {
1746 | "model_module": "@jupyter-widgets/base",
1747 | "model_module_version": "1.0.0",
1748 | "model_name": "LayoutModel",
1749 | "state": {}
1750 | },
1751 | "f5c27bcb2a574a4294b18208cf026bda": {
1752 | "model_module": "@jupyter-widgets/base",
1753 | "model_module_version": "1.0.0",
1754 | "model_name": "LayoutModel",
1755 | "state": {}
1756 | },
1757 | "f931729afda0402aa0dcd4022875cc0e": {
1758 | "model_module": "@jupyter-widgets/controls",
1759 | "model_module_version": "1.0.0",
1760 | "model_name": "SliderStyleModel",
1761 | "state": {
1762 | "description_width": ""
1763 | }
1764 | },
1765 | "fa098aeb62a14e3b920f1de71e30b383": {
1766 | "model_module": "@jupyter-widgets/base",
1767 | "model_module_version": "1.0.0",
1768 | "model_name": "LayoutModel",
1769 | "state": {}
1770 | },
1771 | "fa8db0a511cf4896ba3577a2876e60d5": {
1772 | "model_module": "@jupyter-widgets/base",
1773 | "model_module_version": "1.0.0",
1774 | "model_name": "LayoutModel",
1775 | "state": {}
1776 | }
1777 | },
1778 | "version_major": 2,
1779 | "version_minor": 0
1780 | }
1781 | }
1782 | },
1783 | "nbformat": 4,
1784 | "nbformat_minor": 1
1785 | }
1786 |
--------------------------------------------------------------------------------
/trainer.py:
--------------------------------------------------------------------------------
1 | import torch
2 | from torch.autograd import Variable
3 |
4 | from tqdm import tqdm
5 |
6 |
7 | class Trainer(object):
8 | _cuda_available = torch.cuda.is_available()
9 |
10 | def __init__(self, model, optimizer, loss_f, logger, scheduler=None, log_freq=5, verb=True, use_cuda=True):
11 | self.model = model
12 | if self._cuda_available:
13 | model.cuda()
14 | self._optimizer = optimizer
15 | self._loss_f = loss_f
16 | self._logger = logger
17 | self._scheduler = scheduler
18 | self._steps = {"train": 0,
19 | "test": 0}
20 | self._epochs = 0
21 | self._log_freq = log_freq
22 | self._verb = verb
23 | self._use_cuda = use_cuda
24 |
25 | def _loop(self, data_loader, is_train=True):
26 | mode = "train" if is_train else "test"
27 | total_size = len(data_loader.dataset)
28 | data_loader = tqdm(data_loader, ncols=80) if self._verb else data_loader
29 | loop_loss = []
30 | loop_correct = []
31 | for input, target in data_loader:
32 | loss, correct = self._iteration(input, target, is_train)
33 | loop_loss.append(loss)
34 | loop_correct.append(correct)
35 | self._steps[mode] += 1
36 | if is_train and self._steps[mode] % self._log_freq == 0:
37 | self._logger.add_scalar("iter_train_loss", loss, self._steps[mode])
38 |
39 | if any(loop_loss):
40 | self._logger.add_scalar(f"epoch_{mode}_loss", sum(loop_loss) / len(data_loader), self._epochs)
41 |
42 | if any(loop_correct):
43 | self._logger.add_scalar(f"{mode}_accuracy", sum(loop_correct) / total_size, self._epochs)
44 |
45 | def _iteration(self, input, target, is_train):
46 | input, target = self.variable(input, volatile=not is_train), self.variable(target, volatile=not is_train)
47 | self._optimizer.zero_grad()
48 | output = self.model(input)
49 | loss = self._loss_f(output, target)
50 | if is_train:
51 | loss.backward()
52 | self._optimizer.step()
53 | loss = loss.data[0]
54 | correct = self.correct(output, target)
55 | return loss, correct
56 |
57 | def train(self, data_loader):
58 | self.model.train()
59 | self._loop(data_loader)
60 | if self._scheduler is not None:
61 | self._scheduler.step()
62 | for name, param in self.model.named_parameters():
63 | self._logger.add_histogram(name, param, self._epochs, bins="sqrt")
64 | self._epochs += 1
65 |
66 | def test(self, data_loader):
67 | self.model.eval()
68 | self._loop(data_loader, is_train=False)
69 |
70 | def start(self, epochs, train_data, test_data):
71 | try:
72 | for ep in range(1, epochs + 1):
73 | print(f"epochs: {ep}")
74 | self.train(train_data)
75 | self.test(test_data)
76 | except KeyboardInterrupt:
77 | print("\ninterrupted")
78 | finally:
79 | self._logger.close()
80 |
81 | @staticmethod
82 | def correct(input, target):
83 | return (input.max(dim=1)[1] == target).sum().data[0]
84 |
85 | def variable(self, t, **kwargs):
86 | if self._cuda_available and self._use_cuda:
87 | t = t.cuda()
88 | return Variable(t, **kwargs)
89 |
--------------------------------------------------------------------------------