├── 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 | ![](images/LeNetwithL0.png) 28 | 29 | * without L0 normalization 30 | 31 | ![](images/LeNetwithoutL0.png) 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": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAADl5JREFUeJzt3XGMpPVdx/H3lSmaCEraCddbisFEaopES3rWpvyDQQ01BErSfvVMWwznbRtF0xSbIJqUSEzQYgmJtfEoBDBK+20tckEUG2wllUIKSFMsagieeN5lj4ULYhrFpesfM3su17ubZ595ZnbnO+9XsuGZmd88z/e7O/uZZ3/85rltq6urSJJm3+s2uwBJUjcMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCJ6Uz6eH0uVpHa2jRow7UDn4MGDrZ7X7/dZXl7uuJqtzZ7ngz3Ph3F6XlhYaDTOKRdJKsJAl6QiRk65RMTZwF3Am4DvAHsz85aIuB7YAzw/HHpdZt4/qUIlSSfXZA59BbgmM5+IiNOBxyPiS8PHbs7MmyZXniSpqZGBnpmHgEPD7Zcj4mngrEkXJknamA2tcomIc4ALgEeBC4GrI+KDwGMMzuKPdF6hJKmRbU3/xaKIOA34O+B3M/OLEbEdWGawtvwGYEdmXnWc5y0CiwCZ+fZXXnmlVaG9Xo+VlZVWz51V9jwf7Hk+jNPzqaeeCg3WoTcK9Ih4PXAf8EBmfvI4j58D3JeZ54/Y1arr0Juz5/lgz/Ohg3XoIwN95LLFiNgG3AY8vT7MI2LHumFXAE9tvExJUleazKFfCHwA+GZEPDm87zpgV0S8jcGUy37gQxOpcGjpincd3T7l1n2TPJQkzaQmq1y+yvFP9V1zLklbiJ8UlaQiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKsJAl6QiDHRJKmJD10OXJDXz6p7LXnvHPQ9P/JieoUtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBVhoEtSEQa6JBXRGzUgIs4G7gLeBHwH2JuZt0TEG4DPAecA+4HIzCOTK1WSdDJNztBXgGsy863AO4FfjYjzgGuBBzPzXODB4W1J0iYZGeiZeSgznxhuvww8DZwFXA7cORx2J/CeSRUpSRptQ3PoEXEOcAHwKLA9Mw/BIPSBMzuvTpLU2Mg59DURcRrw58BHMvM/I6Lp8xaBRYDMpN/vt6mTpXXbbfcxa3q93tz0usae58M89Lx0zO1p9Nwo0CPi9QzC/E8z84vDu5ciYkdmHoqIHcDh4z03M/cCe4c3V5eXl8etmS72MQv6/f7c9LrGnufDPPa8srLSuueFhYVG40ZOuUTENuA24OnM/OS6h/YBVw63rwTu3WCNkqQONTlDvxD4APDNiHhyeN91wI1ARsRu4DngfZMpUZLUxMhAz8yvAttO8PDF3ZYjSWrLT4pKUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhEGuiQVYaBLUhG9UQMi4nbgUuBwZp4/vO96YA/w/HDYdZl5/6SKlCSNNjLQgTuAPwTuOub+mzPzps4rkiS1MnLKJTMfAl6cQi2SpDE0OUM/kasj4oPAY8A1mXmko5okSS20DfRPAzcAq8P//gFw1fEGRsQisAiQmfT7/VYHXFq33XYfs6bX681Nr2vseT7MQ89Lx9yeRs+tAj0zj9YaEbcC951k7F5g7/Dm6vLycptDvkYX+5gF/X5/bnpdY8/zYR57XllZad3zwsJCo3Gtli1GxI51N68AnmqzH0lSd5osW7wbuAjoR8QB4OPARRHxNgZTLvuBD02wRklSAyMDPTN3Hefu2yZQiyRpDH5SVJKKMNAlqQgDXZKKMNAlqQgDXZKKMNAlqQgDXZKKMNAlqQgDXZKKMNAlqQgDXZKKMNAlqQgDXZKKMNAlqQgDXZKKMNAlqQgDXZKKMNAlqQgDXZKKMNAlqQgDXZKKMNAlqQgDXZKKMNAlqQgDXZKKMNAlqQgDXZKKMNAlqQgDXZKKMNAlqQgDXZKKMNAlqQgDXZKK6I0aEBG3A5cChzPz/OF9bwA+B5wD7AciM49MrkxJ0ihNztDvAC455r5rgQcz81zgweFtSdImGhnomfkQ8OIxd18O3DncvhN4T8d1SZI2qO0c+vbMPAQw/O+Z3ZUkSWpj5Bz6uCJiEVgEyEz6/X6r/Syt2267j1nT6/Xmptc19jwf5qHnpWNuT6PntoG+FBE7MvNQROwADp9oYGbuBfYOb64uLy+3POT/62Ifs6Df789Nr2vseT7MY88rKyute15YWGg0ru2Uyz7gyuH2lcC9LfcjSepIk2WLdwMXAf2IOAB8HLgRyIjYDTwHvG+SRUqSRhsZ6Jm56wQPXdxxLZKkMfhJUUkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqwkCXpCIMdEkqojfOkyNiP/Ay8Cqwkpk7uyhKkrRxYwX60E9l5nIH+5EkjcEpF0kqYtxAXwX+JiIej4jFLgqSJLUz7pTLhZl5MCLOBL4UEf+UmQ+tHzAM+kWAzKTf77c60NK67bb7mDW9Xm9uel1jz/NhHnpeOub2NHretrq62smOIuJ64L8y86aTDFs9ePBgq/2/uueyo9un3Lqv1T5mTb/fZ3l5vv73hD3Ph3noeX1mAWy/5+HWPS8sLABsGzWu9ZRLRHxfRJy+tg38LPBU2/1JksYzzpTLduCeiFjbz59l5l93UpUkacNaB3pmPgv8eIe1SJLG4LJFSSrCQJekIgx0SSrCQJekIgx0SSrCQJekIgx0SSrCQJekIgx0SSrCQJekIgx0SSrCQJekIgx0SSrCQJekIgx0SSrCQJekIgx0SSrCQJekIgx0SSrCQJekIgx0SSrCQJekIgx0SSrCQJekIgx0SSrCQJekIgx0SSrCQJekIgx0SSqit9kFSNIse3XPZUe3T7l13yZWMqOB3tU3cP1+xt2XpNl1okw5NiM2sp/NMJOBvt6kvoEb3W9XbwavOe49D3eyT2kr6Oq1vdETuo2G9WaH8jhmPtC7NM4PcppvAE1e0Jv5Z+BmHburX/R5caLXbJPQO9mYjZ7hdhWg0zzWVjVWoEfEJcAtwCnAZzLzxk6qmjPjvBCn/SIe55f1RM9df//SFe/q/Lgn2s+4zx3n+3qinpt8j7qq4UTGfU1NMzSrB/RGbVtdXW31xIg4BfgX4GeAA8DXgV2Z+a2TPG314MGDrY7nD07SLNt+z8MsLy+3eu7CwgLAtlHjxlm2+A7gmcx8NjNfAT4LXD7G/iRJYxgn0M8C/n3d7QPD+yRJm2CcOfTjnf5/1/xNRCwCiwCZufanw8b95WPtnidJW0Tr/GtonDP0A8DZ626/GfiuCfLM3JuZOzNzJ4M3gVZfEfH4OM+fxS97no8ve56Prw56HmmcM/SvA+dGxA8B/wH8AvCLY+xPkjSG1mfombkCXA08ADw9uCv/savCJEkbM9Y69My8H7i/o1pG2Tul42wl9jwf7Hk+TLzn1uvQJUlbi5fPlaQitty1XEZdTiAivge4C3g78ALw85m5f9p1dqlBzx8FfhlYAZ4HrsrMf5t6oR1qetmIiHgv8HngJzJzZteuNuk3IgK4nsHy329k5kwvMmjwuv5B4E7gjOGYa4fTuDMrIm4HLgUOZ+b5x3l8G4Pvyc8B3wZ+KTOf6Or4W+oMfXg5gU8B7wbOA3ZFxHnHDNsNHMnMHwZuBn5vulV2q2HP/wDszMwfA74A/P50q+xWw56JiNOBXwcenW6F3WrSb0ScC/wmcGFm/ijwkakX2qGGP+PfZrCY4gIGq+T+aLpVTsQdwCUnefzdwLnDr0Xg010efEsFOs0uJ3A5g3d1GITbxcN3vVk1sufM/HJmfnt48xEGa/5nWdPLRtzA4M3rv6dZ3AQ06XcP8KnMPAKQmYenXGPXmvS8Cnz/cPsHOM7nWGZNZj4EvHiSIZcDd2XmamY+ApwRETu6Ov5WC/QmlxM4Oma4dPIl4I1TqW4yNnoJhd3AX020oskb2XNEXACcnZn3TbOwCWnyM34L8JaI+PuIeGQ4XTHLmvR8PfD+iDjAYLXcr02ntE010UumbLVAP96Z9rHLcJqMmSWN+4mI9wM7gU9MtKLJO2nPEfE6BtNp10ytoslq8jPuMfgz/CJgF/CZiDhjwnVNUpOedwF3ZOabGcwp/8nwZ1/ZRPNrq33zmlxO4OiYiOgx+FPtZH/ibHWNLqEQET8N/BZwWWb+z5Rqm5RRPZ8OnA98JSL2A+8E9kXEzqlV2K2mr+t7M/N/M/NfgX9mEPCzqknPu4EEyMyvAd8L9KdS3eZp9Pve1lZb5dLkcgL7gCuBrwHvBf42M2f5DH1kz8Pphz8GLikwtwojes7Ml1j3ix0RXwF+Y4ZXuTR5Xf8FwzPWiOgzmIJ5dqpVdqtJz88BFzPo+a0MAv35qVY5ffuAqyPis8BPAi9l5qGudr6lztBPdDmBiPidiFj7Fy5uA94YEc8AHwWu3Zxqu9Gw508ApwGfj4gnI2Km/720hj2X0bDfB4AXIuJbwJeBj2XmC5tT8fga9nwNsCcivgHczWAJ3yyfnBERdzM42fyRiDgQEbsj4sMR8eHhkPsZvFE/A9wK/EqXx/eTopJUxJY6Q5cktWegS1IRBrokFWGgS1IRBrokFWGgS1IRBrokFWGgS1IR/wfAbGl02ROQ+AAAAABJRU5ErkJggg==\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": "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\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": "iVBORw0KGgoAAAANSUhEUgAAAW4AAAD8CAYAAABXe05zAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAADUZJREFUeJzt3W+MrOVZx/Hv4Yz/mlIxnRe6gLFG+geJDXpUAolppC+oEkiT5moxGNtSNo2WtpZqwD9po2/UGpUX1bhQrdim5AJbPalofWGJ0cKJgDSNPTEhFOnh4IHFisZacev6YubQ9XT3zL0z88zMtc/3k2wyM+eeZ69r/vyee+95njmHtre3kSTVcc6yC5Ak7Y/BLUnFGNySVIzBLUnFGNySVIzBLUnFGNySVIzBLUnFGNySVMygo+16OqYk7d+hlkFdBTcnT56c6n7D4ZDNzc05V7Pa7Png61u/YM/7tba21jzWpRJJKsbglqRiDG5JKsbglqRiDG5JKsbglqRiDG5JKsbglqRiDG5JKqazMyclqQ++euM1X7vyic8s5Hc645akYgxuSSrG4JakYgxuSSpm5T6cPPX6y1+4fPj2o0usRJJWkzNuSSrG4JakYgxuSSrG4JakYgxuSSrG4JakYgxuSSrG4JakYgxuSSrG4JakYgxuSSrG4JakYgxuSSrG4JakYgxuSSrG4JakYgxuSSrG4JakYgxuSSrG4JakYgxuSSrG4JakYgYtgyLiZ4G3AdvA54C3ZOZXuixMkrS7iTPuiDgfeCdwJDMvAQ4Db+q6MEnS7lqXSgbAt0TEAHgRcLK7kiRJZzMxuDPzSeA3gSeAp4DnMvOvui5MkrS7iWvcEfFtwLXAy4B/A+6OiOsz8yNnjFsH1gEyk+FwOFVBp3ZcnnYb1QwGg970elrfeu5bv9Cfnndm1qJ6bvlw8rXAFzLzGYCI+DhwOfD/gjszN4CN8dXtzc3NmYubxzYqGA6Hven1tL713Ld+oZ89b21tTd3z2tpa89iW4H4CuCwiXgT8F3Al8OBUlUmSZtayxn0MuAd4mNGhgOfwtZm1JGnBmo7jzsz3Ae/ruBZJUgPPnJSkYgxuSSrG4JakYgxuSSrG4JakYgxuSSrG4JakYgxuSSrG4JakYgxuSSrG4JakYgxuSSrG4JakYgxuSSrG4JakYgxuSSrG4JakYgxuSSrG4JakYgxuSSrG4JakYgxuSSrG4JakYgxuSSrG4JakYgxuSSrG4JakYgxuSSrG4JakYgxuSSrG4JakYgxuSSrG4JakYgxuSSrG4JakYgYtgyLiPOAO4BJgG3hrZt7fZWGSpN21zrhvA/4yM18JvBo43l1JkqSzmTjjjoiXAD8CvBkgM58Hnu+2LEnSXlqWSr4beAb4w4h4NfAQ8K7M/M+dgyJiHVgHyEyGw+FUBZ3acXnabVQzGAx60+tpfeu5b/1Cf3remVmL6rkluAfA9wM3ZeaxiLgNuAX45Z2DMnMD2Bhf3d7c3Jy5uHlso4LhcNibXk/rW8996xf62fPW1tbUPa+trTWPbVnjPgGcyMxj4+v3MApySdISTAzuzPwX4IsR8YrxTVcCn++0KknSnpoOBwRuAj4aEd8IPAa8pbuSJEln0xTcmfkIcKTjWiRJDTxzUpKKMbglqRiDW5KKMbglqRiDW5KKMbglqRiDW5KKMbglqRiDW5KKMbglqRiDW5KKMbglqRiDW5KKMbglqRiDW5KKMbglqRiDW5KKMbglqRiDW5KKMbglqRiDW5KKMbglqRiDW5KKMbglqRiDW5KKMbglqRiDW5KKMbglqRiDW5KKMbglqRiDW5KKMbglqRiDW5KKMbglqRiDW5KKGbQOjIjDwIPAk5l5dXclSZLOZj8z7ncBx7sqRJLUpim4I+IC4MeBO7otR5I0SetSye8APw+cu9eAiFgH1gEyk+FwOFVBp3ZcnnYb1QwGg970elrfeu5bv9Cfnndm1qJ6nhjcEXE18HRmPhQRr9lrXGZuABvjq9ubm5szFzePbVQwHA570+tpfeu5b/1CP3ve2tqauue1tbXmsS1LJVcA10TE48BdwI9GxEemqkySNLOJM+7MvBW4FWA8435vZl7fcV2SpD14HLckFdN8HDdAZt4H3NdJJZKkJs64JakYg1uSijG4JakYg1uSijG4JakYg1uSijG4JakYg1uSijG4JakYg1uSijG4JakYg1uSijG4JakYg1uSijG4JakYg1uSijG4JakYg1uSijG4JakYg1uSijG4JakYg1uSijG4JakYg1uSijG4JakYg1uSijG4JakYg1uSijG4JakYg1uSijG4JakYg1uSijG4JakYg1uSihlMGhARFwJ3At8O/C+wkZm3dV2YJGl3LTPuLeDmzHwVcBnwMxFxcbdlSZL2MjG4M/OpzHx4fPk/gOPA+V0XJkna3b7WuCPiu4BLgWOdVCNJmmjiGvdpEfFi4E+Ad2fmv+/y7+vAOkBmMhwOpyro1I7L026jmsFg0JteT+tbz33rF/rT887MWlTPTcEdEd/AKLQ/mpkf321MZm4AG+Or25ubmzMXN49tVDAcDnvT62l967lv/UI/e97a2pq657W1teaxE5dKIuIQ8CHgeGb+1lQVSZLmpmXGfQXwk8DnIuKR8W2/kJn3dleWJGkvE4M7M/8WOLSAWiRJDTxzUpKKMbglqRiDW5KKMbglqRiDW5KKMbglqRiDW5KKMbglqRiDW5KKMbglqRiDW5KKMbglqRiDW5KKMbglqRiDW5KKMbglqZjm/yxYWhVfvfGaFy4fvv3o3MdLq87glhbMHcnudj4uMNtjc9AfY4O7Z/Z6QZ/5ptltzCJUf8PtVf+p11++EnVUddD6mVWZ4O7iieviT+5pZg0739T77W2amqY1S7h/3X0/8Zl93WfV3qyLrq1lh9vF+2KnfT/PDc+xplMmuHfqYta4zDfifsevWojtNM1OYl47lv3+rmUFYOt95rUjrvLa6cosj+mqPl4rHdxdzxTnpXX7iwyoRZqmr/0uHazyY9dVbYt83c4yuWmpc1V2HrPUsUqvwZUO7hZdPJir9ATtxyxvxKrmunwz5Rjtbq+d86wh7nNyAIL7oJnXn8q+uKd3kB+7vXqbZfllFmfbzkF+HmZlcK+wVXjhrkIN06hS9zzrrNLzqqg8AfLMSUkqxhn3lPr+gaSk5XHGLUnFGNySVIzBLUnFGNySVIzBLUnFGNySVIzBLUnFGNySVEzTCTgRcRVwG3AYuCMzf63TqiRJe5o4446Iw8AHgdcBFwPXRcTFXRcmSdpdy1LJDwGPZuZjmfk8cBdwbbdlSZL20hLc5wNf3HH9xPg2SdIStKxxH9rltu0zb4iIdWAdIDNZW1ubrqI/f3C6+0nSCpg6+/ahZcZ9Arhwx/ULgJNnDsrMjcw8kplHGIX9VD8R8dAs96/4Y88H/6dv/drz1D9NWmbcfw9cFBEvA54E3gT8ROsvkCTN18QZd2ZuAe8APgUcH92U/9h1YZKk3TUdx52Z9wL3dlzLaRsL+j2rxJ4Pvr71C/bcmUPb21/3OaMkaYV5yrskFbO0/3Ny0mn0EfFNwJ3ADwDPAm/MzMcXXee8NPT7HuBtwBbwDPDWzPznhRc6R61flRARbwDuBn4wM0sfD9rSc0QE8H5Gh9V+NjNLf9jf8Nr+TuCPgPPGY24ZL7+WFBF/AFwNPJ2Zl+zy74cYPR4/BnwZeHNmPjzPGpYy4248jf4G4EuZ+T3AbwO/vtgq56ex338AjmTm9wH3AL+x2Crnq/WrEiLiXOCdwLHFVjh/LT1HxEXArcAVmfm9wLsXXugcNT7Pv8TooIZLGR2V9ruLrXLuPgxcdZZ/fx1w0fhnHfi9eRewrKWSltPor2W0l4ZRkF053pNVNLHfzPx0Zn55fPUBRsfLV9b6VQm/ymgn9ZVFFteRlp5vBD6YmV8CyMynF1zjvLX0vA28ZHz5W9nlPJBKMvNvgH89y5BrgTszczszHwDOi4jvmGcNywrultPoXxgzPiTxOeClC6lu/vb7tQE3AH/RaUXdm9hzRFwKXJiZn1xkYR1qeZ5fDrw8Iv4uIh4YLzNU1tLz+4HrI+IEo6PTblpMaUvT+deELCu4d5s5n3l4S8uYKpp7iYjrgSPABzqtqHtn7TkizmG0BHbzwirqXsvzPGD0J/RrgOuAOyLivI7r6lJLz9cBH87MCxit+/7x+Pk/qDrPrmU9eC2n0b8wJiIGjP7EOtufJ6us6WsDIuK1wC8C12Tmfy+otq5M6vlc4BLgvoh4HLgMOBoRRxZW4fy1vq7/LDP/JzO/APwToyCvqqXnG4AEyMz7gW8Ghgupbjma3u+zWNZRJS2n0R8Ffgq4H3gD8NeZWXXGPbHf8bLB7wNXHYB1T5jQc2Y+x443b0TcB7y3+FElLa/rP2U8A42IIaOlk8cWWuV8tfT8BHAlo55fxSi4n1lolYt1FHhHRNwF/DDwXGY+Nc9fsJQZ916n0UfEr0TENeNhHwJeGhGPAu8BbllGrfPQ2O8HgBcDd0fEIxFxdEnlzkVjzwdKY8+fAp6NiM8DnwZ+LjOfXU7Fs2vs+Wbgxoj4LPAxRofHVZ2EEREfYzShfEVEnIiIGyLi7RHx9vGQexntjB8Fbgd+et41eOakJBVzkD8gkKQDyeCWpGIMbkkqxuCWpGIMbkkqxuCWpGIMbkkqxuCWpGL+D4bXAZsGwlWSAAAAAElFTkSuQmCC\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 | --------------------------------------------------------------------------------