diff --git a/WavPool/__init__.py b/WavPool/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/WavPool/data_generators/__init__.py b/WavPool/data_generators/__init__.py
new file mode 100644
index 0000000..d56707c
--- /dev/null
+++ b/WavPool/data_generators/__init__.py
@@ -0,0 +1,3 @@
+from WavPool.data_generators.cifar_generator import CIFARGenerator
+from WavPool.data_generators.mnist_generator import MNISTGenerator
+from WavPool.data_generators.fashion_mnist_generator import FashionMNISTGenerator
diff --git a/WavPool/data_generators/cifar_generator.py b/WavPool/data_generators/cifar_generator.py
new file mode 100644
index 0000000..19c993b
--- /dev/null
+++ b/WavPool/data_generators/cifar_generator.py
@@ -0,0 +1,18 @@
+from WavPool.data_generators.data_generator import DataGenerator
+from torchvision import transforms
+from torchvision.datasets import CIFAR10
+
+
+class CIFARGenerator(DataGenerator):
+ def __init__(self):
+ grayscale_transforms = transforms.Compose(
+ [transforms.Grayscale(num_output_channels=1), transforms.ToTensor()]
+ )
+
+ dataset = CIFAR10(
+ root="wavNN/data/cifar10",
+ download=True,
+ train=True,
+ transform=grayscale_transforms,
+ )
+ super().__init__(dataset=dataset)
diff --git a/WavPool/data_generators/data_generator.py b/WavPool/data_generators/data_generator.py
new file mode 100644
index 0000000..b5c2a7b
--- /dev/null
+++ b/WavPool/data_generators/data_generator.py
@@ -0,0 +1,59 @@
+from torch.utils.data import DataLoader, Subset
+import numpy as np
+
+
+class DataGenerator:
+ def __init__(self, dataset):
+ self.dataset = dataset
+
+ def __call__(self, *args, **kwargs):
+ sample_size = kwargs["sample_size"]
+ split = False if not "split" in kwargs else kwargs["split"]
+ if type(sample_size) == list:
+ split = True
+
+ batch_size = 64 if "batch_size" not in kwargs else kwargs["batch_size"]
+ shuffle = False if "shuffle" not in kwargs else kwargs["shuffle"]
+
+ if split:
+ if type(sample_size) == int:
+ sample_size = [sample_size for _ in range(3)]
+
+ assert sum(sample_size) <= len(self.dataset), (
+ f""
+ f"Too many requested samples, "
+ f"decreases your sample size to less "
+ f"than {len(self.dataset)}"
+ )
+
+ assert len(sample_size) == 3, (
+ "The sample size of validation "
+ "and test must be individually specified"
+ )
+
+ # this is quick and dirty. Ideally I'd be shuffling when i load in.
+ # But I'm chronically lazy and this is what I'm doing
+ # I can change it later.
+
+ samples = np.cumsum(sample_size)
+ training_data = Subset(self.dataset, list(range(0, samples[0])))
+ val_data = Subset(self.dataset, list(range(samples[0], samples[1])))
+ test_data = Subset(self.dataset, list(range(samples[1], samples[2])))
+
+ training = DataLoader(training_data, batch_size=batch_size, shuffle=shuffle)
+ validation = DataLoader(val_data, batch_size=batch_size, shuffle=shuffle)
+ test = DataLoader(test_data, batch_size=batch_size, shuffle=shuffle)
+
+ else:
+ assert sample_size <= len(self.dataset), (
+ f"Too many requested samples, decreases your"
+ f" sample size to less than {len(self.dataset)}"
+ )
+
+ training_data = Subset(self.dataset, list(range(0, sample_size)))
+
+ training = DataLoader(training_data, batch_size=batch_size, shuffle=shuffle)
+ validation = None
+ test = None
+
+ return {"training": training, "validation": validation, "test": test}
diff --git a/WavPool/data_generators/fashion_mnist_generator.py b/WavPool/data_generators/fashion_mnist_generator.py
new file mode 100644
index 0000000..e2543e1
--- /dev/null
+++ b/WavPool/data_generators/fashion_mnist_generator.py
@@ -0,0 +1,14 @@
+from WavPool.data_generators.data_generator import DataGenerator
+from torchvision.transforms import ToTensor
+from torchvision.datasets import FashionMNIST
+
+
+class FashionMNISTGenerator(DataGenerator):
+ def __init__(self):
+ dataset = FashionMNIST(
+ root="wavNN/data/fashionmnist",
+ download=True,
+ train=True,
+ transform=ToTensor(),
+ )
+ super().__init__(dataset=dataset)
diff --git a/WavPool/data_generators/mnist_generator.py b/WavPool/data_generators/mnist_generator.py
new file mode 100644
index 0000000..54b4929
--- /dev/null
+++ b/WavPool/data_generators/mnist_generator.py
@@ -0,0 +1,11 @@
+from WavPool.data_generators.data_generator import DataGenerator
+from torchvision.transforms import ToTensor
+from torchvision.datasets import MNIST
+
+
+class MNISTGenerator(DataGenerator):
+ def __init__(self):
+ dataset = MNIST(
+ root="wavNN/data/mnist", download=True, train=True, transform=ToTensor()
+ )
+ super().__init__(dataset=dataset)
diff --git a/WavPool/models/__init__.py b/WavPool/models/__init__.py
new file mode 100644
index 0000000..ee39183
--- /dev/null
+++ b/WavPool/models/__init__.py
@@ -0,0 +1,4 @@
+from WavPool.models.wavMLP import WavMLP
+from WavPool.models.wavpool import WavPool
+from WavPool.models.vanillaMLP import VanillaMLP
+from WavPool.models.vanillaCNN import VanillaCNN
diff --git a/WavPool/models/vanillaCNN.py b/WavPool/models/vanillaCNN.py
new file mode 100644
index 0000000..f7b2fb9
--- /dev/null
+++ b/WavPool/models/vanillaCNN.py
@@ -0,0 +1,52 @@
+import torch.nn as nn
+import math
+
+
+class VanillaCNN(nn.Module):
+ def __init__(
+ self,
+ in_channels: int,
+ kernel_size: int,
+ out_channels: int,
+ hidden_channels_1: int = 1,
+ hidden_channels_2: int = 1,
+ ) -> None:
+ super().__init__()
+
+ self.conv1 = nn.Conv2d(
+ in_channels=1,
+ out_channels=int(hidden_channels_1),
+ kernel_size=int(kernel_size),
+ padding=1,
+ stride=1,
+ bias=False,
+ )
+ self.batch_norm_hidden = nn.BatchNorm2d(int(hidden_channels_1))
+ conv1_out = math.ceil(in_channels + 2 - int(kernel_size) + 1)
+
+ self.conv2 = nn.Conv2d(
+ in_channels=int(hidden_channels_1),
+ out_channels=int(hidden_channels_2),
+ kernel_size=int(kernel_size),
+ padding=1,
+ stride=1,
+ bias=False,
+ )
+ self.batch_norm_out = nn.BatchNorm2d(int(hidden_channels_2))
+ conv2_out = math.ceil(conv1_out + 2 - int(kernel_size) + 1)
+
+ self.dense_out = nn.Linear(
+ in_features=(conv2_out**2) * int(hidden_channels_2),
+ out_features=out_channels,
+ )
+
+ def forward(self, x):
+ x = self.conv1(x)
+ x = self.batch_norm_hidden(x)
+ x = nn.ReLU()(x)
+ x = self.conv2(x)
+ x = self.batch_norm_out(x)
+ x = nn.ReLU()(x)
+ x = nn.Flatten()(x)
+ x = self.dense_out(x)
+ return x
diff --git a/WavPool/models/vanillaMLP.py b/WavPool/models/vanillaMLP.py
new file mode 100644
index 0000000..23570c9
--- /dev/null
+++ b/WavPool/models/vanillaMLP.py
@@ -0,0 +1,63 @@
+import torch
+import torch.nn as nn
+
+
+class VanillaMLP(nn.Module):
+ def __init__(
+ self, in_channels: int, hidden_size: int, out_channels: int, tail: bool = False
+ ):
+ super().__init__()
+
+ self.flatten_input = nn.Flatten()
+ self.hidden_layer = nn.Linear(int(in_channels) ** 2, int(hidden_size))
+ self.output_layer = nn.Linear(int(hidden_size), out_channels)
+
+ if tail:
+ self.tail = nn.Softmax(dim=0)
+
+ def forward(self, x):
+ x = self.flatten_input(x)
+ x = self.hidden_layer(x)
+ x = self.output_layer(x)
+
+ if hasattr(self, "tail"):
+ x = self.tail(x)
+
+ return x
+
+
+class BananaSplitMLP(nn.Module):
+ def __init__(self, in_channels, hidden_size, out_channels, tail=False):
+ super().__init__()
+
+ self.flatten_input = nn.Flatten()
+
+ self.hidden_layer_1 = nn.Linear(in_channels**2, hidden_size)
+ self.hidden_layer_2 = nn.Linear(in_channels**2, hidden_size)
+ self.hidden_layer_3 = nn.Linear(in_channels**2, hidden_size)
+
+ self.flatten = nn.Flatten(start_dim=1, end_dim=-1)
+
+ # Output of those tied 3 channel layers, and the flattened concat of those
+ self.output = nn.Linear(hidden_size * 3, out_channels)
+
+ if tail:
+ self.tail = nn.Softmax(dim=0)
+
+ def forward(self, x):
+ x = self.flatten_input(x)
+
+ channel_1 = self.hidden_layer_1(x)
+ channel_2 = self.hidden_layer_2(x)
+ channel_3 = self.hidden_layer_3(x)
+
+ concat = torch.stack([channel_1, channel_2, channel_3], dim=1)
+ # Flatten for the output dense
+
+ x = self.flatten(concat)
+ x = self.output(x)
+
+ if hasattr(self, "tail"):
+ x = self.tail(x)
+
+ return x
diff --git a/WavPool/models/wavMLP.py b/WavPool/models/wavMLP.py
new file mode 100644
index 0000000..f6d32c6
--- /dev/null
+++ b/WavPool/models/wavMLP.py
@@ -0,0 +1,54 @@
+import torch
+import torch.nn as nn
+
+from WavPool.utils.levels import Levels
+from WavPool.models.wavelet_layer import MicroWav
+
+
+class WavMLP(nn.Module):
+ def __init__(
+ self,
+ in_channels: int,
+ hidden_size: int,
+ out_channels: int,
+ level: int,
+ tail=False,
+ ):
+ """
+ Simplest version is an MLP that takes a single layer of the wavelet
+ And stacks the input channel-wise
+
+ in_channels: Input size, int; should be the x, y of the input image
+ out_channels: Out size of the mlp layer
+ level: Level of the wavelet used in the MLP
+ tail: Bool, If to add an activation at the end of the network to get a class output
+ """
+ super().__init__()
+ assert level != 0, "Level 0 wavelet not supported"
+
+ # Wavelet transform of input x at a level as defined by the user
+ self.wav = MicroWav(
+ level=int(level), in_channels=in_channels, hidden_size=int(hidden_size)
+ )
+ # Flatten for when these are stacked
+ self.flatten = nn.Flatten(start_dim=1, end_dim=-1)
+
+ # Output of those tied 3 channel layers, and the flattened concat of those
+ self.output = nn.Linear(int(hidden_size) * 3, out_channels)
+
+ # Activation for a classifier
+ if tail:
+ self.tail = nn.Softmax(dim=0)
+
+ def forward(self, x):
+ # forward pass through the network
+
+ x = self.wav(x)
+ # Flatten for the output dense
+ x = self.flatten(x)
+ x = self.output(x)
+
+ if hasattr(self, "tail"):
+ x = self.tail(x)
+
+ return x
diff --git a/WavPool/models/wavelet_layer.py b/WavPool/models/wavelet_layer.py
new file mode 100644
index 0000000..b29db47
--- /dev/null
+++ b/WavPool/models/wavelet_layer.py
@@ -0,0 +1,55 @@
+from typing import Union
+import numpy as np
+import torch
+import pywt
+from kymatio.torch import Scattering2D
+from WavPool.utils.levels import Levels
+
+
+class WaveletLayer:
+ def __init__(
+ self, level: int, input_size: Union[int, None] = None, backend: str = "pywt"
+ ) -> None:
+
+ layers = {
+ "pywt": lambda x: torch.Tensor(np.array(pywt.wavedec2(x, "db1")[level])),
+ "kymatio": lambda x: self.kymatio_layer(level=level, input_size=input_size)(
+ x
+ )[level],
+ }
+
+ assert backend in layers.keys()
+ self.layer = layers[backend]
+
+ def kymatio_layer(self, level, input_size):
+ # Ref: This code
+ # https://www.kymat.io/gallery_2d/plot_invert_scattering_torch.html#sphx-glr-gallery-2d-plot-invert-scattering-torch-py
+
+ scattering = Scattering2D(J=2, shape=(input_size, input_size), max_order=level)
+ return scattering
+
+ def __call__(self, x):
+ return self.layer(x)
+
+
+class MicroWav(torch.nn.Module):
+ def __init__(self, level: int, in_channels: int, hidden_size: int) -> None:
+ super().__init__()
+ self.wavelet = WaveletLayer(level=level)
+ wav_in_channels = Levels.find_output_size(level, in_channels)
+ hidden_size = int(hidden_size)
+ self.flatten_wavelet = torch.nn.Flatten(start_dim=1, end_dim=-1)
+ # Channels for each of the 3 channels of the wavelet (Not including the downscaled original
+ self.channel_1_mlp = torch.nn.Linear(wav_in_channels**2, hidden_size)
+ self.channel_2_mlp = torch.nn.Linear(wav_in_channels**2, hidden_size)
+ self.channel_3_mlp = torch.nn.Linear(wav_in_channels**2, hidden_size)
+
+ def forward(self, x):
+ x = self.wavelet(x)
+ # An MLP for each of the transformed levels
+ channel_1 = self.channel_1_mlp(self.flatten_wavelet(x[0]))
+ channel_2 = self.channel_2_mlp(self.flatten_wavelet(x[1]))
+ channel_3 = self.channel_3_mlp(self.flatten_wavelet(x[2]))
+ # stack the outputs
+ concat = torch.stack([channel_1, channel_2, channel_3], dim=-1)
+ return concat
diff --git a/WavPool/models/wavpool.py b/WavPool/models/wavpool.py
new file mode 100644
index 0000000..969cd60
--- /dev/null
+++ b/WavPool/models/wavpool.py
@@ -0,0 +1,88 @@
+"""
+Modifcaiton of the voting mlp that instead of using a normal voting algorithm
+Pools the results after reshaping the results from each hidden layer
+
+> need to make a good diagram for this.
+"""
+
+import torch
+import math
+import numpy as np
+
+from WavPool.utils.levels import Levels
+from WavPool.models.wavelet_layer import MicroWav
+
+
+class WavPool(torch.nn.Module):
+ def __init__(
+ self,
+ in_channels: int,
+ hidden_size: int,
+ out_channels: int,
+ pooling_size: int = None, # type: ignore
+ pooling_mode: str = "average",
+ hidden_pooling: int = None, # type: ignore
+ level_pooling: int = None, # type: ignore
+ hidden_layer_scaling: bool = False,
+ ) -> None:
+ super().__init__()
+
+ possible_levels = Levels.calc_possible_levels(in_channels)
+ possible_levels = [level for level in possible_levels if level != 0]
+
+ self.n_levels = len(possible_levels)
+
+ hidden_sizes = (
+ hidden_size
+ if type(hidden_size) == list
+ else {
+ True: [int(hidden_size / (i + 1)) for i in range(self.n_levels)],
+ False: [int(hidden_size) for _ in range(self.n_levels)],
+ }[hidden_layer_scaling]
+ )
+ if hidden_layer_scaling:
+ hidden_sizes.reverse()
+
+ self.max_hidden = max(hidden_sizes)
+ self.models = torch.nn.ModuleList()
+ for level, hidden_size in zip(possible_levels, hidden_sizes):
+ self.models.append(
+ MicroWav(
+ level=int(level),
+ in_channels=in_channels,
+ hidden_size=int(hidden_size),
+ )
+ )
+
+ if hidden_pooling is not None:
+ assert level_pooling is not None
+ pooling_kernel = (int(hidden_pooling), 1, int(level_pooling))
+ else:
+ pooling = int(pooling_size)
+ pooling_kernel = (pooling, pooling, pooling)
+
+ self.pool = torch.nn.ModuleDict(
+ {
+ "average": torch.nn.AvgPool3d(kernel_size=pooling_kernel),
+ "max": torch.nn.MaxPool3d(kernel_size=pooling_kernel),
+ }
+ )[pooling_mode]
+
+ pool_out_shape = int(
+ math.prod(self.pool(torch.rand(1, self.max_hidden, 3, self.n_levels)).shape)
+ )
+
+ self.output = torch.nn.Linear(pool_out_shape, out_features=out_channels)
+
+ def forward(self, x):
+ level_outputs = [model.forward(x) for model in self.models]
+ x = [
+ torch.nn.functional.pad(
+ x, pad=(0, 0, self.max_hidden - x.shape[1], 0), mode="constant", value=0
+ )
+ for x in level_outputs
+ ]
+ x = torch.stack(x, dim=-1)
+ x = self.pool(x)
+ x = torch.flatten(x, start_dim=1, end_dim=-1)
+ return self.output(x)
diff --git a/WavPool/training/finetune_network.py b/WavPool/training/finetune_network.py
new file mode 100644
index 0000000..90dec1c
--- /dev/null
+++ b/WavPool/training/finetune_network.py
@@ -0,0 +1,209 @@
+"""
+Generate parameters for a network using a guassian processor optimizer
+(Using https://github.com/fmfn/BayesianOptimization)
+Lightweight wrapper on the train_model
+
+"""
+import json
+from typing import Union
+from bayes_opt import BayesianOptimization
+import os
+import numpy as np
+import math
+import pandas as pd
+
+from WavPool.training.train_model import TrainingLoop
+import WavPool
+
+
+class Optimize:
+ def __init__(
+ self,
+ model,
+ parameter_space,
+ parameter_selection_function,
+ data_class,
+ data_params,
+ monitor_metric="val_accuracy",
+ epochs=80,
+ n_optimizizer_iters=40,
+ save=False,
+ save_path="",
+ ):
+ self.model = model
+ self.parameter_space = parameter_space
+ self.parameter_selection = parameter_selection_function
+ self.monitor_metric = monitor_metric
+ self.data_class = data_class
+ self.data_params = data_params
+ self.epochs = epochs
+ self.opt_iters = n_optimizizer_iters
+ self.save = save
+
+ if self.save:
+ if not os.path.exists(save_path):
+ os.makedirs(save_path)
+ self.save_path = save_path
+
+ def training_loop(self, **model_parameters):
+
+ (
+ model_params,
+ optimizer,
+ optimizer_params,
+ loss_function,
+ ) = self.parameter_selection(**model_parameters)
+
+ training = TrainingLoop(
+ model_class=self.model,
+ model_params=model_params,
+ data_class=self.data_class,
+ data_params=self.data_params,
+ loss=loss_function,
+ epochs=self.epochs,
+ optimizer_class=optimizer,
+ optimizer_config=optimizer_params,
+ )
+
+ training()
+ history = training.history
+ quality = np.max(np.asarray(history[self.monitor_metric]))
+ return quality
+
+ def run_optimization(self):
+ optimizer = BayesianOptimization(
+ f=self.training_loop,
+ pbounds=self.parameter_space,
+ verbose=1,
+ random_state=1,
+ )
+
+ optimizer.maximize(init_points=5, n_iter=self.opt_iters)
+
+ history = optimizer.res
+ return history
+
+ def __call__(self):
+ optimizer_results = self.run_optimization()
+ if self.save:
+ with open(self.save_path, "w") as f:
+ json.dump(optimizer_results, fp=f, default=str)
+ results = pd.DataFrame(optimizer_results)
+ return results.iloc[results["target"].idxmax()]["params"] # type: ignore
+
+
+# TODO Cleo to build params from scratch
+class OptimizeFromConfig(Optimize):
+ def __init__(self, config: Union[dict, str]):
+
+ if type(config) == str:
+ assert os.path.exists(config)
+ with open(config, "rb") as f:
+ config = json.load(f)
+
+ self.config = config
+ optimizer_kwargs = self.read_config(config)
+
+ super().__init__(**optimizer_kwargs)
+
+ def add_config_params(self, config_file):
+ default_config = {
+ "data_config": {},
+ "monitor": "val_accuracy",
+ "epochs": 20,
+ "n_optimizer_iters": 40,
+ "save": False,
+ "save_path": "",
+ "parameters_space": {},
+ "parameter_function": {},
+ }
+ for field in default_config:
+ if field not in config_file.keys():
+ config_file[field] = default_config[field]
+
+ def read_config(self, config_file):
+
+ model = config_file["model"]
+ data_class = config_file["data_class"]
+ data_params = config_file["data_config"]
+ monitor_metric = config_file["monitor"]
+ epochs = int(config_file["epochs"])
+ n_optimizer_iters = int(config_file["n_optimizer_iters"])
+ save = bool(config_file["save"])
+ save_path = config_file["save_path"]
+
+ parameter_space = self.build_parameter_space(config_file)
+ parameter_function = self.build_selection_function(config_file)
+
+ optimizer_config = {
+ "model": model,
+ "parameter_space": parameter_space,
+ "parameter_selection_function": parameter_function,
+ "data_class": data_class,
+ "data_params": data_params,
+ "monitor_metric": monitor_metric,
+ "epochs": epochs,
+ "n_optimizizer_iters": n_optimizer_iters,
+ "save": save,
+ "save_path": save_path,
+ }
+
+ return optimizer_config
+
+ def build_parameter_space(self, config_file):
+ parameter_space = {}
+
+ for cateogry in ["model_config", "optimizer"]:
+ for field in config_file[cateogry]:
+ optimizer_param = config_file[cateogry][field]
+ continious = type(optimizer_param) == tuple
+ if type(optimizer_param) == int:
+ optimizer_param = [optimizer_param]
+
+ parameter_space[f"{cateogry}_{field}"] = (
+ optimizer_param if continious else (0, len(optimizer_param) - 1)
+ )
+
+ parameter_space["loss_id"] = (0, len(config_file["loss"]) - 1)
+
+ return parameter_space
+
+ def build_selection_function(self, config_file):
+ def selection_function(**param_dict):
+ model_params = {}
+ optimizer_params = {}
+
+ for category, parameters in zip(
+ ["model_config", "optimizer"], [model_params, optimizer_params]
+ ):
+ for parameter in config_file[category]:
+ continious = type(config_file[category][parameter]) == tuple
+
+ if type(config_file[category][parameter]) == int:
+ config_file[category][parameter] = [
+ config_file[category][parameter]
+ ]
+
+ parameter_name = f"{category}_{parameter}"
+ parameters[parameter] = (
+ param_dict[parameter_name]
+ if continious
+ else config_file[category][parameter][
+ math.floor(param_dict[parameter_name])
+ ]
+ )
+
+ optimizer_id = math.floor(param_dict["optimizer_id"])
+ optimizer = config_file["optimizer"]["id"][optimizer_id]
+ optimizer_params.pop("id")
+ loss_id = math.floor(param_dict["loss_id"])
+ loss_function = config_file["loss"][loss_id]
+
+ # for param in config_file["training_configs"]:
+ # model_params[param] = config_file[
+ # "training_configs"
+ # ] # Untouched params
+
+ return model_params, optimizer, optimizer_params, loss_function
+
+ return selection_function
diff --git a/WavPool/training/plot_results.py b/WavPool/training/plot_results.py
new file mode 100644
index 0000000..fdd83b4
--- /dev/null
+++ b/WavPool/training/plot_results.py
@@ -0,0 +1,199 @@
+import matplotlib.pyplot as plt
+import pandas as pd
+import numpy as np
+
+from WavPool.training.training_metrics import TrainingMetrics
+
+
+def plot_test_results(predictions, labels, save_path=None):
+ roc_curve = TrainingMetrics.auc_curve(predictions, labels)
+ confusion = TrainingMetrics.confusion_matrix(predictions, labels)
+
+ plt.plot(roc_curve[0], roc_curve[1])
+ plt.xlabel("FPR")
+ plt.ylabel("TPR")
+ plt.title("ROC AUC Curve")
+ plt.show()
+ if save_path is not None:
+ plt.savefig(f"{save_path}/roc.png")
+ plt.close("all")
+
+ plt.imshow(confusion)
+ plt.xlabel("Predicted")
+ plt.ylabel("True")
+ plt.title("Confusion Matrix")
+ if save_path is not None:
+ plt.savefig(f"{save_path}/confusion.png")
+ else:
+ plt.show()
+ plt.close("all")
+
+
+def plot_history(history, extra_metric_names, save_path=None):
+ history = pd.DataFrame(history)
+ epochs = range(len(history))
+ n_subplots = len(extra_metric_names) + 1
+ fig, subplots = plt.subplots(nrows=n_subplots, ncols=1)
+
+ for metric_index, metrics in enumerate(extra_metric_names):
+ training = history[f"train_{metrics.__name__}"]
+ val = history[f"val_{metrics.__name__}"]
+
+ subplots[metric_index].plot(epochs, training, label="Train")
+ subplots[metric_index].plot(epochs, val, label="Validation")
+ subplots[metric_index].set_xticks([])
+ subplots[metric_index].set_ylabel(metrics.__name__)
+ subplots[metric_index].legend()
+
+ metric_index = -1
+ subplots[metric_index].plot(epochs, history["train_loss"], label="Train")
+ subplots[metric_index].plot(epochs, history["val_loss"], label="Validation")
+ subplots[metric_index].set_xticks(epochs)
+ subplots[metric_index].set_ylabel("Loss")
+ subplots[metric_index].legend()
+
+ plt.xlabel("epoch")
+
+ if save_path is not None:
+ fig.savefig(f"{save_path}/history.png")
+ else:
+ plt.show()
+ plt.close("all")
+
+
+def plot_history_errorbar(
+ subplots: list,
+ histories: list,
+ extra_metrics: list,
+ labels: list,
+ colorway: list,
+ save_path=None,
+ title="",
+ show=False,
+ clear=False,
+):
+ for label, color in zip(labels, colorway):
+
+ for metric_index, metrics in enumerate(extra_metrics):
+
+ training = [history[f"train_{metrics.__name__}"] for history in histories]
+ val = [history[f"val_{metrics.__name__}"] for history in histories]
+
+ mean_training = pd.DataFrame(training).mean(axis=0)
+ std_training = pd.DataFrame(training).std(axis=0)
+
+ epochs = range(len(mean_training))
+
+ mean_val = pd.DataFrame(val).mean(axis=0)
+
+ subplots[metric_index].grid(
+ color="grey", linestyle="--", linewidth=0.5, alpha=0.6
+ )
+
+ subplots[metric_index].plot(epochs, mean_training, label=label, color=color)
+ subplots[metric_index].fill_between(
+ epochs,
+ mean_training - std_training,
+ mean_training + std_training,
+ alpha=0.3,
+ color=color,
+ )
+ subplots[metric_index].plot(
+ epochs, mean_val, linestyle="dotted", color=color
+ )
+ subplots[metric_index].set_ylabel(metrics.__name__)
+
+ training = [history[f"train_loss"] for history in histories]
+ val = [history[f"val_loss"] for history in histories]
+
+ mean_training = pd.DataFrame(training).mean(axis=0)
+ std_training = pd.DataFrame(training).std(axis=0)
+ mean_val = pd.DataFrame(val).mean(axis=0)
+
+ epochs = range(len(mean_training))
+
+ metric_index = -1
+
+ subplots[metric_index].plot(epochs, mean_training, label=label, color=color)
+ subplots[metric_index].fill_between(
+ epochs,
+ mean_training - std_training,
+ mean_training + std_training,
+ alpha=0.3,
+ color=color,
+ )
+ subplots[metric_index].plot(
+ epochs, mean_val, linestyle="dotted", color=color
+ )
+ subplots[metric_index].set_ylabel("Loss")
+ subplots[metric_index].grid(
+ color="grey", linestyle="--", linewidth=0.5, alpha=0.6
+ )
+
+ subplots[0].set_title(title.strip("_"))
+
+ if show:
+ plt.legend()
+ plt.show()
+
+ if clear:
+ plt.close("all")
+
+ if save_path is not None:
+ plt.savefig(f"{save_path}/{title}_history_errorbar.png")
+
+
+def plot_model_parameter_comparison(
+ num_params,
+ inference_time,
+ training_time,
+ labels,
+ colors,
+ save_path=None,
+ title="",
+ show=False,
+ clear=False,
+):
+
+ _, subplots = plt.subplots(nrows=3, ncols=1, figsize=(6, 10))
+
+ bar_x = [i + 1 for i in range(len(num_params))]
+
+ subplots[0].barh(y=bar_x, width=num_params, color=colors)
+ subplots[0].set_xlabel("Number Parameters")
+ subplots[0].grid(color="grey", linestyle="--", linewidth=0.5, alpha=0.6)
+
+ for model, color, inference, training in zip(
+ labels, colors, inference_time, training_time
+ ):
+ w = 0.00005
+ subplots[1].hist(
+ inference,
+ bins=np.arange(min(inference), max(inference) + w, w),
+ label=model,
+ color=color,
+ )
+ subplots[1].set_xlabel("Mean Single Inference Time (s)")
+ subplots[1].grid(color="grey", linestyle="--", linewidth=0.5, alpha=0.6)
+
+ w = 3.0
+ subplots[2].hist(
+ training,
+ bins=np.arange(min(training), max(training) + w, w),
+ label=model,
+ color=color,
+ )
+
+ subplots[2].set_xlabel("Mean Full Training Time (s)")
+ subplots[2].grid(color="grey", linestyle="--", linewidth=0.5, alpha=0.6)
+
+ subplots[0].set_title(title.strip("_"))
+ if show:
+ plt.legend()
+ plt.show()
+
+ if clear:
+ plt.close("all")
+
+ if save_path is not None:
+ plt.savefig(f"{save_path}/{title}_history_errorbar.png")
diff --git a/WavPool/training/train_model.py b/WavPool/training/train_model.py
new file mode 100644
index 0000000..429cdbb
--- /dev/null
+++ b/WavPool/training/train_model.py
@@ -0,0 +1,161 @@
+"""
+Basic training loop for the selected model
+"""
+
+import pandas as pd
+import os
+import torch
+import tqdm
+
+from WavPool.training.training_metrics import TrainingMetrics
+
+
+class TrainingLoop:
+ def __init__(
+ self,
+ model_class,
+ model_params,
+ data_class,
+ data_params,
+ optimizer_class,
+ optimizer_config,
+ loss,
+ **training_configs,
+ ):
+ self.model = model_class(**model_params)
+ self.data_loader = data_class()(**data_params)
+
+ # Todo lr and momentum params
+ self.loss = loss()
+
+ self.epochs = (
+ 300 if "epochs" not in training_configs else training_configs["epochs"]
+ )
+ self.early_stopping_tolerence = (
+ 5
+ if "early_stopping_tolerence" not in training_configs
+ else training_configs["early_stopping_tolerence"]
+ )
+
+ self.extra_metrics = (
+ [TrainingMetrics.f1, TrainingMetrics.accuracy]
+ if "extra_metrics" not in training_configs
+ else training_configs["extra_metrics"]
+ )
+
+ self.optimizer = optimizer_class(self.model.parameters(), **optimizer_config)
+
+ self.history = {
+ "train_loss": [],
+ "val_loss": [],
+ }
+ for metric in self.extra_metrics:
+ self.history[f"train_{metric.__name__}"] = []
+ self.history[f"val_{metric.__name__}"] = []
+
+ self.early_stopping_critreon = 0
+ self.current_epoch = 0
+ self.n_classes = None
+
+ def train_one_epoch(self):
+ self.model.train(True)
+ running_loss = 0
+ running_metrics = [0 for _ in range(len(self.extra_metrics))]
+ i = 0
+
+ for i, batch in enumerate(
+ tqdm.tqdm(self.data_loader["training"], desc="Training....")
+ ):
+ data_input, label = batch
+
+ self.optimizer.zero_grad()
+
+ model_prediction = self.model(data_input)
+ loss = self.loss(model_prediction, label)
+ for index in range(len(self.extra_metrics)):
+ running_metrics[index] += self.extra_metrics[index](
+ model_prediction, label
+ )
+
+ loss.backward()
+ self.optimizer.step()
+ running_loss += loss
+
+ loss = running_loss / (i + 1)
+ extra_metrics = [metric / (i + 1) for metric in running_metrics]
+
+ return loss, extra_metrics
+
+ def is_still_training(self):
+ # Monitor val loss
+ if self.current_epoch >= 5:
+ if self.history["val_loss"][-2] < self.history["val_loss"][-1]:
+ self.early_stopping_critreon += 1
+ if self.early_stopping_tolerence <= self.early_stopping_critreon:
+ return False
+
+ self.current_epoch += 1
+ if self.current_epoch >= self.epochs:
+ return False
+
+ return True
+
+ def train(self):
+ not_stopping = True
+ while not_stopping:
+ train_loss, train_metrics = self.train_one_epoch()
+ val_loss, val_metrics = self.validate()
+
+ self.history["train_loss"].append(train_loss.detach().numpy()) # type: ignore
+ self.history["val_loss"].append(val_loss.detach().numpy()) # type: ignore
+
+ for metric_index, metric in enumerate(self.extra_metrics):
+ self.history[f"train_{metric.__name__}"].append(
+ train_metrics[metric_index]
+ )
+ self.history[f"val_{metric.__name__}"].append(val_metrics[metric_index])
+
+ not_stopping = self.is_still_training()
+
+ def validate(self):
+ loss, extra_metrics, _ = self.test_single_epoch(
+ data_loader=self.data_loader["validation"]
+ )
+ return loss, extra_metrics
+
+ def test_single_epoch(self, data_loader):
+ self.model.train(False)
+ running_loss = 0
+ running_metrics = [0 for _ in range(len(self.extra_metrics))]
+ i = 0
+
+ predictions = torch.tensor([])
+ for i, batch in enumerate(data_loader):
+ data_input, label = batch
+ model_prediction = self.model(data_input)
+ loss = self.loss(model_prediction, label)
+ for index in range(len(self.extra_metrics)):
+ running_metrics[index] += self.extra_metrics[index](
+ model_prediction, label
+ )
+
+ predictions = torch.concat((predictions, model_prediction))
+ running_loss += loss
+
+ loss = running_loss / (i + 1)
+
+ extra_metrics = [metric / (i + 1) for metric in running_metrics]
+
+ return loss, extra_metrics, predictions
+
+ def save(self, save_path):
+ if not os.path.exists(save_path):
+ os.makedirs(save_path)
+ model_path = f"{save_path}/model.pt"
+ torch.save(self.model.state_dict(), model_path)
+
+ history_path = f"{save_path}/history.csv"
+ pd.DataFrame(self.history).to_csv(history_path)
+
+ def __call__(self):
+ self.train()
diff --git a/WavPool/training/training_metrics.py b/WavPool/training/training_metrics.py
new file mode 100644
index 0000000..4f1b24d
--- /dev/null
+++ b/WavPool/training/training_metrics.py
@@ -0,0 +1,46 @@
+from torcheval.metrics.functional import multiclass_f1_score
+from sklearn.metrics import roc_auc_score, roc_curve, confusion_matrix
+import numpy as np
+
+import torch
+
+
+class TrainingMetrics:
+ @staticmethod
+ def f1(prediction, label):
+ return multiclass_f1_score(target=label, input=prediction).detach().numpy()
+
+ @staticmethod
+ def accuracy(prediction, label):
+ _, predicted_class = torch.max(prediction, 1)
+
+ return (label == predicted_class).sum().item() / label.size(0)
+
+ @staticmethod
+ def auc_roc(prediction: torch.Tensor, label: torch.Tensor):
+ n_classes = prediction.shape[1]
+ eye = np.eye(n_classes)
+
+ _, predicted_class = torch.max(prediction, 1)
+ predicted_class = predicted_class.detach().numpy()
+ return roc_auc_score(eye[label], eye[predicted_class], multi_class="ovo")
+
+ @staticmethod
+ def auc_curve(prediction, label):
+ n_classes = prediction.shape[1]
+ eye = np.eye(n_classes)
+
+ _, predicted_class = torch.max(prediction, 1)
+ predicted_class = predicted_class.detach().numpy()
+ print(np.array(label))
+ label = eye[np.array(label).astype(int)].ravel()
+ score_fpr, score_tpr, _ = roc_curve(label, eye[predicted_class].ravel())
+ return score_fpr, score_tpr
+
+ @staticmethod
+ def confusion_matrix(prediction, label):
+ num_classes = [i + 1 for i in range(prediction.shape[1])]
+ _, predicted_class = torch.max(prediction, 1)
+ return confusion_matrix(
+ label.ravel(), predicted_class.ravel(), labels=num_classes
+ )
diff --git a/WavPool/utils/__init__.py b/WavPool/utils/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/WavPool/utils/levels.py b/WavPool/utils/levels.py
new file mode 100644
index 0000000..319ce01
--- /dev/null
+++ b/WavPool/utils/levels.py
@@ -0,0 +1,42 @@
+# Formula to calculate the levels and their dimensions
+import numpy as np
+import pywt
+import kymatio
+
+
+class Levels:
+ @staticmethod
+ def calc_possible_levels(in_channels, backend="pywt"):
+ if backend == "pywt":
+ _, levels = Levels._input_characterics(in_channels=in_channels)
+ elif backend == "kymatio":
+ _, levels = Levels._ky_input_characterics(in_channels=in_channels)
+ else:
+ raise NotImplementedError
+ return levels
+
+ @staticmethod
+ def find_output_size(level, in_channels, backend="pywt"):
+ level = int(level)
+ sizes, levels = Levels._input_characterics(in_channels=in_channels)
+ if backend == "pywt":
+ sizes, levels = Levels._input_characterics(in_channels=in_channels)
+ elif backend == "kymatio":
+ sizes, levels = Levels._ky_input_characterics(in_channels=in_channels)
+ else:
+ raise NotImplementedError
+
+ assert len(levels) >= level
+ return sizes[levels[level]]
+
+ @staticmethod
+ def _input_characterics(in_channels, wavelet="haar"):
+ transform = np.random.rand(in_channels, in_channels)
+ transform = pywt.wavedec2(transform, wavelet)
+ transform_sizes = [np.array(x).shape[1] for x in transform]
+ levels = [i for i in range(len(transform_sizes))]
+ return transform_sizes, levels
+
+ @staticmethod
+ def _ky_input_characterics(in_channels):
+ raise NotImplementedError
diff --git a/WavPool/utils/voting.py b/WavPool/utils/voting.py
new file mode 100644
index 0000000..da95acd
--- /dev/null
+++ b/WavPool/utils/voting.py
@@ -0,0 +1,14 @@
+import torch
+
+
+def soft_voting(probabilities):
+ # Take the average
+ votes = sum(probabilities) / len(probabilities)
+ return votes
+
+
+def hard_voting(probabilities):
+ # Take the max
+ probabilities = torch.swapdims(torch.stack(probabilities), 0, 1)
+ votes = torch.tensor(torch.argmax(probabilities, dim=1).float(), requires_grad=True)
+ return votes
diff --git a/notebooks/mnist_wav.ipynb b/notebooks/mnist_wav.ipynb
deleted file mode 100644
index e86cbc3..0000000
--- a/notebooks/mnist_wav.ipynb
+++ /dev/null
@@ -1,348 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "id": "f2e4960a",
- "metadata": {},
- "source": [
- "here's some code to do the wavelet decomposition of the MNIST data"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "id": "25b192a3",
- "metadata": {
- "scrolled": false
- },
- "outputs": [],
- "source": [
- "%matplotlib inline\n",
- "from matplotlib import pyplot as plt\n",
- "import numpy as np\n",
- "import pywt \n",
- "import matplotlib_inline.backend_inline\n",
- "matplotlib_inline.backend_inline.set_matplotlib_formats('svg', 'pdf')\n",
- "import seaborn as sns\n",
- "sns.set()"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "2d6e8ee7",
- "metadata": {},
- "source": [
- "load the data and the labels"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "id": "9d885e02",
- "metadata": {},
- "outputs": [],
- "source": [
- "mnist_R_img = np.load(\"train_images.npy\").reshape(60000, 28, 28)\n",
- "mnist_E_img = np.load(\"test_images.npy\").reshape(10000, 28, 28)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "id": "7f8ea20f",
- "metadata": {},
- "outputs": [],
- "source": [
- "mnist_R_lab = np.load(\"train_labels.npy\")\n",
- "mnist_E_lab = np.load(\"test_labels.npy\")"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "4e228626",
- "metadata": {},
- "source": [
- "do the wavelet decomposition of the images"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "id": "4e81828f",
- "metadata": {},
- "outputs": [],
- "source": [
- "mnist_R_wd = [pywt.wavedec2(x, 'db1') for x in mnist_R_img]\n",
- "mnist_E_wd = [pywt.wavedec2(x, 'db1') for x in mnist_E_img]"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "65570241",
- "metadata": {},
- "source": [
- "look at the first five images"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "id": "de6c0669",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "0 [5.]\n"
- ]
- },
- {
- "data": {
- "application/pdf": "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MCAvTWF4V2lkdGggMTAxNSA+PgplbmRvYmoKMTQgMCBvYmoKWyA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MAo3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDI3OCAyNzggMzU1IDU1NiA1NTYKODg5IDY2NyAxOTEgMzMzIDMzMyAzODkgNTg0IDI3OCAzMzMgMjc4IDI3OCA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2CjU1NiA1NTYgMjc4IDI3OCA1ODQgNTg0IDU4NCA1NTYgMTAxNSA2NjcgNjY3IDcyMiA3MjIgNjY3IDYxMSA3NzggNzIyIDI3OAo1MDAgNjY3IDU1NiA4MzMgNzIyIDc3OCA2NjcgNzc4IDcyMiA2NjcgNjExIDcyMiA2NjcgOTQ0IDY2NyA2NjcgNjExIDI3OCAyNzgKMjc4IDQ2OSA1NTYgMzMzIDU1NiA1NTYgNTAwIDU1NiA1NTYgMjc4IDU1NiA1NTYgMjIyIDIyMiA1MDAgMjIyIDgzMyA1NTYgNTU2CjU1NiA1NTYgMzMzIDUwMCAyNzggNTU2IDUwMCA3MjIgNTAwIDUwMCA1MDAgMzM0IDI2MCAzMzQgNTg0IDc1MCA1NTYgNzUwIDIyMgo1NTYgMzMzIDEwMDAgNTU2IDU1NiAzMzMgMTAwMCA2NjcgMzMzIDEwMDAgNzUwIDYxMSA3NTAgNzUwIDIyMiAyMjIgMzMzIDMzMwozNTAgNTU2IDEwMDAgMzMzIDEwMDAgNTAwIDMzMyA5NDQgNzUwIDUwMCA2NjcgMjc4IDMzMyA1NTYgNTU2IDU1NiA1NTYgMjYwCjU1NiAzMzMgNzM3IDM3MCA1NTYgNTg0IDMzMyA3MzcgNTUyIDQwMCA1NDkgMzMzIDMzMyAzMzMgNTc2IDUzNyAzMzMgMzMzIDMzMwozNjUgNTU2IDgzNCA4MzQgODM0IDYxMSA2NjcgNjY3IDY2NyA2NjcgNjY3IDY2NyAxMDAwIDcyMiA2NjcgNjY3IDY2NyA2NjcKMjc4IDI3OCAyNzggMjc4IDcyMiA3MjIgNzc4IDc3OCA3NzggNzc4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6+qm6fGpW0lyya8ieU7ynOQ5yXOS5yTPSZ6TPCd5TvKc5Mfjx+nTxb3TUcMuHprenva0reQ5yXOS5yTPSZ6TPCd5TvKc5DnJc5LnJM+FyX+a3p3umzbqenZangW90F2+HZHkOclzkuckz0mekzwneU7ynOQ5yXOS5yTPSZ7bdfKfp6cWZ6aNwp6bLk6/Tjteadckz0mekzwneU7ynOQ5yXOS5yTPSZ6TPCd5brPkH0xPTndPG3W9dfHKdGXacYiO5DnJc5LnJM9JnpM8J3lO8pzkOclzkuckz22W/Px01Jb3Ty9Pr06XFzte9ySQPCd5TvKc5DnJc5LnJM9JnpM8J3lO8pzkuRPxBbn/F8lzkuckz0mekzwneU7ynOQ5yXOS5yTPSZ6TPCd5TvKc5DnJc5LnJM9JnpM8J3lO8pzkOclzkuckz0mekzwneU7ynOQ5yXOS5yTPSZ6TPCd5TvLcXxBHeoMKZW5kc3RyZWFtCmVuZG9iagoyMiAwIG9iagoxMjE0CmVuZG9iagoyIDAgb2JqCjw8IC9UeXBlIC9QYWdlcyAvS2lkcyBbIDExIDAgUiBdIC9Db3VudCAxID4+CmVuZG9iagoyMyAwIG9iago8PCAvQ3JlYXRvciAoTWF0cGxvdGxpYiB2My42LjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcpCi9Qcm9kdWNlciAoTWF0cGxvdGxpYiBwZGYgYmFja2VuZCB2My42LjMpCi9DcmVhdGlvbkRhdGUgKEQ6MjAyMzAyMDMxNTU5MzktMDQnMDAnKSA+PgplbmRvYmoKeHJlZgowIDI0CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNiAwMDAwMCBuIAowMDAwMDA1Nzk1IDAwMDAwIG4gCjAwMDAwMDM4NTAgMDAwMDAgbiAKMDAwMDAwMzg4MiAwMDAwMCBuIAowMDAwMDAzOTgxIDAwMDAwIG4gCjAwMDAwMDQwMDIgMDAwMDAgbiAKMDAwMDAwNDAyMyAwMDAwMCBuIAowMDAwMDAwMDY1IDAwMDAwIG4gCjAwMDAwMDAzMzkgMDAwMDAgbiAKMDAwMDAwMDk3MSAwMDAwMCBuIAowMDAwMDAwMjA4IDAwMDAwIG4gCjAwMDAwMDA5NTEgMDAwMDAgbiAKMDAwMDAwNDA1NSAwMDAwMCBuIAowMDAwMDAyNzI3IDAwMDAwIG4gCjAwMDAwMDI1MjAgMDAwMDAgbiAKMDAwMDAwMjE5MiAwMDAwMCBuIAowMDAwMDAzNzc4IDAwMDAwIG4gCjAwMDAwMDA5OTEgMDAwMDAgbiAKMDAwMDAwMTMxMyAwMDAwMCBuIAowMDAwMDAxNTAyIDAwMDAwIG4gCjAwMDAwMDE4NDQgMDAwMDAgbiAKMDAwMDAwNTc3NCAwMDAwMCBuIAowMDAwMDA1ODU1IDAwMDAwIG4gCnRyYWlsZXIKPDwgL1NpemUgMjQgL1Jvb3QgMSAwIFIgL0luZm8gMjMgMCBSID4+CnN0YXJ0eHJlZgo2MDEyCiUlRU9GCg==\n",
- "image/svg+xml": "\n\n\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "1 [0.]\n"
- ]
- },
- {
- "data": {
- "application/pdf": "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MCAvTWF4V2lkdGggMTAxNSA+PgplbmRvYmoKMTQgMCBvYmoKWyA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MAo3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDI3OCAyNzggMzU1IDU1NiA1NTYKODg5IDY2NyAxOTEgMzMzIDMzMyAzODkgNTg0IDI3OCAzMzMgMjc4IDI3OCA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2CjU1NiA1NTYgMjc4IDI3OCA1ODQgNTg0IDU4NCA1NTYgMTAxNSA2NjcgNjY3IDcyMiA3MjIgNjY3IDYxMSA3NzggNzIyIDI3OAo1MDAgNjY3IDU1NiA4MzMgNzIyIDc3OCA2NjcgNzc4IDcyMiA2NjcgNjExIDcyMiA2NjcgOTQ0IDY2NyA2NjcgNjExIDI3OCAyNzgKMjc4IDQ2OSA1NTYgMzMzIDU1NiA1NTYgNTAwIDU1NiA1NTYgMjc4IDU1NiA1NTYgMjIyIDIyMiA1MDAgMjIyIDgzMyA1NTYgNTU2CjU1NiA1NTYgMzMzIDUwMCAyNzggNTU2IDUwMCA3MjIgNTAwIDUwMCA1MDAgMzM0IDI2MCAzMzQgNTg0IDc1MCA1NTYgNzUwIDIyMgo1NTYgMzMzIDEwMDAgNTU2IDU1NiAzMzMgMTAwMCA2NjcgMzMzIDEwMDAgNzUwIDYxMSA3NTAgNzUwIDIyMiAyMjIgMzMzIDMzMwozNTAgNTU2IDEwMDAgMzMzIDEwMDAgNTAwIDMzMyA5NDQgNzUwIDUwMCA2NjcgMjc4IDMzMyA1NTYgNTU2IDU1NiA1NTYgMjYwCjU1NiAzMzMgNzM3IDM3MCA1NTYgNTg0IDMzMyA3MzcgNTUyIDQwMCA1NDkgMzMzIDMzMyAzMzMgNTc2IDUzNyAzMzMgMzMzIDMzMwozNjUgNTU2IDgzNCA4MzQgODM0IDYxMSA2NjcgNjY3IDY2NyA2NjcgNjY3IDY2NyAxMDAwIDcyMiA2NjcgNjY3IDY2NyA2NjcKMjc4IDI3OCAyNzggMjc4IDcyMiA3MjIgNzc4IDc3OCA3NzggNzc4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k5u8gckvZPLLnPxK1Tx2h6j8eRXbPVHlU+yaFzK5yduZ3OQmN3k7k5vc5CZvZ3KTm9zk7UxucjD5O1Xz2HA7xNs6Y6FXqy0XSiY3eQOTmzyZ3OQNTG7yZHKTNzC5yZPJTd7A5CZP3cm/q+JLZ8dxr6557I3qNMQO16vmHfZlcpzJcSbHmRxncpzJcSbHmRxncpzJcSbHmRwH3km8r3q7ijt/v4Y472oVn2B0jW/iXblWfV81X/q+TI4zOc7kOJPjTI4zOc7kOJPjTI4zOc7kOJPjwORjj1ZPhT1PiFdyfhGaL3CeyXEmx5kcZ3KcyXEmx5kcZ3KcyXEmx5kcZ3KcyXHdye9Uz4ZxsLj1uiPsWYX9crebyXEmx5kcZ3KcyXEmx5kcZ3KcyXEmx5kcZ3Jcd/IQL/W8+2W1b/J3q1+qLRfflMlxJseZHGdynMlxJseZHGdynMlxJseZHGdy3KbJtcbkOJPjTI4zOc7kOJPjTI4zOc7kOJPjTI4zOc7kOJPjTI4zOc7kOJPjTI4zOc7kOJPjTI4zOc7kOJPjTI4zOc7kOJPjTI4zOc7kOJPjTI4zOc7kOJPjTI4zOc7kOJPjTI4zOc7kOJPjTI4zOc7kOJPjTI4zOe4fTVyX8gplbmRzdHJlYW0KZW5kb2JqCjIyIDAgb2JqCjEzNTYKZW5kb2JqCjIgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFsgMTEgMCBSIF0gL0NvdW50IDEgPj4KZW5kb2JqCjIzIDAgb2JqCjw8IC9DcmVhdG9yIChNYXRwbG90bGliIHYzLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZykKL1Byb2R1Y2VyIChNYXRwbG90bGliIHBkZiBiYWNrZW5kIHYzLjYuMykKL0NyZWF0aW9uRGF0ZSAoRDoyMDIzMDIwMzE1NTkzOS0wNCcwMCcpID4+CmVuZG9iagp4cmVmCjAgMjQKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE2IDAwMDAwIG4gCjAwMDAwMDU5MTQgMDAwMDAgbiAKMDAwMDAwMzg1MCAwMDAwMCBuIAowMDAwMDAzODgyIDAwMDAwIG4gCjAwMDAwMDM5ODEgMDAwMDAgbiAKMDAwMDAwNDAwMiAwMDAwMCBuIAowMDAwMDA0MDIzIDAwMDAwIG4gCjAwMDAwMDAwNjUgMDAwMDAgbiAKMDAwMDAwMDMzOSAwMDAwMCBuIAowMDAwMDAwOTcxIDAwMDAwIG4gCjAwMDAwMDAyMDggMDAwMDAgbiAKMDAwMDAwMDk1MSAwMDAwMCBuIAowMDAwMDA0MDU1IDAwMDAwIG4gCjAwMDAwMDI3MjcgMDAwMDAgbiAKMDAwMDAwMjUyMCAwMDAwMCBuIAowMDAwMDAyMTkyIDAwMDAwIG4gCjAwMDAwMDM3NzggMDAwMDAgbiAKMDAwMDAwMDk5MSAwMDAwMCBuIAowMDAwMDAxMzEzIDAwMDAwIG4gCjAwMDAwMDE1MDIgMDAwMDAgbiAKMDAwMDAwMTg0NCAwMDAwMCBuIAowMDAwMDA1ODkzIDAwMDAwIG4gCjAwMDAwMDU5NzQgMDAwMDAgbiAKdHJhaWxlcgo8PCAvU2l6ZSAyNCAvUm9vdCAxIDAgUiAvSW5mbyAyMyAwIFIgPj4Kc3RhcnR4cmVmCjYxMzEKJSVFT0YK\n",
- "image/svg+xml": "\n\n\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "2 [4.]\n"
- ]
- },
- {
- "data": {
- "application/pdf": "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MCAvTWF4V2lkdGggMTAxNSA+PgplbmRvYmoKMTQgMCBvYmoKWyA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MAo3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDI3OCAyNzggMzU1IDU1NiA1NTYKODg5IDY2NyAxOTEgMzMzIDMzMyAzODkgNTg0IDI3OCAzMzMgMjc4IDI3OCA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2CjU1NiA1NTYgMjc4IDI3OCA1ODQgNTg0IDU4NCA1NTYgMTAxNSA2NjcgNjY3IDcyMiA3MjIgNjY3IDYxMSA3NzggNzIyIDI3OAo1MDAgNjY3IDU1NiA4MzMgNzIyIDc3OCA2NjcgNzc4IDcyMiA2NjcgNjExIDcyMiA2NjcgOTQ0IDY2NyA2NjcgNjExIDI3OCAyNzgKMjc4IDQ2OSA1NTYgMzMzIDU1NiA1NTYgNTAwIDU1NiA1NTYgMjc4IDU1NiA1NTYgMjIyIDIyMiA1MDAgMjIyIDgzMyA1NTYgNTU2CjU1NiA1NTYgMzMzIDUwMCAyNzggNTU2IDUwMCA3MjIgNTAwIDUwMCA1MDAgMzM0IDI2MCAzMzQgNTg0IDc1MCA1NTYgNzUwIDIyMgo1NTYgMzMzIDEwMDAgNTU2IDU1NiAzMzMgMTAwMCA2NjcgMzMzIDEwMDAgNzUwIDYxMSA3NTAgNzUwIDIyMiAyMjIgMzMzIDMzMwozNTAgNTU2IDEwMDAgMzMzIDEwMDAgNTAwIDMzMyA5NDQgNzUwIDUwMCA2NjcgMjc4IDMzMyA1NTYgNTU2IDU1NiA1NTYgMjYwCjU1NiAzMzMgNzM3IDM3MCA1NTYgNTg0IDMzMyA3MzcgNTUyIDQwMCA1NDkgMzMzIDMzMyAzMzMgNTc2IDUzNyAzMzMgMzMzIDMzMwozNjUgNTU2IDgzNCA4MzQgODM0IDYxMSA2NjcgNjY3IDY2NyA2NjcgNjY3IDY2NyAxMDAwIDcyMiA2NjcgNjY3IDY2NyA2NjcKMjc4IDI3OCAyNzggMjc4IDcyMiA3MjIgNzc4IDc3OCA3NzggNzc4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1A0kueTbSZ6TPCd5TvKc5DnJc5LnJM9JnpM8J3lO8tydk9+YuoEkl3w7yXOS5yTPSZ6TPCd5TvKc5DnJc5LnJM8tyZdnEiU/Eclzkuckz0mekzwneU7ynOQ5yXOS5yTPSZ5bHoNzJ7EgeU7ynOQ5yXOS5yTPSZ6TPCd5TvKc5DnJkTwneU7ynOQ5yXOS5yTPSZ6TPCd5TvKc5DnJc5LnJM9JnpM8J3lO8pzkOclzkuckz0mekzwneU7ynOQ5yXOS5yTPSZ6TPCd5TvKc5DnJc5LnJM/9CzRVl7IKZW5kc3RyZWFtCmVuZG9iagoyMiAwIG9iagoxMTM0CmVuZG9iagoyIDAgb2JqCjw8IC9UeXBlIC9QYWdlcyAvS2lkcyBbIDExIDAgUiBdIC9Db3VudCAxID4+CmVuZG9iagoyMyAwIG9iago8PCAvQ3JlYXRvciAoTWF0cGxvdGxpYiB2My42LjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcpCi9Qcm9kdWNlciAoTWF0cGxvdGxpYiBwZGYgYmFja2VuZCB2My42LjMpCi9DcmVhdGlvbkRhdGUgKEQ6MjAyMzAyMDMxNTU5MzktMDQnMDAnKSA+PgplbmRvYmoKeHJlZgowIDI0CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNiAwMDAwMCBuIAowMDAwMDA1NjU3IDAwMDAwIG4gCjAwMDAwMDM4NTAgMDAwMDAgbiAKMDAwMDAwMzg4MiAwMDAwMCBuIAowMDAwMDAzOTgxIDAwMDAwIG4gCjAwMDAwMDQwMDIgMDAwMDAgbiAKMDAwMDAwNDAyMyAwMDAwMCBuIAowMDAwMDAwMDY1IDAwMDAwIG4gCjAwMDAwMDAzMzkgMDAwMDAgbiAKMDAwMDAwMDk3MSAwMDAwMCBuIAowMDAwMDAwMjA4IDAwMDAwIG4gCjAwMDAwMDA5NTEgMDAwMDAgbiAKMDAwMDAwNDA1NSAwMDAwMCBuIAowMDAwMDAyNzI3IDAwMDAwIG4gCjAwMDAwMDI1MjAgMDAwMDAgbiAKMDAwMDAwMjE5MiAwMDAwMCBuIAowMDAwMDAzNzc4IDAwMDAwIG4gCjAwMDAwMDA5OTEgMDAwMDAgbiAKMDAwMDAwMTMxMyAwMDAwMCBuIAowMDAwMDAxNTAyIDAwMDAwIG4gCjAwMDAwMDE4NDQgMDAwMDAgbiAKMDAwMDAwNTYzNiAwMDAwMCBuIAowMDAwMDA1NzE3IDAwMDAwIG4gCnRyYWlsZXIKPDwgL1NpemUgMjQgL1Jvb3QgMSAwIFIgL0luZm8gMjMgMCBSID4+CnN0YXJ0eHJlZgo1ODc0CiUlRU9GCg==\n",
- "image/svg+xml": "\n\n\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "3 [1.]\n"
- ]
- },
- {
- "data": {
- "application/pdf": "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MCAvTWF4V2lkdGggMTAxNSA+PgplbmRvYmoKMTQgMCBvYmoKWyA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MAo3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDI3OCAyNzggMzU1IDU1NiA1NTYKODg5IDY2NyAxOTEgMzMzIDMzMyAzODkgNTg0IDI3OCAzMzMgMjc4IDI3OCA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2CjU1NiA1NTYgMjc4IDI3OCA1ODQgNTg0IDU4NCA1NTYgMTAxNSA2NjcgNjY3IDcyMiA3MjIgNjY3IDYxMSA3NzggNzIyIDI3OAo1MDAgNjY3IDU1NiA4MzMgNzIyIDc3OCA2NjcgNzc4IDcyMiA2NjcgNjExIDcyMiA2NjcgOTQ0IDY2NyA2NjcgNjExIDI3OCAyNzgKMjc4IDQ2OSA1NTYgMzMzIDU1NiA1NTYgNTAwIDU1NiA1NTYgMjc4IDU1NiA1NTYgMjIyIDIyMiA1MDAgMjIyIDgzMyA1NTYgNTU2CjU1NiA1NTYgMzMzIDUwMCAyNzggNTU2IDUwMCA3MjIgNTAwIDUwMCA1MDAgMzM0IDI2MCAzMzQgNTg0IDc1MCA1NTYgNzUwIDIyMgo1NTYgMzMzIDEwMDAgNTU2IDU1NiAzMzMgMTAwMCA2NjcgMzMzIDEwMDAgNzUwIDYxMSA3NTAgNzUwIDIyMiAyMjIgMzMzIDMzMwozNTAgNTU2IDEwMDAgMzMzIDEwMDAgNTAwIDMzMyA5NDQgNzUwIDUwMCA2NjcgMjc4IDMzMyA1NTYgNTU2IDU1NiA1NTYgMjYwCjU1NiAzMzMgNzM3IDM3MCA1NTYgNTg0IDMzMyA3MzcgNTUyIDQwMCA1NDkgMzMzIDMzMyAzMzMgNTc2IDUzNyAzMzMgMzMzIDMzMwozNjUgNTU2IDgzNCA4MzQgODM0IDYxMSA2NjcgNjY3IDY2NyA2NjcgNjY3IDY2NyAxMDAwIDcyMiA2NjcgNjY3IDY2NyA2NjcKMjc4IDI3OCAyNzggMjc4IDcyMiA3MjIgNzc4IDc3OCA3NzggNzc4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npM8dxR/jHC+SJ6TPCd5TvKc5DnJc5LnJM9JnpM8J3lO8pzkOclzkuckz0mekzwneU7ynOQ5yXOS5yTPSZ6TPCd5TvKc5DnJc5LnJM9JnpM8J3lO8pzkOclzkufeAooE9iQKZW5kc3RyZWFtCmVuZG9iagoyMiAwIG9iagoxMDY4CmVuZG9iagoyIDAgb2JqCjw8IC9UeXBlIC9QYWdlcyAvS2lkcyBbIDExIDAgUiBdIC9Db3VudCAxID4+CmVuZG9iagoyMyAwIG9iago8PCAvQ3JlYXRvciAoTWF0cGxvdGxpYiB2My42LjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcpCi9Qcm9kdWNlciAoTWF0cGxvdGxpYiBwZGYgYmFja2VuZCB2My42LjMpCi9DcmVhdGlvbkRhdGUgKEQ6MjAyMzAyMDMxNTU5MzktMDQnMDAnKSA+PgplbmRvYmoKeHJlZgowIDI0CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNiAwMDAwMCBuIAowMDAwMDA1NTM3IDAwMDAwIG4gCjAwMDAwMDM4NTAgMDAwMDAgbiAKMDAwMDAwMzg4MiAwMDAwMCBuIAowMDAwMDAzOTgxIDAwMDAwIG4gCjAwMDAwMDQwMDIgMDAwMDAgbiAKMDAwMDAwNDAyMyAwMDAwMCBuIAowMDAwMDAwMDY1IDAwMDAwIG4gCjAwMDAwMDAzMzkgMDAwMDAgbiAKMDAwMDAwMDk3MSAwMDAwMCBuIAowMDAwMDAwMjA4IDAwMDAwIG4gCjAwMDAwMDA5NTEgMDAwMDAgbiAKMDAwMDAwNDA1NSAwMDAwMCBuIAowMDAwMDAyNzI3IDAwMDAwIG4gCjAwMDAwMDI1MjAgMDAwMDAgbiAKMDAwMDAwMjE5MiAwMDAwMCBuIAowMDAwMDAzNzc4IDAwMDAwIG4gCjAwMDAwMDA5OTEgMDAwMDAgbiAKMDAwMDAwMTMxMyAwMDAwMCBuIAowMDAwMDAxNTAyIDAwMDAwIG4gCjAwMDAwMDE4NDQgMDAwMDAgbiAKMDAwMDAwNTUxNiAwMDAwMCBuIAowMDAwMDA1NTk3IDAwMDAwIG4gCnRyYWlsZXIKPDwgL1NpemUgMjQgL1Jvb3QgMSAwIFIgL0luZm8gMjMgMCBSID4+CnN0YXJ0eHJlZgo1NzU0CiUlRU9GCg==\n",
- "image/svg+xml": "\n\n\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "4 [9.]\n"
- ]
- },
- {
- "data": {
- "application/pdf": "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MCAvTWF4V2lkdGggMTAxNSA+PgplbmRvYmoKMTQgMCBvYmoKWyA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MAo3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDI3OCAyNzggMzU1IDU1NiA1NTYKODg5IDY2NyAxOTEgMzMzIDMzMyAzODkgNTg0IDI3OCAzMzMgMjc4IDI3OCA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2CjU1NiA1NTYgMjc4IDI3OCA1ODQgNTg0IDU4NCA1NTYgMTAxNSA2NjcgNjY3IDcyMiA3MjIgNjY3IDYxMSA3NzggNzIyIDI3OAo1MDAgNjY3IDU1NiA4MzMgNzIyIDc3OCA2NjcgNzc4IDcyMiA2NjcgNjExIDcyMiA2NjcgOTQ0IDY2NyA2NjcgNjExIDI3OCAyNzgKMjc4IDQ2OSA1NTYgMzMzIDU1NiA1NTYgNTAwIDU1NiA1NTYgMjc4IDU1NiA1NTYgMjIyIDIyMiA1MDAgMjIyIDgzMyA1NTYgNTU2CjU1NiA1NTYgMzMzIDUwMCAyNzggNTU2IDUwMCA3MjIgNTAwIDUwMCA1MDAgMzM0IDI2MCAzMzQgNTg0IDc1MCA1NTYgNzUwIDIyMgo1NTYgMzMzIDEwMDAgNTU2IDU1NiAzMzMgMTAwMCA2NjcgMzMzIDEwMDAgNzUwIDYxMSA3NTAgNzUwIDIyMiAyMjIgMzMzIDMzMwozNTAgNTU2IDEwMDAgMzMzIDEwMDAgNTAwIDMzMyA5NDQgNzUwIDUwMCA2NjcgMjc4IDMzMyA1NTYgNTU2IDU1NiA1NTYgMjYwCjU1NiAzMzMgNzM3IDM3MCA1NTYgNTg0IDMzMyA3MzcgNTUyIDQwMCA1NDkgMzMzIDMzMyAzMzMgNTc2IDUzNyAzMzMgMzMzIDMzMwozNjUgNTU2IDgzNCA4MzQgODM0IDYxMSA2NjcgNjY3IDY2NyA2NjcgNjY3IDY2NyAxMDAwIDcyMiA2NjcgNjY3IDY2NyA2NjcKMjc4IDI3OCAyNzggMjc4IDcyMiA3MjIgNzc4IDc3OCA3NzggNzc4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z0mekzwneU7ynOQ5yXOS576fJC9InpM8J3lO8pzkOclzkuckz0mekzwneU7ynOS5L6ftX5CTfHckz0mekzwneU7ynOQ5yXOS5yTPSZ6TPCf5YT09LZvELxaHvucpkuckz0mekzwneU7ynOQ5yXOS5yTPSZ6TPHd5k1+fluTXFremQ1/6H5LnJM9JnpM8J3lO8pzkOclzkuckz0mekzx3eZPfmV6alv7Hr013pwNdXPKc5DnJc5LnJM9JnpM8J3lO8pzkOclzkuckz13e5Iul/1uLpf+9sMmVPCd5TvKc5DnJc5LnJM9JnpM8J3lO8pzkufsk+WUieU7ynOQ5yXOS5yTPSZ6TPCd5TvKc5DnJc38DxO9bOQplbmRzdHJlYW0KZW5kb2JqCjIyIDAgb2JqCjExNzcKZW5kb2JqCjIgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFsgMTEgMCBSIF0gL0NvdW50IDEgPj4KZW5kb2JqCjIzIDAgb2JqCjw8IC9DcmVhdG9yIChNYXRwbG90bGliIHYzLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZykKL1Byb2R1Y2VyIChNYXRwbG90bGliIHBkZiBiYWNrZW5kIHYzLjYuMykKL0NyZWF0aW9uRGF0ZSAoRDoyMDIzMDIwMzE1NTkzOS0wNCcwMCcpID4+CmVuZG9iagp4cmVmCjAgMjQKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE2IDAwMDAwIG4gCjAwMDAwMDU3MTYgMDAwMDAgbiAKMDAwMDAwMzg1MCAwMDAwMCBuIAowMDAwMDAzODgyIDAwMDAwIG4gCjAwMDAwMDM5ODEgMDAwMDAgbiAKMDAwMDAwNDAwMiAwMDAwMCBuIAowMDAwMDA0MDIzIDAwMDAwIG4gCjAwMDAwMDAwNjUgMDAwMDAgbiAKMDAwMDAwMDMzOSAwMDAwMCBuIAowMDAwMDAwOTcxIDAwMDAwIG4gCjAwMDAwMDAyMDggMDAwMDAgbiAKMDAwMDAwMDk1MSAwMDAwMCBuIAowMDAwMDA0MDU1IDAwMDAwIG4gCjAwMDAwMDI3MjcgMDAwMDAgbiAKMDAwMDAwMjUyMCAwMDAwMCBuIAowMDAwMDAyMTkyIDAwMDAwIG4gCjAwMDAwMDM3NzggMDAwMDAgbiAKMDAwMDAwMDk5MSAwMDAwMCBuIAowMDAwMDAxMzEzIDAwMDAwIG4gCjAwMDAwMDE1MDIgMDAwMDAgbiAKMDAwMDAwMTg0NCAwMDAwMCBuIAowMDAwMDA1Njk1IDAwMDAwIG4gCjAwMDAwMDU3NzYgMDAwMDAgbiAKdHJhaWxlcgo8PCAvU2l6ZSAyNCAvUm9vdCAxIDAgUiAvSW5mbyAyMyAwIFIgPj4Kc3RhcnR4cmVmCjU5MzMKJSVFT0YK\n",
- "image/svg+xml": "\n\n\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "for i, a in enumerate(zip(mnist_R_img[:5], mnist_R_lab[:5])):\n",
- " print(i, a[1])\n",
- " plt.imshow(a[0])\n",
- " plt.show()"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "a86c36d5",
- "metadata": {},
- "source": [
- "look at the finest (in pywt's convention, highest) levels of the wavelet decomposition"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "id": "2657e241",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "application/pdf": "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IDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAKNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCAyNzggMjc4IDM1NSA1NTYgNTU2Cjg4OSA2NjcgMTkxIDMzMyAzMzMgMzg5IDU4NCAyNzggMzMzIDI3OCAyNzggNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1Ngo1NTYgNTU2IDI3OCAyNzggNTg0IDU4NCA1ODQgNTU2IDEwMTUgNjY3IDY2NyA3MjIgNzIyIDY2NyA2MTEgNzc4IDcyMiAyNzgKNTAwIDY2NyA1NTYgODMzIDcyMiA3NzggNjY3IDc3OCA3MjIgNjY3IDYxMSA3MjIgNjY3IDk0NCA2NjcgNjY3IDYxMSAyNzggMjc4CjI3OCA0NjkgNTU2IDMzMyA1NTYgNTU2IDUwMCA1NTYgNTU2IDI3OCA1NTYgNTU2IDIyMiAyMjIgNTAwIDIyMiA4MzMgNTU2IDU1Ngo1NTYgNTU2IDMzMyA1MDAgMjc4IDU1NiA1MDAgNzIyIDUwMCA1MDAgNTAwIDMzNCAyNjAgMzM0IDU4NCA3NTAgNTU2IDc1MCAyMjIKNTU2IDMzMyAxMDAwIDU1NiA1NTYgMzMzIDEwMDAgNjY3IDMzMyAxMDAwIDc1MCA2MTEgNzUwIDc1MCAyMjIgMjIyIDMzMyAzMzMKMzUwIDU1NiAxMDAwIDMzMyAxMDAwIDUwMCAzMzMgOTQ0IDc1MCA1MDAgNjY3IDI3OCAzMzMgNTU2IDU1NiA1NTYgNTU2IDI2MAo1NTYgMzMzIDczNyAzNzAgNTU2IDU4NCAzMzMgNzM3IDU1MiA0MDAgNTQ5IDMzMyAzMzMgMzMzIDU3NiA1MzcgMzMzIDMzMyAzMzMKMzY1IDU1NiA4MzQgODM0IDgzNCA2MTEgNjY3IDY2NyA2NjcgNjY3IDY2NyA2NjcgMTAwMCA3MjIgNjY3IDY2NyA2NjcgNjY3CjI3OCAyNzggMjc4IDI3OCA3MjIgNzIyIDc3OCA3NzggNzc4IDc3OCA3NzggNTg0IDc3OCA3MjIgNzIyIDcyMiA3MjIgNjY3IDY2Nwo2MTEgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgODg5IDUwMCA1NTYgNTU2IDU1NiA1NTYgMjc4IDI3OCAyNzggMjc4IDU1NiA1NTYKNTU2IDU1NiA1NTYgNTU2IDU1NiA1NDkgNjExIDU1NiA1NTYgNTU2IDU1NiA1MDAgNTU2IDUwMCBdCmVuZG9iagoxNyAwIG9iago8PCAvZWlnaHQgMTggMCBSIC9mb3VyIDE5IDAgUiAvb25lIDIwIDAgUiAvc2l4IDIxIDAgUiAvdHdvIDIyIDAgUgovemVybyAyMyAwIFIgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL0YxIDE2IDAgUiA+PgplbmRvYmoKNCAwIG9iago8PCAvQTEgPDwgL1R5cGUgL0V4dEdTdGF0ZSAvQ0EgMCAvY2EgMSA+PgovQTIgPDwgL1R5cGUgL0V4dEdTdGF0ZSAvQ0EgMSAvY2EgMSA+PiA+PgplbmRvYmoKNSAwIG9iago8PCA+PgplbmRvYmoKNiAwIG9iago8PCA+PgplbmRvYmoKNyAwIG9iago8PCAvSTEgMTMgMCBSID4+CmVuZG9iagoxMyAwIG9iago8PCAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDM3MCAvSGVpZ2h0IDM3MAovQ29sb3JTcGFjZSBbL0luZGV4ZWQgL0RldmljZVJHQiA0OCAo+urc9rqX9rKM9a6H9amB9ZVs9I5l9IBZ83RP8m1K7VA+6kY93i1E2ypF2SdH2CZHex5Zcx9XYh5TXFweUc8dTc0cTcUXUasXWakYWacYWqIZWpsaW5gbW5McW48cW4odW4UdWlEdTEMbRUEbRTYZPi8XOcAWU78WVL0WVLoWVrgWVrAWWCwWNyYUMxUOJwMFGgIEGSldCi9CaXRzUGVyQ29tcG9uZW50IDggL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0RlY29kZVBhcm1zIDw8IC9QcmVkaWN0b3IgMTAgL0NvbG9ycyAxIC9Db2x1bW5zIDM3MCA+PiAvTGVuZ3RoIDI0IDAgUiA+PgpzdHJlYW0KeJzt3dmSFUUUQNFmEJAWZFAmEZCxGxX4/68zjHrqCE6UdS02N2Ct94w4Z+d75sl7Yidfe4Dvj+Q5yXOS5yTPSZ6TPCd5TvKc5DnJc5LnJM9JnpM8J3lO8pzkOclzkuckz0mekzwneU7ynOQ5yXOS5yTPSZ6TPCd5TvKc5DnJc5LnJM9JnpM8J3lO8pzkOclzkuckz0mekzwneU7ynOQ5yXOS5448+Z+zx6NXs/ujj7MPo4N2klzyiyTPSZ6TPCd5TvKc5DnJc5LnJM9JnpM8J3lO8pzkOclzkuckz0mekzwneU7ynOQ5yXOSr3sy+zR6Ofp9Ns9wPvtxdGU2HzookeSSS76V5Kskl1zyrSRfJbnkkm8l+SrJJZd8K8lXSS655FtJvkpyySXfSvJVkksu+VaSr5Jccsm3knyV5JJLvtXb2Y3R6ejX2eXRtdnO2x5E8pzkOclzkuckz0mekzwneU7ynOQ5yXOS5yTPSZ6TPCd5TvKc5DnJc5LnJM9JnpM8J3lO8lz4gty70XxNz2fd4DuTPCd5TvKc5DnJc5LnJM9JnpM8J3lO8pzkOclzkuckz0mekzwneU7ynOQ5yXOS5yTPSZ6TPCd57ii+WD0b3Zz9NXox+9qb/kvynOQ5yXOS5yTPSZ6TPCd5TvKc5DnJc5LnJM9JnpM8J3lO8pzkOclzkuckz0mekzwneU7y3FEkn92eXR/dmd0ddTtJLvlFkuckz0mekzwneU7ynOQ5yXOS5yTPSZ6TPCd5TvKc5DnJc5LnJM9JnpM8J3lO8pzkOcmPyfwG2k+z3w6x8+CSS/6fSZ6TPCd5TvKc5DnJc5LnJM9JnpM8J3lO8pzkOclzkuckz0mekzwneU7ynOQ5yXOS5yTPSf5l3Ju9GT2dPRidz3beSXLJL5I8J3lO8pzkOclzkuckz0mekzwneU7ynOQ5yXOS5yTPSZ6TPCd5TvKc5DnJc5LnJM9J/r88G/09ejj7ZXR59vOo6yC55JLvSPKF5JJLviPJF5JLLvmOJF9ILrnkO5J8Ibnkku9I8oXkkku+I8kXkksu+Y4kX0guueQ7knwhueSSf94fo9ezR6Oz0Q+zW6OdE+1N8pzkOclzkuckz0mekzwneU7ynOQ5yXOS5yTPSZ6TPCd5TvKc5DnJc5LnJM9JnpM8J3lO8txhyS+NTmZXR6ejnbc9CpLnJM9JnpM8J3lO8pzkOclzkuckz0mekzwneU7ynOQ5yXOS5yTPSZ6TPCd5TvKc5DnJc5LnJM8d+Rer3yLJc5LnJM9JnpM8J3lO8pzkOclzkuckz0mekzwneU7ynOQ5yXOS5yTPSZ6TPCd5TvKc5DnJc/8ATULuhwplbmRzdHJlYW0KZW5kb2JqCjI0IDAgb2JqCjEwMTIKZW5kb2JqCjIgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFsgMTEgMCBSIF0gL0NvdW50IDEgPj4KZW5kb2JqCjI1IDAgb2JqCjw8IC9DcmVhdG9yIChNYXRwbG90bGliIHYzLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZykKL1Byb2R1Y2VyIChNYXRwbG90bGliIHBkZiBiYWNrZW5kIHYzLjYuMykKL0NyZWF0aW9uRGF0ZSAoRDoyMDIzMDIwMzE2MDAyNy0wNCcwMCcpID4+CmVuZG9iagp4cmVmCjAgMjYKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE2IDAwMDAwIG4gCjAwMDAwMDYzNDMgMDAwMDAgbiAKMDAwMDAwNDcxMSAwMDAwMCBuIAowMDAwMDA0NzQzIDAwMDAwIG4gCjAwMDAwMDQ4NDIgMDAwMDAgbiAKMDAwMDAwNDg2MyAwMDAwMCBuIAowMDAwMDA0ODg0IDAwMDAwIG4gCjAwMDAwMDAwNjUgMDAwMDAgbiAKMDAwMDAwMDMzOSAwMDAwMCBuIAowMDAwMDAxMDIxIDAwMDAwIG4gCjAwMDAwMDAyMDggMDAwMDAgbiAKMDAwMDAwMTAwMSAwMDAwMCBuIAowMDAwMDA0OTE2IDAwMDAwIG4gCjAwMDAwMDM1NjIgMDAwMDAgbiAKMDAwMDAwMzM1NSAwMDAwMCBuIAowMDAwMDAzMDA5IDAwMDAwIG4gCjAwMDAwMDQ2MTMgMDAwMDAgbiAKMDAwMDAwMTA0MSAwMDAwMCBuIAowMDAwMDAxNTMzIDAwMDAwIG4gCjAwMDAwMDE2OTkgMDAwMDAgbiAKMDAwMDAwMTg4OCAwMDAwMCBuIAowMDAwMDAyMzE5IDAwMDAwIG4gCjAwMDAwMDI2NjEgMDAwMDAgbiAKMDAwMDAwNjMyMiAwMDAwMCBuIAowMDAwMDA2NDAzIDAwMDAwIG4gCnRyYWlsZXIKPDwgL1NpemUgMjYgL1Jvb3QgMSAwIFIgL0luZm8gMjUgMCBSID4+CnN0YXJ0eHJlZgo2NTYwCiUlRU9GCg==\n",
- "image/svg+xml": "\n\n\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "application/pdf": "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IDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAKNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCAyNzggMjc4IDM1NSA1NTYgNTU2Cjg4OSA2NjcgMTkxIDMzMyAzMzMgMzg5IDU4NCAyNzggMzMzIDI3OCAyNzggNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1Ngo1NTYgNTU2IDI3OCAyNzggNTg0IDU4NCA1ODQgNTU2IDEwMTUgNjY3IDY2NyA3MjIgNzIyIDY2NyA2MTEgNzc4IDcyMiAyNzgKNTAwIDY2NyA1NTYgODMzIDcyMiA3NzggNjY3IDc3OCA3MjIgNjY3IDYxMSA3MjIgNjY3IDk0NCA2NjcgNjY3IDYxMSAyNzggMjc4CjI3OCA0NjkgNTU2IDMzMyA1NTYgNTU2IDUwMCA1NTYgNTU2IDI3OCA1NTYgNTU2IDIyMiAyMjIgNTAwIDIyMiA4MzMgNTU2IDU1Ngo1NTYgNTU2IDMzMyA1MDAgMjc4IDU1NiA1MDAgNzIyIDUwMCA1MDAgNTAwIDMzNCAyNjAgMzM0IDU4NCA3NTAgNTU2IDc1MCAyMjIKNTU2IDMzMyAxMDAwIDU1NiA1NTYgMzMzIDEwMDAgNjY3IDMzMyAxMDAwIDc1MCA2MTEgNzUwIDc1MCAyMjIgMjIyIDMzMyAzMzMKMzUwIDU1NiAxMDAwIDMzMyAxMDAwIDUwMCAzMzMgOTQ0IDc1MCA1MDAgNjY3IDI3OCAzMzMgNTU2IDU1NiA1NTYgNTU2IDI2MAo1NTYgMzMzIDczNyAzNzAgNTU2IDU4NCAzMzMgNzM3IDU1MiA0MDAgNTQ5IDMzMyAzMzMgMzMzIDU3NiA1MzcgMzMzIDMzMyAzMzMKMzY1IDU1NiA4MzQgODM0IDgzNCA2MTEgNjY3IDY2NyA2NjcgNjY3IDY2NyA2NjcgMTAwMCA3MjIgNjY3IDY2NyA2NjcgNjY3CjI3OCAyNzggMjc4IDI3OCA3MjIgNzIyIDc3OCA3NzggNzc4IDc3OCA3NzggNTg0IDc3OCA3MjIgNzIyIDcyMiA3MjIgNjY3IDY2Nwo2MTEgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYg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YW0KZW5kb2JqCjI0IDAgb2JqCjEwMDgKZW5kb2JqCjIgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFsgMTEgMCBSIF0gL0NvdW50IDEgPj4KZW5kb2JqCjI1IDAgb2JqCjw8IC9DcmVhdG9yIChNYXRwbG90bGliIHYzLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZykKL1Byb2R1Y2VyIChNYXRwbG90bGliIHBkZiBiYWNrZW5kIHYzLjYuMykKL0NyZWF0aW9uRGF0ZSAoRDoyMDIzMDIwMzE2MDAyNy0wNCcwMCcpID4+CmVuZG9iagp4cmVmCjAgMjYKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE2IDAwMDAwIG4gCjAwMDAwMDYzMzEgMDAwMDAgbiAKMDAwMDAwNDcxMSAwMDAwMCBuIAowMDAwMDA0NzQzIDAwMDAwIG4gCjAwMDAwMDQ4NDIgMDAwMDAgbiAKMDAwMDAwNDg2MyAwMDAwMCBuIAowMDAwMDA0ODg0IDAwMDAwIG4gCjAwMDAwMDAwNjUgMDAwMDAgbiAKMDAwMDAwMDMzOSAwMDAwMCBuIAowMDAwMDAxMDIxIDAwMDAwIG4gCjAwMDAwMDAyMDggMDAwMDAgbiAKMDAwMDAwMTAwMSAwMDAwMCBuIAowMDAwMDA0OTE2IDAwMDAwIG4gCjAwMDAwMDM1NjIgMDAwMDAgbiAKMDAwMDAwMzM1NSAwMDAwMCBuIAowMDAwMDAzMDA5IDAwMDAwIG4gCjAwMDAwMDQ2MTMgMDAwMDAgbiAKMDAwMDAwMTA0MSAwMDAwMCBuIAowMDAwMDAxNTMzIDAwMDAwIG4gCjAwMDAwMDE2OTkgMDAwMDAgbiAKMDAwMDAwMTg4OCAwMDAwMCBuIAowMDAwMDAyMzE5IDAwMDAwIG4gCjAwMDAwMDI2NjEgMDAwMDAgbiAKMDAwMDAwNjMxMCAwMDAwMCBuIAowMDAwMDA2MzkxIDAwMDAwIG4gCnRyYWlsZXIKPDwgL1NpemUgMjYgL1Jvb3QgMSAwIFIgL0luZm8gMjUgMCBSID4+CnN0YXJ0eHJlZgo2NTQ4CiUlRU9GCg==\n",
- "image/svg+xml": "\n\n\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "application/pdf": "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IDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAKNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCA3NTAgNzUwIDc1MCAyNzggMjc4IDM1NSA1NTYgNTU2Cjg4OSA2NjcgMTkxIDMzMyAzMzMgMzg5IDU4NCAyNzggMzMzIDI3OCAyNzggNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1Ngo1NTYgNTU2IDI3OCAyNzggNTg0IDU4NCA1ODQgNTU2IDEwMTUgNjY3IDY2NyA3MjIgNzIyIDY2NyA2MTEgNzc4IDcyMiAyNzgKNTAwIDY2NyA1NTYgODMzIDcyMiA3NzggNjY3IDc3OCA3MjIgNjY3IDYxMSA3MjIgNjY3IDk0NCA2NjcgNjY3IDYxMSAyNzggMjc4CjI3OCA0NjkgNTU2IDMzMyA1NTYgNTU2IDUwMCA1NTYgNTU2IDI3OCA1NTYgNTU2IDIyMiAyMjIgNTAwIDIyMiA4MzMgNTU2IDU1Ngo1NTYgNTU2IDMzMyA1MDAgMjc4IDU1NiA1MDAgNzIyIDUwMCA1MDAgNTAwIDMzNCAyNjAgMzM0IDU4NCA3NTAgNTU2IDc1MCAyMjIKNTU2IDMzMyAxMDAwIDU1NiA1NTYgMzMzIDEwMDAgNjY3IDMzMyAxMDAwIDc1MCA2MTEgNzUwIDc1MCAyMjIgMjIyIDMzMyAzMzMKMzUwIDU1NiAxMDAwIDMzMyAxMDAwIDUwMCAzMzMgOTQ0IDc1MCA1MDAgNjY3IDI3OCAzMzMgNTU2IDU1NiA1NTYgNTU2IDI2MAo1NTYgMzMzIDczNyAzNzAgNTU2IDU4NCAzMzMgNzM3IDU1MiA0MDAgNTQ5IDMzMyAzMzMgMzMzIDU3NiA1MzcgMzMzIDMzMyAzMzMKMzY1IDU1NiA4MzQgODM0IDgzNCA2MTEgNjY3IDY2NyA2NjcgNjY3IDY2NyA2NjcgMTAwMCA3MjIgNjY3IDY2NyA2NjcgNjY3CjI3OCAyNzggMjc4IDI3OCA3MjIgNzIyIDc3OCA3NzggNzc4IDc3OCA3NzggNTg0IDc3OCA3MjIgNzIyIDcyMiA3MjIgNjY3IDY2Nwo2MTEgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYg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dHJlYW0KZW5kb2JqCjI0IDAgb2JqCjEwMDgKZW5kb2JqCjIgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFsgMTEgMCBSIF0gL0NvdW50IDEgPj4KZW5kb2JqCjI1IDAgb2JqCjw8IC9DcmVhdG9yIChNYXRwbG90bGliIHYzLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZykKL1Byb2R1Y2VyIChNYXRwbG90bGliIHBkZiBiYWNrZW5kIHYzLjYuMykKL0NyZWF0aW9uRGF0ZSAoRDoyMDIzMDIwMzE2MDAyNy0wNCcwMCcpID4+CmVuZG9iagp4cmVmCjAgMjYKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE2IDAwMDAwIG4gCjAwMDAwMDYzMzQgMDAwMDAgbiAKMDAwMDAwNDcxMSAwMDAwMCBuIAowMDAwMDA0NzQzIDAwMDAwIG4gCjAwMDAwMDQ4NDIgMDAwMDAgbiAKMDAwMDAwNDg2MyAwMDAwMCBuIAowMDAwMDA0ODg0IDAwMDAwIG4gCjAwMDAwMDAwNjUgMDAwMDAgbiAKMDAwMDAwMDMzOSAwMDAwMCBuIAowMDAwMDAxMDIxIDAwMDAwIG4gCjAwMDAwMDAyMDggMDAwMDAgbiAKMDAwMDAwMTAwMSAwMDAwMCBuIAowMDAwMDA0OTE2IDAwMDAwIG4gCjAwMDAwMDM1NjIgMDAwMDAgbiAKMDAwMDAwMzM1NSAwMDAwMCBuIAowMDAwMDAzMDA5IDAwMDAwIG4gCjAwMDAwMDQ2MTMgMDAwMDAgbiAKMDAwMDAwMTA0MSAwMDAwMCBuIAowMDAwMDAxNTMzIDAwMDAwIG4gCjAwMDAwMDE2OTkgMDAwMDAgbiAKMDAwMDAwMTg4OCAwMDAwMCBuIAowMDAwMDAyMzE5IDAwMDAwIG4gCjAwMDAwMDI2NjEgMDAwMDAgbiAKMDAwMDAwNjMxMyAwMDAwMCBuIAowMDAwMDA2Mzk0IDAwMDAwIG4gCnRyYWlsZXIKPDwgL1NpemUgMjYgL1Jvb3QgMSAwIFIgL0luZm8gMjUgMCBSID4+CnN0YXJ0eHJlZgo2NTUxCiUlRU9GCg==\n",
- "image/svg+xml": "\n\n\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "plt.imshow(mnist_R_wd[0][-1][0])\n",
- "plt.show()\n",
- "plt.imshow(mnist_R_wd[0][-1][1])\n",
- "plt.show()\n",
- "plt.imshow(mnist_R_wd[0][-1][2])\n",
- "plt.show()"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "7faeeb04",
- "metadata": {},
- "source": [
- "just to be explicit, here are the shapes of the levels of the decomposition:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 48,
- "id": "0865eddb",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "level 0: shape [2x2]\n",
- "\t 4 pixels on this level\n",
- "level 1: shape [3x2x2]\n",
- "\t 12 pixels on this level\n",
- "level 2: shape [3x4x4]\n",
- "\t 48 pixels on this level\n",
- "level 3: shape [3x7x7]\n",
- "\t 147 pixels on this level\n",
- "level 4: shape [3x14x14]\n",
- "\t 588 pixels on this level\n",
- "in total: 799 pixels, compared to 784 in the original\n"
- ]
- }
- ],
- "source": [
- "totsize = 0\n",
- "for i, x in enumerate(mnist_R_wd[0]):\n",
- " xs = [str(s) for s in np.array(x).shape]\n",
- " print(\"level \"+str(i)+\": shape [\", end='')\n",
- " levsize = 1\n",
- " for j, s in enumerate(xs):\n",
- " levsize*=int(s)\n",
- " if j10 MLPs, three 16->10 MLPs, three 49->10 MLPs, and three 196->10 MLPs, so we train thirteen MLPs in parallel and we somehow combine those scores (through averaging, voting, random forest, etc.)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "7dd1e95c",
- "metadata": {},
- "outputs": [],
- "source": []
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "wavnn-0mmRVP0f-py3.10",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.5"
- },
- "vscode": {
- "interpreter": {
- "hash": "ececb978da7bceae42fd297c3370609792f3f0f58e6837f67c4a545bb94ff40b"
- }
- }
- },
- "nbformat": 4,
- "nbformat_minor": 5
-}
diff --git a/notebooks/optimizer_mnist.ipynb b/notebooks/optimizer_mnist.ipynb
deleted file mode 100644
index 3c89310..0000000
--- a/notebooks/optimizer_mnist.ipynb
+++ /dev/null
@@ -1,1062 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": 24,
- "metadata": {},
- "outputs": [],
- "source": [
- "import json\n",
- "import math\n",
- "\n",
- "from wavNN.train_model import TrainingLoop\n",
- "from wavNN.models.wavMLP import WavMLP\n",
- "from wavNN.models.vanillaMLP import VanillaMLP, BananaSplitMLP\n",
- "from wavNN.models.wavpool import WavPool\n",
- "from wavNN.data_generators.mnist_generator import *\n",
- "\n",
- "import torch\n",
- "\n",
- "import numpy as np \n",
- "import pandas as pd \n",
- "import matplotlib.pyplot as plt"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {},
- "outputs": [],
- "source": [
- "def select_params(\n",
- " hidden_size,\n",
- " loss_id,\n",
- " level,\n",
- " optimizer_class_id,\n",
- " optimizer_lr,\n",
- " optimizer_momentum_id,\n",
- " ):\n",
- "\n",
- " optimizer_class = (\n",
- " torch.optim.SGD if optimizer_class_id < 0.5 else torch.optim.Adam\n",
- " )\n",
- " loss = torch.nn.CrossEntropyLoss if loss_id < 0.5 else torch.nn.MultiMarginLoss\n",
- "\n",
- " optimizer_config = {\"lr\": optimizer_lr}\n",
- " if optimizer_class == torch.optim.SGD:\n",
- " optimizer_config[\"momentum\"] = optimizer_momentum_id < 0.5\n",
- "\n",
- " model_params = {\n",
- " \"in_channels\": 28,\n",
- " \"hidden_size\": math.ceil(hidden_size),\n",
- " \"level\": math.ceil(level),\n",
- " \"out_channels\": 10,\n",
- " }\n",
- " return {\n",
- " \"opt\":optimizer_class, \n",
- " \"opt_config\":optimizer_config, \n",
- " \"loss\":loss, \n",
- " \"model_params\":model_params\n",
- " }"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 27,
- "metadata": {},
- "outputs": [],
- "source": [
- "def plot_experiment_history(history, history_name): \n",
- "\n",
- " train_loss = torch.tensor([history[i]['train_loss'] for i in history]).detach().numpy()\n",
- " train_loss_std = np.std(train_loss, axis=0)\n",
- " train_loss_mean = np.mean(train_loss, axis=0)\n",
- "\n",
- " val_loss = torch.tensor([history[i]['val_loss'] for i in history]).detach().numpy()\n",
- " val_std = np.std(val_loss, axis=0)\n",
- " val_mean = np.mean(val_loss, axis=0)\n",
- "\n",
- " plt.errorbar(range(len(train_loss_mean)), train_loss_mean, yerr=train_loss_std, label=\"Train\", alpha=.5)\n",
- " plt.errorbar(range(len(train_loss_mean)), val_mean, yerr=val_std, label=\"Validation\", alpha=.5)\n",
- "\n",
- " plt.title(history_name)\n",
- " plt.ylabel(\"Loss\")\n",
- " plt.xlabel(\"Epoch\")\n",
- " plt.legend()\n",
- " plt.show()\n",
- "\n",
- " train_ac = torch.tensor([history[i]['train_accuracy'] for i in history]).detach().numpy()\n",
- " train_ac_std = np.std(train_ac, axis=0)\n",
- " train_ac_mean = np.mean(train_ac, axis=0)\n",
- "\n",
- " val_ac = torch.tensor([history[i]['val_accuracy'] for i in history]).detach().numpy()\n",
- " val_std = np.std(val_ac, axis=0)\n",
- " val_mean = np.mean(val_ac, axis=0)\n",
- "\n",
- " plt.errorbar(range(len(train_ac_mean)), train_ac_mean, yerr=train_ac_std, label=\"Train\", alpha=.5)\n",
- " plt.errorbar(range(len(train_ac_mean)), val_mean, yerr=val_std, label=\"Validation\", alpha=.5)\n",
- "\n",
- " plt.legend()\n",
- " plt.title(history_name)\n",
- " plt.ylabel(\"Accuracy\")\n",
- " plt.xlabel(\"Epoch\")\n",
- " plt.show()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "{'opt': , 'opt_config': {'lr': 0.03637816735909994, 'momentum': False}, 'loss': , 'model_params': {'in_channels': 28, 'hidden_size': 73, 'level': 0, 'out_channels': 10}}\n"
- ]
- }
- ],
- "source": [
- "# Open the params and do the variance test\n",
- "with open(\"../results/optimization/vanilla_baysianopt.json\", 'r') as f: \n",
- " vanilla_params = json.load(f)\n",
- "\n",
- "vanilla_params_guass = pd.DataFrame(vanilla_params).iloc[pd.DataFrame(vanilla_params)['target'].idxmax()]['params']\n",
- "\n",
- "vanilla_params = select_params(\n",
- " hidden_size=vanilla_params_guass['hidden_size'], \n",
- " loss_id=vanilla_params_guass['loss_id'], \n",
- " level=0, \n",
- " optimizer_class_id=vanilla_params_guass['optimizer_class_id'], \n",
- " optimizer_lr=vanilla_params_guass['optimizer_lr'], \n",
- " optimizer_momentum_id=vanilla_params_guass['optimizer_momentum_id']\n",
- ")\n",
- "print(vanilla_params)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 18,
- "metadata": {},
- "outputs": [],
- "source": [
- "all_vanilla_history = {}\n",
- "num_tests = 10\n",
- "\n",
- "data_params = {\"sample_size\": [4000, 2000, 2000], \"split\": True}\n",
- "vanilla_params['model_params'].pop(\"level\")\n",
- "\n",
- "for iteration in range(num_tests): \n",
- "\n",
- " training = TrainingLoop(\n",
- " model_class=VanillaMLP,\n",
- " model_params=vanilla_params[\"model_params\"],\n",
- " data_class=NMISTGenerator,\n",
- " data_params=data_params,\n",
- " optimizer_class=vanilla_params['opt'],\n",
- " optimizer_config=vanilla_params['opt_config'],\n",
- " loss=vanilla_params['loss'],\n",
- " epochs=80,\n",
- " )\n",
- "\n",
- " training()\n",
- " all_vanilla_history[iteration] = training.history"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 33,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHHCAYAAABXx+fLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABYIUlEQVR4nO3dd3wUZeI/8M/sbMum9wKB0ARFEpASg3KCRANyKNhAowYs/PTQr1yOU1BpoqKn56EHJ6dS70SKJ+idJwgRsIBSJBQPkCY1hQDpydb5/bG7k90USNnsZDef9+s1r+zMPDv7jKvJx6eNIEmSBCIiIqJ2RKV0BYiIiIi8jQGIiIiI2h0GICIiImp3GICIiIio3WEAIiIionaHAYiIiIjaHQYgIiIiancYgIiIiKjdYQAiIiKidocBiIh82oQJE5CUlOR2TBAEzJ49W95ftmwZBEHAr7/+6tW6EVHbxQBERC125513wmAwoKysrMEymZmZ0Gq1uHjxohdr1nITJkyAIAgICQlBVVVVnfNHjx6FIAgQBAFvvfWWfHzr1q0QBAGffPLJFa/vfK8gCFCpVEhISMDtt9+OrVu3evpWiMgFAxARtVhmZiaqqqqwbt26es9XVlbis88+w4gRIxAZGenRz/7ggw9w5MgRj16zNrVajcrKSvz73/+uc+6jjz6CXq9v0fVvu+02/OMf/8Dy5cvx5JNPYv/+/bj11lvx5Zdftui6RNQwBiAiarE777wTwcHBWLlyZb3nP/vsM1RUVCAzM9Pjn63RaKDT6Tx+XVc6nQ7Dhw/Hxx9/XOfcypUrMWrUqBZd/5prrsFDDz2Ehx9+GDNnzsSmTZsgSRLmz5/fousSUcMYgIioxQICAnD33XcjJycHhYWFdc6vXLkSwcHBuPnmmzF16lT06dMHQUFBCAkJwciRI7Fv3z638s7uozVr1uDVV19Fx44dodfrMXz4cBw7dsytbH1jgBrjs88+w6hRo5CQkACdTodu3bph7ty5sFqt9ZZ/8MEH8eWXX6K4uFg+tmvXLhw9ehQPPvhgkz//Svr06YOoqCicPHnSo9clohoMQETkEZmZmbBYLFizZo3b8UuXLmHjxo0YO3Ys8vLysH79evz2t7/F22+/jT/+8Y84cOAAbrnlFpw/f77ONV9//XWsW7cOU6dOxfTp0/HDDz94rBVp2bJlCAoKQnZ2Nt555x30798fM2fOxLRp0+otf/fdd0MQBHz66afysZUrV6JXr1644YYbPFInp8uXL+Py5cse7y4kohpqpStARP7h1ltvRXx8PFauXImnn35aPr527VqYzWZkZmaiT58++OWXX6BS1fy/18MPP4xevXph8eLFmDFjhts1q6urkZubC61WCwAIDw/Hs88+i4MHD+L6669vUX1XrlyJgIAAef/JJ5/Ek08+ib/97W945ZVX6nSrBQcH47e//S1WrlyJRx99FDabDatWrcJTTz3VonoA9vssKiqCJEk4efIkXnjhBVitVtx3330tvjYR1Y8tQETkEaIoYvz48dixY4fbdPOVK1ciNjYWw4cPh06nk8OP1WrFxYsXERQUhJ49e+Knn36qc82JEyfK4QcAhgwZAgA4ceJEi+vrGn7KyspQVFSEIUOGoLKyEocPH673PQ8++CC2bt2K/Px8fP3118jPz/dI99fixYsRHR2NmJgYpKam4vvvv0d2djamTJnS4msTUf0YgIjIY5zdU87B0GfPnsW3336L8ePHQxRF2Gw2/OUvf0GPHj2g0+kQFRWF6Oho7N+/HyUlJXWu16lTJ7f98PBwAPYuopb6+eefMXbsWISGhiIkJATR0dF46KGHAKDeugDAHXfcgeDgYKxevRofffQRBg4ciO7du7e4LnfddRc2bdqEzZs348cff0RRURH+/Oc/u7WUEZFnsQuMiDymf//+6NWrFz7++GO88MIL+PjjjyFJkhyMXnvtNcyYMQOPPvoo5s6di4iICKhUKkyZMgU2m63O9URRrPdzJElqUT2Li4txyy23ICQkBC+//DK6desGvV6Pn376Cc8//3y9dQHss8HuvvtuLF++HCdOnHBbbLElOnbsiPT0dI9ci4gahwGIiDwqMzMTM2bMwP79+7Fy5Ur06NEDAwcOBAB88sknGDZsGBYvXuz2nuLiYkRFRXmtjlu3bsXFixfx6aef4je/+Y18vDGzrh588EEsWbIEKpUK48ePb81qElErYvsqEXmUs7Vn5syZyM3NdZu1JYpindabtWvX4ty5c16to7NlybUuJpMJf/vb36763mHDhmHu3LlYsGAB4uLiWq2ORNS62AJERB7VpUsXDB48GJ999hkAuAWg3/72t3j55ZcxceJEDB48GAcOHMBHH32Erl27erWOgwcPRnh4OLKysvB///d/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",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "image/png": "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Whh0qk/OIyIiatRqFAAdPHgQ+/btQ4cOHfD8888jPDwcU6ZMwYEDB267HoPBgLi4OKSlpTnKJElCWloaEhISqnxNcXExNBrnJmu1yoKBsizXqE4AMBqN8PX1dbrVOfv4H70J0OorrAHE7A8REVFdq3GqoXv37njnnXdw8eJFzJs3D//4xz/Qs2dPdO3aFStXroQsy7esIzk5GR988AE+/PBDHDt2DJMmTUJRUREmTJgAABg7dixmzJjhOH7w4MF47733sHbtWpw9exZbt27FnDlzMHjwYEcgdKs6643rxv/kla0CzfE/REREda/Gg6CtVis2btyIVatWYevWrbjrrrvw9NNP4/z585g5cya2bduGNWvW3LSO4cOH4/Lly5g7dy4yMzPRtWtXbN682TGIOSMjwynjM3v2bAiCgNmzZ+PChQsIDg7G4MGD8dprr912nfVGhfE/QMUZYAyAiIiI6pog306qpoIDBw5g1apV+PTTT6HRaDB27Fg888wzaN++veOYo0ePomfPnigpKXF5g90hPz8ffn5+yMvLq7vusDM7gD/2AJFxQNuH8MXBCzhzuQj9OoSgc3P/unlPIiKiRqw61+9qZ4B69uyJBx98EO+99x6GDBkCvb5yxqJly5YYMWJEdatuWm64BhAzQERERHWt2gHQmTNnEB0dfdNjvLy8sGrVqho3qkmoMAZIlmXHNhgcA0RERFT3qj0IOjs7G3v37q1UvnfvXvz8888uaVSTULYPmEXrhcVb0vHdicsQJRk+XAWaiIiozlU7AJo8eXKV6+RcuHABkydPdkmjGj1ZdtoJ3r4AopdRB52WawARERHVtWpfbX/77Td07969Unm3bt3w22+/uaRRjZ6lCJBEQBAAgzfMNhEA9wAjIiJyl2oHQEajsdJKywBw6dIl6HS8gN8We/bH4AVotDDblAwQF0EkIiJyj2oHQA899JBj6wi73NxczJw5Ew8++KBLG9domZ1ngJU6MkAMgIiIiNyh2imbN998E/fccw+io6PRrVs3AMDBgwcRGhqKf/7zny5vYKNkzwCVLYJosdozQMygERERuUO1r7iRkZE4fPgwPvnkExw6dAgmkwkTJkzAyJEjq1wTiKpQ6rwKtE1S1qI06bVqtYiIiKhJqVHKwcvLC88++6yr29J0XLcPmFS2GLdOI6jVIiIioialxn0uv/32GzIy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61mwYAHeeOMNLF68GO+++y5Gjx6NP/74A4GBgS5pZ32negDUlNhE5R8O4x8iIvezijKWbT9V7deJkoyffr/qeFyTrYwm398aBp1rvvxfffVVPPjgg47HgYGB6NKli+PxwoULsXHjRnz55Zc3TQaMHz8eI0eOBAAsWrQI77zzDvbt24f+/fu7pJ31XYOaBt/Q2ZgBIiKiWurRo4fT48LCQkybNg0dOnSAv78/vL29cezYMWRkZNy0ns6dOzvue3l5wdfXF9nZ2XXS5vqIGSA3Kp8GzwCIiMjd9FoBk+9vXe3XVez2eu7eVjDoqp870Ltw9X8vLy+nx9OmTcPWrVvx5ptvonXr1jCZTHj88cdhsVhu3qbrtpQSBMFplnVjxwDIjcSyPywN825ERG4nCEKNu6Hs3V4GnaZGAVBd+uGHHzB+/HgMHToUgJIR+v3339VtVANQvz7FRs5aYSVoIiIiV2jTpg02bNiAgwcP4tChQxg1alSTyuTUFAMgN2rub0JUgCcCPQ1qN4WIiBqJJUuWICAgAL1798bgwYORlJSE7t27q92seo9dYG4U7m9CZIBJ7WYQEVEDMH78eIwfP97x+L777oMsV57GHxMTg2+//dapbPLkyU6Pr+8Sq6qe3NzcGre1IWIGiIiIiJocZoCIiIhuwqDT4KUH26rdDHIxZoCIiIioyWEARERERE0OAyAiIiJqchgAERERUZPDAIiIiIiaHAZARERE1ORwGjwREdHN2CzA928p9+/+M6Djav6NATNAREREjch9992HF1980fE4JiYGqampN32NIAjYtGlTrd/bVfW4AwMgIiKiemLw4MHo379/lc99//33EAQBhw8frladP/30E5599llXNM9h/vz56Nq1a6XyS5cuYcCAAS59r7rCAIiIiKieePrpp7F161acP3++0nOrVq1Cjx490Llz52rVGRwcDE9PT1c18abCwsJgNBrd8l61xQCIiIionnj44YcRHByM1atXO5UXFhZi/fr1GDJkCEaOHInIyEh4enqiU6dO+PTTT29a5/VdYCdPnsQ999wDDw8PdOzYEVu3bq30mldeeQVt27aFp6cnYmNjMWfOHFitVgDA6tWrsWDBAhw6dAiCIEAQBEd7r+8CO3LkCB544AGYTCY0a9YMzz77LAoLCx3Pjx8/HkOGDMGbb76J8PBwNGvWDJMnT3a8V13iIGgiImoaZBkQa3BhFS2AJJbfrwmtHhCEWx6m0+kwduxYrF69GrNmzYJQ9pr169dDFEU8+eSTWL9+PV555RX4+vriq6++wpgxY9CqVSv06tXrlvVLkoTHHnsMoaGh2Lt3L/Ly8pzGC9n5+Phg9erViIiIwJEjRzBx4kT4+Pjg5ZdfxvDhw3H06FFs3rwZ27ZtAwD4+flVqqOoqAhJSUlISEjATz/9hOzsbDzzzDOYMmWKU4C3fft2hIeHY/v27Th16hSGDx+Orl27YuLEibc8n9pgAERERE2DaC2fzVUdkghk7Fbu7wKg0Va/jmrMHnvqqaewePFi7Ny5E/fddx8Apftr2LBhiI6OxrRp0xzHPv/889iyZQs+++yz2wqAtm3bhuPHj2PLli2IiIgAACxatKjSuJ3Zs2c77sfExGDatGlYu3YtXn75ZZhMJnh7e0On0yEsLOyG77VmzRqUlpbio48+gpeXFwBg6dKlGDx4MF5//XWEhoYCAAICArB06VJotVq0b98egwYNQlpaWp0HQOwCIyIiqkfat2+P3r17Y+XKlQCAU6dO4fvvv8fTTz8NURSxcOFCdOrUCYGBgfD29saWLVuQkZFxW3UfO3YMUVFRjuAHABISEiodt27dOvTp0wdhYWHw9vbG7Nmzb/s9Kr5Xly5dHMEPAPTp0weSJCE9Pd1Rdscdd0CrLQ8qw8PDkZ2dXa33qglmgIiIqGnQ6pVMTHWJFiXzAwB9XwS0NVgHSKuv1uFPP/00nn/+eSxbtgyrVq1Cq1atcO+99+L111/H22+/jdTUVHTq1AleXl548cUXYbHUsGuuCnv27MHo0aOxYMECJCUlwc/PD2vXrsVbb9Uge3Yb9Hrn340gCJAkqU7eqyIGQERE1DQIQs0XMbR3e2kNblkI8U9/+hOmTp2KNWvW4KOPPsKkSZMgCAJ++OEHPProo3jyyScBKGN6Tpw4gY4dO95WvR06dMC5c+dw6dIlhIeHAwB+/PFHp2N2796N6OhozJo1y1H2xx9/OB1jMBggiuIt32v16tUoKipyZIF++OEHaDQatGvX7rbaW5fYBUZERFTPeHt7Y/jw4ZgxYwYuXbqE8ePHAwDatGmDrVu3Yvfu3Th27Bj+53/+B1lZWbddb2JiItq2bYtx48bh0KFD+P77750CHft7ZGRkYO3atTh9+jTeeecdbNy40emYmJgYnD17FgcPHkROTg7MZnOl9xo9ejQ8PDwwbtw4HD16FNu3b8fzzz+PMWPGOMb/qIkBkBsZdBq89GBbvPRgWxh0/NUTEdGNPf3007h27RqSkpIcY3Zmz56N7t27IykpCffddx/CwsIwZMiQ265To9Fg48aNKCkpQa9evfDMM8/gtddeczrmkUcewUsvvYQpU6aga9eu2L17N+bMmeN0zLBhw9C/f3/cf//9CA4OrnIqvqenJ7Zs2YKrV6+iZ8+eePzxx9GvXz8sXbq0+r+MOiDIsiyr3Yj6Jj8/H35+fsjLy4Ovr6/azSEiomoqLS3F2bNn0bJlS3h4eNSuMu4FVq/c7LOtzvWbaQgiIiJqcjgImoiI6GZ0BuD+GWq3glysXmSAli1bhpiYGHh4eCA+Ph779u274bGrV692LL1tv12fAhs/fnylY260uRwRERE1PapngNatW4fk5GQsX74c8fHxSE1NRVJSEtLT0xESElLla3x9fZ0WURKqWF68f//+WLVqleNxQ9mcjYiIiOqe6hmgJUuWYOLEiZgwYQI6duyI5cuXw9PT07ECZlUEQUBYWJjjVtV0OqPR6HRMQEBAXZ4GERERNSCqBkAWiwX79+9HYmKio0yj0SAxMRF79uy54esKCwsRHR2NqKgoPProo/j1118rHbNjxw6EhISgXbt2mDRpEq5cuVIn50BERPUXJzo3Pq76TFUNgHJyciCKYqUMTmhoKDIzM6t8Tbt27bBy5Up88cUX+PjjjyFJEnr37o3z5887junfvz8++ugjpKWl4fXXX8fOnTsxYMCAG65aaTabkZ+f73QjIqKGy769QnFxscotIVezf6bXb6FRXaqPAaquhIQEp43bevfujQ4dOuD//b//h4ULFwIARowY4Xi+U6dO6Ny5M1q1aoUdO3agX79+lepMSUnBggUL6r7xRETkFlqtFv7+/o5NNT09PascL0oNhyzLKC4uRnZ2Nvz9/Z02UK0JVQOgoKAgaLXaSst4Z2VlISws7Lbq0Ov16NatG06dOnXDY2JjYxEUFIRTp05VGQDNmDEDycnJjsf5+fmIioq6zbMgIqL6yH4dccfO4uQ+/v7+tx0j3IyqAZDBYEBcXBzS0tIcS3lLkoS0tDRMmTLltuoQRRFHjhzBwIEDb3jM+fPnceXKFcfGb9czGo2cJUZE1MgIgoDw8HCEhITAarWq3RxyAb1eX+vMj53qXWDJyckYN24cevTogV69eiE1NRVFRUWYMGECAGDs2LGIjIxESkoKAODVV1/FXXfdhdatWyM3NxeLFy/GH3/8gWeeeQaAMkB6wYIFGDZsGMLCwnD69Gm8/PLLaN26NZKSklQ7TyIiUodWq3XZRZMaD9UDoOHDh+Py5cuYO3cuMjMz0bVrV2zevNkxMDojIwMaTflY7WvXrmHixInIzMxEQEAA4uLisHv3bnTs2BGA8od++PBhfPjhh8jNzUVERAQeeughLFy4kFkeIiIiAsDNUKvEzVCJiIgaHm6GSkRERHQTqneB1Uf2pBjXAyIiImo47Nft2+ncYgBUhYKCAgDgVHgiIqIGqKCgAH5+fjc9hmOAqiBJEi5evAgfHx+XL5xlX2Po3LlzjXZ8Ec+xceA5Ng48x8aB53h7ZFlGQUEBIiIinCZQVYUZoCpoNBo0b968Tt/D19e30f4R2/EcGweeY+PAc2wceI63dqvMjx0HQRMREVGTwwCIiIiImhwGQG5mNBoxb968Rr0oI8+xceA5Ng48x8aB5+h6HARNRERETQ4zQERERNTkMAAiIiKiJocBEBERETU5DICIiIioyWEA5EbLli1DTEwMPDw8EB8fj3379qndpBr77rvvMHjwYEREREAQBGzatMnpeVmWMXfuXISHh8NkMiExMREnT55Up7E1lJKSgp49e8LHxwchISEYMmQI0tPTnY4pLS3F5MmT0axZM3h7e2PYsGHIyspSqcXV995776Fz586OhccSEhLwzTffOJ5v6OdXlb/+9a8QBAEvvviio6yhn+f8+fMhCILTrX379o7nG/r52V24cAFPPvkkmjVrBpPJhE6dOuHnn392PN/Qv3diYmIqfY6CIGDy5MkAGsfnKIoi5syZg5YtW8JkMqFVq1ZYuHCh095dbvscZXKLtWvXygaDQV65cqX866+/yhMnTpT9/f3lrKwstZtWI19//bU8a9YsecOGDTIAeePGjU7P//Wvf5X9/PzkTZs2yYcOHZIfeeQRuWXLlnJJSYk6Da6BpKQkedWqVfLRo0flgwcPygMHDpRbtGghFxYWOo557rnn5KioKDktLU3++eef5bvuukvu3bu3iq2uni+//FL+6quv5BMnTsjp6enyzJkzZb1eLx89elSW5YZ/ftfbt2+fHBMTI3fu3FmeOnWqo7yhn+e8efPkO+64Q7506ZLjdvnyZcfzDf38ZFmWr169KkdHR8vjx4+X9+7dK585c0besmWLfOrUKccxDf17Jzs72+kz3Lp1qwxA3r59uyzLjeNzfO211+RmzZrJ//nPf+SzZ8/K69evl729veW3337bcYy7PkcGQG7Sq1cvefLkyY7HoijKERERckpKioqtco3rAyBJkuSwsDB58eLFjrLc3FzZaDTKn376qQotdI3s7GwZgLxz505ZlpVz0uv18vr16x3HHDt2TAYg79mzR61m1lpAQID8j3/8o9GdX0FBgdymTRt569at8r333usIgBrDec6bN0/u0qVLlc81hvOTZVl+5ZVX5L59+97w+cb4vTN16lS5VatWsiRJjeZzHDRokPzUU085lT322GPy6NGjZVl27+fILjA3sFgs2L9/PxITEx1lGo0GiYmJ2LNnj4otqxtnz55FZmam0/n6+fkhPj6+QZ9vXl4eACAwMBAAsH//flitVqfzbN++PVq0aNEgz1MURaxduxZFRUVISEhodOc3efJkDBo0yOl8gMbzOZ48eRIRERGIjY3F6NGjkZGRAaDxnN+XX36JHj164IknnkBISAi6deuGDz74wPF8Y/vesVgs+Pjjj/HUU09BEIRG8zn27t0baWlpOHHiBADg0KFD2LVrFwYMGADAvZ8jN0N1g5ycHIiiiNDQUKfy0NBQHD9+XKVW1Z3MzEwAqPJ87c81NJIk4cUXX0SfPn1w5513AlDO02AwwN/f3+nYhnaeR44cQUJCAkpLS+Ht7Y2NGzeiY8eOOHjwYKM4PwBYu3YtDhw4gJ9++qnSc43hc4yPj8fq1avRrl07XLp0CQsWLMDdd9+No0ePNorzA4AzZ87gvffeQ3JyMmbOnImffvoJL7zwAgwGA8aNG9fovnc2bdqE3NxcjB8/HkDj+DsFgOnTpyM/Px/t27eHVquFKIp47bXXMHr0aADuvX4wACK6DZMnT8bRo0exa9cutZvicu3atcPBgweRl5eHzz//HOPGjcPOnTvVbpbLnDt3DlOnTsXWrVvh4eGhdnPqhP1/zwDQuXNnxMfHIzo6Gp999hlMJpOKLXMdSZLQo0cPLFq0CADQrVs3HD16FMuXL8e4ceNUbp3rrVixAgMGDEBERITaTXGpzz77DJ988gnWrFmDO+64AwcPHsSLL76IiIgIt3+O7AJzg6CgIGi12kqj9bOyshAWFqZSq+qO/Zway/lOmTIF//nPf7B9+3Y0b97cUR4WFgaLxYLc3Fyn4xvaeRoMBrRu3RpxcXFISUlBly5d8Pbbbzea89u/fz+ys7PRvXt36HQ66HQ67Ny5E++88w50Oh1CQ0MbxXlW5O/vj7Zt2+LUqVON5nMMDw9Hx44dnco6dOjg6OprTN87f/zxB7Zt24ZnnnnGUdZYPsf/+7//w/Tp0zFixAh06tQJY8aMwUsvvYSUlBQA7v0cGQC5gcFgQFxcHNLS0hxlkiQhLS0NCQkJKrasbrRs2RJhYWFO55ufn4+9e/c2qPOVZRlTpkzBxo0b8e2336Jly5ZOz8fFxUGv1zudZ3p6OjIyMhrUeV5PkiSYzeZGc379+vXDkSNHcPDgQcetR48eGD16tON+YzjPigoLC3H69GmEh4c3ms+xT58+lZahOHHiBKKjowE0nu8dAFi1ahVCQkIwaNAgR1lj+RyLi4uh0TiHHlqtFpIkAXDz5+jSIdV0Q2vXrpWNRqO8evVq+bfffpOfffZZ2d/fX87MzFS7aTVSUFAg//LLL/Ivv/wiA5CXLFki//LLL/Iff/why7IyjdHf31/+4osv5MOHD8uPPvpog5qOKsuyPGnSJNnPz0/esWOH09TU4uJixzHPPfec3KJFC/nbb7+Vf/75ZzkhIUFOSEhQsdXVM336dHnnzp3y2bNn5cOHD8vTp0+XBUGQ//vf/8qy3PDP70YqzgKT5YZ/nn/+85/lHTt2yGfPnpV/+OEHOTExUQ4KCpKzs7NlWW745yfLyhIGOp1Ofu211+STJ0/Kn3zyiezp6Sl//PHHjmMaw/eOKIpyixYt5FdeeaXSc43hcxw3bpwcGRnpmAa/YcMGOSgoSH755Zcdx7jrc2QA5Ebvvvuu3KJFC9lgMMi9evWSf/zxR7WbVGPbt2+XAVS6jRs3TpZlZSrjnDlz5NDQUNloNMr9+vWT09PT1W10NVV1fgDkVatWOY4pKSmR//d//1cOCAiQPT095aFDh8qXLl1Sr9HV9NRTT8nR0dGywWCQg4OD5X79+jmCH1lu+Od3I9cHQA39PIcPHy6Hh4fLBoNBjoyMlIcPH+60Pk5DPz+7f//73/Kdd94pG41GuX379vL777/v9Hxj+N7ZsmWLDKDKdjeGzzE/P1+eOnWq3KJFC9nDw0OOjY2VZ82aJZvNZscx7vocBVmusPwiERERURPAMUBERETU5DAAIiIioiaHARARERE1OQyAiIiIqMlhAERERERNDgMgIiIianIYABEREVGTwwCIiOg2CIKATZs2qd0MInIRBkBEVO+NHz8egiBUuvXv31/tphFRA6VTuwFERLejf//+WLVqlVOZ0WhUqTVE1NAxA0REDYLRaERYWJjTLSAgAIDSPfXee+9hwIABMJlMiI2Nxeeff+70+iNHjuCBBx6AyWRCs2bN8Oyzz6KwsNDpmJUrV+KOO+6A0WhEeHg4pkyZ4vR8Tk4Ohg4dCk9PT7Rp0wZffvll3Z40EdUZBkBE1CjMmTMHw4YNw6FDhzB69GiMGDECx44dAwAUFRUhKSkJAQEB+Omnn7B+/Xps27bNKcB57733MHnyZDz77LM4cuQIvvzyS7Ru3drpPRYsWIA//elPOHz4MAYOHIjRo0fj6tWrbj1PInIRl2+vSkTkYuPGjZO1Wq3s5eXldHvttddkWZZlAPJzzz3n9Jr4+Hh50qRJsizL8vvvvy8HBATIhYWFjue/+uorWaPRyJmZmbIsy3JERIQ8a9asG7YBgDx79mzH48LCQhmA/M0337jsPInIfTgGiIgahPvvvx/vvfeeU1lgYKDjfkJCgtNzCQkJOHjwIADg2LFj6NKlC7y8vBzP9+nTB5IkIT09HYIg4OLFi+jXr99N29C5c2fHfS8vL/j6+iI7O7ump0REKmIAREQNgpeXV6UuKVcxmUy3dZxer3d6LAgCJEmqiyYRUR3jGCAiahR+/PHHSo87dOgAAOjQoQMOHTqEoqIix/M//PADNBoN2rVrBx8fH8TExCAtLc2tbSYi9TADREQNgtlsRmZmplOZTqdDUFAQAGD9+vXo0aMH+vbti08++QT79u3DihUrAACjR4/GvHnzMG7cOMyfPx+XL1/G888/jzFjxiA0NBQAMH/+fDz33HMICQnBgAEDUFBQgB9++AHPP/+8e0+UiNyCARARNQibN29GeHi4U1m7du1w/PhxAMoMrbVr1+J///d/ER4ejk8//RQdO3YEAHh6emLLli2YOnUqevbsCU9PTwwbNgxLlixx1DVu3DiUlpbib3/7G6ZNm4agoCA8/vjj7jtBInIrQZZlWe1GEBHVhiAI2LhxI4YMGaJ2U4iogeAYICIiImpyGAARERFRk8MxQETU4LEnn4iqixkgIiIianIYABEREVGTwwCIiIiImhwGQERERNTkMAAiIiKiJocBEBERETU5DICIiIioyWEARERERE0OAyAiIiJqcv4/37hwjiRlLIEAAAAASUVORK5CYII=",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "plot_experiment_history(all_vanilla_history, \"VanillaMLP\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "{'opt': , 'opt_config': {'lr': 0.016983872126037327, 'momentum': False}, 'loss': , 'model_params': {'in_channels': 28, 'hidden_size': 659, 'level': 3, 'out_channels': 10}}\n"
- ]
- }
- ],
- "source": [
- "with open(\"../results/optimization/wavmlp_baysianopt.json\", 'r') as f: \n",
- " wav_params = json.load(f)\n",
- "\n",
- "wav_params_guass = pd.DataFrame(wav_params).iloc[pd.DataFrame(wav_params)['target'].idxmax()]['params']\n",
- "\n",
- "wav_params = select_params(\n",
- " hidden_size=wav_params_guass['hidden_size'], \n",
- " loss_id=wav_params_guass['loss_id'], \n",
- " level=wav_params_guass['level'], \n",
- " optimizer_class_id=wav_params_guass['optimizer_class_id'], \n",
- " optimizer_lr=wav_params_guass['optimizer_lr'], \n",
- " optimizer_momentum_id=wav_params_guass['optimizer_momentum_id']\n",
- ")\n",
- "print(wav_params)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 34,
- "metadata": {},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "/Users/maggiev-local/repo/wavNN/wavNN/models/wavelet_layer.py:13: UserWarning: Creating a tensor from a list of numpy.ndarrays is extremely slow. Please consider converting the list to a single numpy.ndarray with numpy.array() before converting to a tensor. (Triggered internally at /Users/runner/work/pytorch/pytorch/pytorch/torch/csrc/utils/tensor_new.cpp:233.)\n",
- " \"pywt\": lambda x: torch.Tensor(pywt.wavedec2(x, \"db1\")[level]),\n"
- ]
- }
- ],
- "source": [
- "all_wavNN_history = {}\n",
- "num_tests = 10\n",
- "\n",
- "\n",
- "data_params = {\"sample_size\": [4000, 2000, 2000], \"split\": True}\n",
- "\n",
- "for iteration in range(num_tests): \n",
- "\n",
- " training = TrainingLoop(\n",
- " model_class=WavMLP,\n",
- " model_params=wav_params[\"model_params\"],\n",
- " data_class=NMISTGenerator,\n",
- " data_params=data_params,\n",
- " optimizer_class=wav_params['opt'],\n",
- " optimizer_config=wav_params['opt_config'],\n",
- " loss=wav_params['loss'],\n",
- " epochs=80,\n",
- " )\n",
- "\n",
- " training()\n",
- " all_wavNN_history[iteration] = training.history"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 35,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "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6gupoeBdnc5Tc+Pi1NhERKHB5QC+fkV+ftlvAZ1B3fKQX7Dmxo+8Q8EdLjZLERGR/11xxRV4+OGHldeZmZl49dVX23yPIAhYv379RX+2v64TDAw3fqRM4seaGyIiOkd+fj6uvfbaVo99/fXXEAQBP/74Y4euuXPnTtxzzz3+KJ7i+eefx4gRI1rsLy0tRV5enl8/K1AYbvyoqUMxww0REfn69a9/jY0bN+LEiRMtji1btgxjxozB8OHDO3TNxMREmM1mfxWxTSkpKUFbzuhiMdz4kTJDMZuliIjoHD//+c+RmJjYYg63uro6rF27FjfccANuu+02pKenw2w2Y9iwYXj//ffbvOa5zVKHDx/Gz372M5hMJgwZMgQbN25s8Z4nnngCAwYMgNlsRp8+ffDMM8/A6XQCkOeXW7hwIfbs2QNBECAIglLec5ul9u7diyuvvBIRERFISEjAPffcg7q6OuX4HXfcgRtuuAF/+tOfkJqaioSEBDzwwAPKZwUSOxT7kbdZyslmKSKi4JIkwN2JX5puByC6m553hlYPCMIFT9PpdJg1axaWL1+OBQsWQPC8Z+3atXC73fjVr36FtWvX4oknnkBMTAw++eQT3H777ejbty/GjRt3weuLooibbroJycnJ+O6772C1Wn3653hFR0dj+fLlSEtLw969e3H33XcjOjoajz/+OKZPn459+/bhs88+w+effw4AsFgsLa5hs9kwZcoU5OTkYOfOnaioqMBdd92FBx980Ce8bd68Gampqdi8eTOOHDmC6dOnY8SIEbj77rsveD8Xg+HGj5RmKRfDDRFRULmdTaOeOkJ0A8XfyM+3AtBoO36NDoyymjNnDl5++WV89dVXuOKKKwDITVI333wzevfujccee0w5d+7cudiwYQPWrFnTrnDz+eef48CBA9iwYYOy3uJLL73Uop/M008/rTzPzMzEY489hlWrVuHxxx9HREQEoqKioNPpkJKSct7PWrlyJRobG/Hee+8hMjISAPD6668jPz8ff/zjH5GcnAwAiIuLw+uvvw6tVotBgwZh2rRp2LRpU8DDDZul/EivdChmsxQREbU0aNAgTJgwAe+88w4A4MiRI/j666/x61//Gm63Gy+88AKGDRuG+Ph4REVFYcOGDT5rLLZl//79yMjI8FlIOicnp8V5q1evRm5uLlJSUhAVFYWnn3663Z/R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tE779NNPpQULFkgffvihBEBat26dz/E//OEPksVikdavXy/t2bNHuu6666SsrCypoaFBnQJ30JQpU6Rly5ZJ+/btkwoKCqSpU6dKvXr1kurq6pRz7r33XikjI0PatGmTtGvXLunSSy+VJkyYoGKpO+ajjz6SPvnkE+nQoUPSwYMHpaeeekrS6/XSvn37JEkK/fs7144dO6TMzExp+PDh0rx585T94XCfzz33nDR06FCptLRU2U6fPq0cD4d7rKqqknr37i3dcccd0nfffScVFhZKGzZskI4cOaKcE+o/dyoqKny+w40bN0oApM2bN0uSFB7f44svviglJCRI//rXv6SioiJp7dq1UlRUlPSXv/xFOScY3yPDjR+MGzdOeuCBB5TXbrdbSktLkxYtWqRiqfzn3HAjiqKUkpIivfzyy8q+6upqyWg0Su+//74KJbx4FRUVEgDpq6++kiRJvh+9Xi+tXbtWOWf//v0SAGn79u1qFfOixcXFSW+99VbY3V9tba3Uv39/aePGjdLll1+uhJtwuc/nnntOys7ObvVYuNzjE088IU2cOPG8x8Px5868efOkvn37SqIohs33OG3aNGnOnDk++2666SZp5syZkiQF73tks9RFcjgc+P777zF58mRln0ajweTJk7F9+3YVSxY4RUVFKCsr87lni8WC8ePHh+w9W61WAEB8fDwA4Pvvv4fT6fS5x0GDBqFXr14heY9utxurVq2CzWZDTk5O2N3fAw88gGnTpvncDxBe3+Phw4eRlpaGPn36YObMmSguLgYQPvf40UcfYcyYMfjFL36BpKQkjBw5En//+9+V4+H2c8fhcOAf//gH5syZA0EQwuZ7nDBhAjZt2oRDhw4BAPbs2YOtW7ciLy8PQPC+x263cKa/VVZWwu12Izk52Wd/cnIyDhw4oFKpAqusrAwAWr1n77FQIooiHn74YeTm5uKSSy4BIN+jwWBAbGysz7mhdo979+5FTk4OGhsbERUVhXXr1mHIkCEoKCgIi/sDgFWrVuGHH37Azp07WxwLl+9x/PjxWL58OQYOHIjS0lIsXLgQl112Gfbt2xc291hYWIilS5fi0UcfxVNPPYWdO3fioYcegsFgwOzZs8Pu58769etRXV2NO+64A0D4/F198sknUVNTg0GDBkGr1cLtduPFF1/EzJkzAQTv9wfDDXV7DzzwAPbt24etW7eqXRS/GzhwIAoKCmC1WvHBBx9g9uzZ+Oqrr9Qult+UlJRg3rx52LhxI0wmk9rFCRjv/3oBYPjw4Rg/fjx69+6NNWvWICIiQsWS+Y8oihgzZgxeeuklAMDIkSOxb98+vPHGG5g9e7bKpfO/t99+G3l5eUhLS1O7KH61Zs0arFixAitXrsTQoUNRUFCAhx9+GGlpaUH9HtksdZF69OgBrVbbokd7eXk5UlJSVCpVYHnvKxzu+cEHH8S//vUvbN68GT179lT2p6SkwOFwoLq62uf8ULtHg8GAfv36YfTo0Vi0aBGys7Pxl7/8JWzu7/vvv0dFRQVGjRoFnU4HnU6Hr776Cq+99hp0Oh2Sk5PD4j7PFRsbiwEDBuDIkSNh812mpqZiyJAhPvsGDx6sNL+F08+d48eP4/PPP8ddd92l7AuX7/F3v/sdnnzySfzyl7/EsGHDcPvtt+ORRx7BokWLAATve2S4uUgGgwGjR4/Gpk2blH2iKGLTpk3IyclRsWSBk5WVhZSUFJ97rqmpwXfffRcy9yxJEh588EGsW7cOX3zxBbKysnyOjx49Gnq93uceDx48iOLi4pC5x9aIogi73R4293fVVVdh7969KCgoULYxY8Zg5syZyvNwuM9z1dXV4ejRo0hNTQ2b7zI3N7fFdAyHDh1C7969AYTHzx2vZcuWISkpCdOmTVP2hcv3WF9fD43GN1potVqIogggiN+j37omd2OrVq2SjEajtHz5cumnn36S7rnnHik2NlYqKytTu2idVltbK+3evVvavXu3BEBavHixtHv3bun48eOSJMlD+WJjY6V//vOf0o8//ihdf/31ITUk87777pMsFov05Zdf+gzNrK+vV8659957pV69eklffPGFtGvXLiknJ0fKyclRsdQd8+STT0pfffWVVFRUJP3444/Sk08+KQmCIP3nP/+RJCn07+98mo+WkqTwuM/f/va30pdffikVFRVJ27ZtkyZPniz16NFDqqiokCQpPO5xx44dkk6nk1588UXp8OHD0ooVKySz2Sz94x//UM4J9Z87kiSPpu3Vq5f0xBNPtDgWDt/j7NmzpfT0dGUo+Icffij16NFDevzxx5VzgvE9Mtz4yV//+lepV69eksFgkMaNGyd9++23ahfpomzevFkC0GKbPXu2JEnycL5nnnlGSk5OloxGo3TVVVdJBw8eVLfQHdDavQGQli1bppzT0NAg3X///VJcXJxkNpulG2+8USotLVWv0B00Z84cqXfv3pLBYJASExOlq666Sgk2khT693c+54abcLjP6dOnS6mpqZLBYJDS09Ol6dOn+8z/Eg73KEmS9PHHH0uXXHKJZDQapUGDBklvvvmmz/FQ/7kjSZK0YcMGCUCr5Q6H77GmpkaaN2+e1KtXL8lkMkl9+vSRFixYINntduWcYHyPgiQ1mzaQiIiIKMSxzw0RERGFFYYbIiIiCisMN0RERBRWGG6IiIgorDDcEBERUVhhuCEiIqKwwnBDREREYYXhhogIgCAIWL9+vdrFICI/YLghItXdcccdEAShxXbttdeqXTQiCkE6tQtARAQA1157LZYtW+azz2g0qlQaIgplrLkhoi7BaDQiJSXFZ4uLiwMgNxktXboUeXl5iIiIQJ8+ffDBBx/4vH/v3r248sorERERgYSEBNxzzz2oq6vzOeedd97B0KFDYTQakZqaigcffNDneGVlJW688UaYzWb0798fH330UWBvmogCguGGiELCM888g5tvvhl79uzBzJkz8ctf/hL79+8HANhsNkyZMgVxcXHYuXMn1q5di88//9wnvCxduhQPPPAA7rnnHuzduxcfffQR+vXr5/MZCxcuxK233ooff/wRU6dOxcyZM1FVVRXU+yQiP/DrMpxERJ0we/ZsSavVSpGRkT7biy++KEmSvIr7vffe6/Oe8ePHS/fdd58kSZL05ptvSnFxcVJdXZ1y/JNPPpE0Go1UVlYmSZIkpaWlSQsWLDhvGQBITz/9tPK6rq5OAiD9+9//9tt9ElFwsM8NEXUJkyZNwtKlS332xcfHK89zcnJ8juXk5KCgoAAAsH//fmRnZyMyMlI5npubC1EUcfDgQQiCgFOnTuGqq65qswzDhw9XnkdGRiImJgYVFRWdvSUiUgnDDRF1CZGRkS2aifwlIiKiXefp9Xqf14IgQBTFQBSJiAKIfW6IKCR8++23LV4PHjwYADB48GDs2bMHNptNOb5t2zZoNBoMHDgQ0dHRyMzMxKZNm4JaZiJSB2tuiKhLsNvtKCsr89mn0+nQo0cPAMDatWsxZswYTJw4EStWrMCOHTvw9ttvAwBmzpyJ5557DrNnz8bzzz+P06dPY+7cubj99tuRnJwMAHj++edx7733IikpCXl5eaitrcW2bdswd+7c4N4oEQUcww0RdQmfffYZUlNTffYNHDgQBw4cACCPZFq1ahXuv/9+pKam4v3338eQIUMAAGazGRs2bMC8efMwduxYmM1m3HzzzVi8eLFyrdmzZ6OxsRF//vOf8dhjj6FHjx645ZZbgneDRBQ0giRJktqFICJqiyAIWLduHW644Qa1i0JEIYB9boiIiCisMNwQERFRWGGfGyLq8th6TkQdwZobIiIiCisMN0RERBRWGG6IiIgorDDcEBERUVhhuCEiIqKwwnBDREREYYXhhoiIiMIKww0RERGFFYYbIiIiCiv/P6GNeS4BZGKNAAAAAElFTkSuQmCC",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHHCAYAAABXx+fLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABoZElEQVR4nO3dd3hUZcI28PtMTSa9F0gh9BJAKTGAlbiIiGJFRJqdBUVZ3xVUBNYVXAvLqqy8uoLuWii+4scuLohRLEhRkKYQqiSQTkgmmSTTzvP9cWYmDAlIwmQOydy/65qLyTNnzjwng5zbp0pCCAEiIiKiAKJRuwJERERE/sYARERERAGHAYiIiIgCDgMQERERBRwGICIiIgo4DEBEREQUcBiAiIiIKOAwABEREVHAYQAiIiKigMMARERERAGHAYiI/GbVqlWQJAlr1qxp9Fq/fv0gSRK++uqrRq+lpqZiyJAhPq9Peno6JElCTk5Ok6+//fbbkCQJkiThxx9/9JTPmzcPkiShvLz8nOfetGmT572SJEGv1yMjIwMTJ07E0aNHfX4tRNQ8DEBE5DfDhg0DAHz33Xde5WazGfv27YNOp8PmzZu9XisoKEBBQYHnvb4WFBSEr776CsXFxY1e++CDDxAUFHRR53/sscfwr3/9C2+99RZGjRqFlStXYtCgQSgsLLyo8xLRxWEAIiK/SU5ORqdOnRoFoC1btkAIgTvvvLPRa+6fWysADR06FKGhoVi5cqVX+YkTJ/Dtt99i1KhRF3X+K6+8Evfeey+mTJmC119/Ha+88goqKirw3nvvXdR5iejiMAARkV8NGzYMP/30E+rq6jxlmzdvRu/evTFy5Ehs3boVsix7vSZJEoYOHYrly5fjuuuuQ3x8PIxGI3r16oU333zT6/w33XQTMjIymvzs7OxsDBw40KssKCgIt912Gz788EOv8o8++ghRUVEYMWLExV6yl+uuuw4AcOzYMZ+el4iahwGIiPxq2LBhsNvt2LZtm6ds8+bNGDJkCIYMGYKqqirs27fP67UePXogJiYGb775JtLS0vD000/j1VdfRUpKCn7/+99jyZIlnuPHjh2LY8eO4YcffvD63OPHj2Pr1q24++67G9Xpnnvuwfbt23HkyBFP2Ycffog77rgDer3el5fv+YyYmBifnpeImocBiIj86uxxQA6HA9u2bcPQoUPRuXNnJCQkeF6rrq7G3r17Pe/5+uuvsXz5cjz++OOYPn06NmzYgBEjRmDRokWe899yyy0wGo2NurTcA7DvuuuuRnW67rrrkJiYiI8++ggAsH//fuzatQv33HPPRV9vdXU1ysvLUVRUhM8++wwzZsyAJEm4/fbbL/rcRNRyDEBE5Fc9e/ZETEyMJ+Ts3r0bFovFM8tryJAhnoHQW7ZsgdPp9ASg4OBgz3mqqqpQXl6Oq6++GkePHkVVVRUAIDw8HCNHjsSqVasghPAcv3LlSlxxxRVITU1tVCetVou77rrLE4A++OADpKSk4Morr7zo673vvvsQFxeH5ORkjBo1ChaLBe+9916jrjgi8i8GICLyK0mSMGTIEM9Yn82bNyM+Ph5dunQB4B2A3H+6A9DmzZuRk5ODkJAQREZGIi4uDk8//TQAeAIQoHSDFRQUYMuWLQCUbqcdO3Zg7Nix56zXPffcg19++QW7d+/Ghx9+iLvvvhuSJF309T733HPYuHEjvvzyS+zZsweFhYWYMGHCRZ+XiC4OAxAR+d2wYcNQVVWFvXv3esb/uA0ZMgTHjx/HyZMn8d133yE5ORkZGRk4cuQIhg8fjvLycixatAjr1q3Dxo0b8cQTTwCA18Dp0aNHw2QyYdWqVQCU7i+NRoM777zznHXKyspC586d8fjjj+PYsWM+6f4CgMzMTOTk5ODaa69FZmYmdDqdT85LRBeHAYiI/O7McUCbN2/G0KFDPa8NGDAARqMRmzZt8owNAoB///vfsFqtWLt2LR5++GHceOONyMnJ8eoWcwsJCcFNN92E1atXQ5ZlrFy5EldeeSWSk5PPW69x48Zh06ZN6NmzJ/r37++7CyaiSw7/V4SI/G7gwIEICgrCBx98gJMnT3q1ABmNRlx++eVYsmQJLBaLJyxptVoA8BrXU1VVheXLlzf5GWPHjsWqVavwj3/8A7t378bf//7336zXAw88AK1Wi6ysrIu5PCJqAxiAiMjvDAYDBg0ahG+//RZGoxEDBgzwen3IkCF49dVXATS0Fv3ud7+DwWDA6NGj8fDDD6OmpgZvv/024uPjUVRU1OgzbrzxRoSFheHJJ5+EVqu9oFlXaWlpmDdv3gVfx6JFi2AymbzKNBqNZ1wSEV26GICISBXDhg3Dt99+6+nyOtPQoUPx6quvIiwsDP369QMAdO/eHR9//DGeffZZPPnkk0hMTMTUqVMRFxeH++67r9H5g4KCcPPNN+ODDz5ATk4O4uPjfX4NCxcubFSm1WoZgIjaAEmc2Z5MREREFAA4CJqIiIgCDgMQERERBRwGICIiIgo4DEBEREQUcBiAiIiIKOAwABEREVHA4TpATZBlGYWFhQgLC/PJZohERETU+oQQqK6uRnJyMjSa87fxMAA1obCwECkpKWpXg4iIiFqgoKAAHTt2PO8xDEBNCAsLA6D8AsPDw1WuDREREV0Is9mMlJQUz338fBiAmuDu9goPD2cAIiIiamMuZPgKB0ETERFRwGEAIiIiooDDAEREREQBh2OALoLT6YTdble7GuQDer0eWq1W7WoQEZGfMAC1gBACxcXFqKysVLsq5EORkZFITEzk2k9ERAGAAagF3OEnPj4eJpOJN8w2TgiB2tpalJaWAgCSkpJUrhEREbU2BqBmcjqdnvATExOjdnXIR4KDgwEApaWliI+PZ3cYEVE7x0HQzeQe82MymVSuCfma+zvluC4iovaPAaiF2O3V/vA7JSIKHOwCU4nNIWPJV4cBANOu7QKDjlmUiIjIX3jXpRZLT0/H4sWL1a4GERFRszEABQBJks77mDdvXovO+8MPP+Chhx7ybWWJiIj8gF1gAaCoqMjzfOXKlXjuueeQl5fnKQsNDfU8F0LA6XRCp/vtvxpxcXG+rSgREZGfsAUoACQmJnoeERERkCTJ8/OBAwcQFhaG//73vxgwYACMRiO+++47HDlyBLfccgsSEhIQGhqKQYMG4YsvvvA679ldYJIk4R//+AduvfVWmEwmdO3aFWvXrvXz1RIREf02tgD5gBACdqdo1ntsDhlOWXiet4ReK/ls5tKsWbPwyiuvICMjA1FRUSgoKMCNN96IF154AUajEf/85z8xevRo5OXlITU19ZznmT9/Pl566SW8/PLLeP311zF+/HgcP34c0dHRPqknERGpSwgBhyzgcArYZRkOp4DDKcMhC8hCQAhAFgJWu4z3tx6HQxa4qW8S7LKAuc6Of+8uhM0pY/q1XTAwXb17AwOQD9idwjOj60I5ZYEffq3w/KzVND/IKLPHfBOA/vSnP+H666/3/BwdHY1+/fp5fn7++eexZs0arF27FtOnTz/neSZPnoxx48YBABYsWIDXXnsN27dvxw033OCTehIR0YWTZYE6uxPmOjve+uYoHLLA7QM6AlD+57vW5sAnO09CFgIjeidCAHDKMuptMr7YXwKnEBjWJRZCAFaHE5sPn4IsBAalR3vuW2fez84uzyupBgB8f+QUtBoJTlmgqk5Za839p1oYgAgAMHDgQK+fa2pqMG/ePKxbtw5FRUVwOByoq6tDfn7+ec/Tt29fz/OQkBCEh4d7tpggIqIGQgjIArA7ZdidMmptTrz9zVE4hcD4wamABNgcArU2B1b+UABZCNzcrwM0GiVcWO0y/r2nELIQyOmZAEA5V71dxpcHSuFwyrgsNcoTPH4pMgMAvvilxCuklJjrAQB5xdVe5TVWBwCgstbuOYcsvHs7dBoJeq0Eg04DCUBUiAEGrQRIEoQsEGrUQaeR0CMpDBHBeui1GlRYbNBrJfTrGOmH3/K5MQD5gF4rYdq1XZr1njO7vR65unOL1gHSa323cF9ISIjXz08++SQ2btyIV155BV26dEFwcDDuuOMO2Gy289dJr/f6WZIkyHLLuviIiNQkhIBTFrA5ZVjtMmxOGTaHjBqrA//achyyELj98o7QaIB6m4z/23kCshC4MTMJkqQEBqvDif/uLYYsBK7sGgcBAZtDRp3Nic2HyyHQ0GrilAX2nqwCAHy6q9ArjORX1AIAfvi1wqu8rNoKADhaZvEqr7c7PdchSUCwQYtgvRZarYS0GBOCDVoYtBpIkoTCyjpoJAlXdYtFkF6rnEcA5jo7NBoJdwzoCJNBKX/wqgxX6NFAp5GgcX3mufoFJg5Jb1R2RcalsY0UA5APSJLUoq4o919Wg05zyS2EuHnzZkyePBm33norAKVF6Ndff1W3UkQU0NyBxOF+uMaduMtkVwuF0lKhjEOxO11jVGQldPzfzpOQZYGRmYkAJMhCCQsb9hXD6Qop7tBTZ3Ni69FTABp37RwpqwEAfH2wzBNeTlbWAQD2nKjyOvZ0rfI/jiXmeq/yM9tSNJIEnU6CQauBRiMhNtSAYIMWeldIOVZugUYC+qVEwqjTQKuRIMsCxVX10GiA63rEu46XIARgsTmg00h44MpOCA/SK0Hl2qZ/r9f3Smiy/E8dIi7m67rkMQBRk7p27YpPPvkEo0ePhiRJmDNnDltyiKjFZFmg1u5Evd0Jq0NW/rTLsDqUn60OGVa7EzanDIvVic9/LoZTFhjSJQZCAPV2Gd8fKQfQOIyca/zJ2eVOWaDQFVL2nTR7HVvpGo9SVm31Kncz6DQwGbQw6DTQSBIigvXQSBK6JoTCqNMCUFppNJLyeUF6DXRaCbIAymus0EgSbuqbhBCjDgadBnqtBo9c09nTmvJb40BvvaxDk+VXdmt6OZK5o3uf/wshBiBq2qJFi3DfffdhyJAhiI2NxVNPPQWz2ax2tYjoEuKeAat0ESlBxuaQPYNuzfUOVNXZcdpiQ+7+Eq/uHuD84cU9/sRc5/CElzNJEqDXKi3n7lASHWLwPBdCICxIB60koXN8KIL1yrEFp2uhkSRckRHt6e7RaTS4MTMJOq0Eo6tF3qBV/nx0eBdPV9GZ7r0irdHv44Y+SU3+ngapONOJzk0SQjRv/nYAMJvNiIiIQFVVFcLDw71eq6+vx7Fjx9CpUycEBQW1+DO4F9ilx1ffLVFb43DKMNfZ8fdNR2B3yrjt8o5wyEpLjLnejrW7CuGUBYZ1VWYDOWRloO33TYxhOV9rjASlxcJk0MKo00KnkbAprxRajYTbLlfGmRj1Wq8QotMqAUWvbWgp0Ws10EjcwJgaO9/9+2xsASIiakfcXU0WqwMVFhve/f5XOJwybsxMguyaymyxOrHh52I4nDIGpEV7xs24B+BuPGuWkHu68qkaW5NjWDQSEKRXAo3JoIVOq0HPpHBEhxgQEaxHhEmPh6/OQKhR1yi03DUoxT+/GKKzMACpxKDT4Inru6ldDSK6RNXbnPhb7iE4ZYF7r0iFLACbU0ZNvQMfbc+HQxYY0TsBDlmgpt6hBBpZ4LKUSE/IcMoCv5ZbAAA/5Vd6hReLq4vJ7pSh1UjQuLqUdFoJKdEmhAfpYDLqYDJoMTIzEUF6LfQaDfS6hhaZR67pDINW47Uo64NXZajw2yJqPgYgIiI/cAcam0PGXYNSXN1ITpjrHPi/nSfgcApc2TVWWQ/G7kSt1Ymd+acBAIYfNU1OiXYP5HXKArU2ZdqzLACdBggx6BCk1yLKZIBeK2FAWpRnAK5GUqY467QSJmSnISJYD6Ou8TgXovaMAYiIqIVsDhlvfHkITiEwMTsddtcMpqo6Gz7aXgCbQ8awLrGotTtRVWvzBJrg3dom13IpqqpvNBtIq5EQHqyDyaBTpj+7pkTrtMpA3tAgPbSSBHO9HXqNBvcNTUekyeBZn2VCduPBugDQV+VF6IjUxgBERHQB7K6BwqdrbaiwKH+WVVvx4/HTcMoCEiSvUOOebn2ysk5Zs0UAEgC9ToP4MCPCgnUI1muh02hQXFUPnVbCjZlJCHeVBxu0CNJ18wSZM93m2srgTJkd2/eaLUS+xgBERAFPCAGrQwk4pyw2vLv5V1gdTlzTPR51didOW2z4+mAZgMazm9zTsw06jWfcjFGnQUFFLQw6DW7ok4joEAPCgnSYeX3TgSbnHAvREVHrUT0ALVmyBC+//DKKi4vRr18/vP766xg8ePA5j1+8eDHefPNN5OfnIzY2FnfccQcWLlzombY8b948zJ8/3+s93bt3x4EDB1r1Oojo0uZuwamss6Oqzo5TNTZ8vKMAVruyX5J7jyOnLPDrKWXg8OHSGq81aDQaCfHhRsSHGRFlUkKN1eGEUadttKXNLf2bXriOiC4NqgaglStXYubMmVi6dCmysrKwePFijBgxAnl5eYiPj290/IcffohZs2Zh2bJlGDJkCA4ePIjJkydDkiQsWrTIc1zv3r3xxRdfeH7W6VTPeUTkJ05ZoMJiwymLFadqbCiuqsf/23USVofcqPWmslaZ3u2eCWUyaGEy6BAdYoBRp8HV3eIQFWJAeJAO06/r0uRA4V7J7HoiaotUTQaLFi3Cgw8+iClTpgAAli5dinXr1mHZsmWYNWtWo+O///57DB06FPfccw8AID09HePGjcO2bdu8jtPpdEhMTGz9C7gYDhvw7avK8yv/AOgM6taHqA2prLVh0ecHUe9w4obeiah3yKistWH9vmLYHDIGnhV0rK7Nhw06DWJClbVpQgw6lNdYYdRpcO8VaYgJNXhWFj7XwGEiaj9UC0A2mw07duzA7NmzPWUajQY5OTnYsmVLk+8ZMmQI3n//fWzfvh2DBw/G0aNH8dlnn2HChAlexx06dAjJyckICgpCdnY2Fi5ciNTU1HPWxWq1wmq1en7mlg9Nu+aaa9C/f38sXrwYgBJAH3/8cTz++OPnfI8kSVizZg3GjBlzUZ/tq/NQ2+KeZVXvkHFjn0SUVltRWFmH8hob8kqqAQA7XevbnB10EsODEBNqQEyoEXcPTkFMiBFBeu8WnGt7NG5pJqLAoFoAKi8vh9PpREKC9+C/hISEc47Xueeee1BeXo5hw4ZBCAGHw4FHHnkETz/9tOeYrKwsvPvuu+jevTuKioowf/58XHnlldi3bx/CwsKaPO/ChQsbjRtqb0aPHg273Y7169c3eu3bb7/FVVddhd27d6Nv374XfM4ffvgBISEhvqwm5s2bh08//RS7du3yKi8qKkJUVJRPP4suTTaHjBJzPYqq6nGiohY78ythd8ownLVhZLBBC5Nei8tTIxEZYkCQToNamwMGnQYPX5UBo16r4lUQ0aWuTQ2O2bRpExYsWIC///3vyMrKwuHDhzFjxgw8//zzmDNnDgBg5MiRnuP79u2LrKwspKWlYdWqVbj//vubPO/s2bMxc+ZMz89msxkpKe1refb7778ft99+O06cOIGOHb2n0C5fvhwDBw5sVvgBgLi4pnchbg2XfJcmNZvs2oG7wmJDibkeH27LR63NgT4dIqA5YyVju1OGJAHJkUFIjQ5BcmQQkiODEdREwHmO43GI6AKptgNnbGwstFotSkpKvMpLSkrOebObM2cOJkyYgAceeACZmZm49dZbsWDBAixcuBCyLDf5nsjISHTr1g2HDx8+Z12MRiPCw8O9Hu3NTTfdhLi4OLz77rte5TU1NVi9ejXGjBmDcePGoUOHDjCZTMjMzMRHH3103nOmp6d7usMApevxqquuQlBQEHr16oWNGzc2es9TTz2Fbt26wWQyISMjA3PmzIHdrgxEfffddzF//nzs3r0bkqQsre+uryRJ+PTTTz3n2bt3L6677joEBwcjJiYGDz30EGpqajyvT548GWPGjMErr7yCpKQkxMTEYNq0aZ7PotZntTvx4n/3Y/6/f8beE1XYfqwCuftL8PGPBZi8bDvu+cdWLPvuGP69uxBbjpxCeY0VtTYnhADCgnTolhCGK7vGondyOAalReOOASkY1jUWGXGhTYYfIqLmUK0FyGAwYMCAAcjNzfWM65BlGbm5uZg+fXqT76mtrYVG453ZtFrlH8JzbWpfU1ODI0eONBon5FNCAM5m3lidNkB2NjxvCa0euMCl63U6HSZOnIh3330XzzzzjGccxOrVq+F0OnHvvfdi9erVeOqppxAeHo5169ZhwoQJ6Ny583mXJXCTZRm33XYbEhISsG3bNlRVVTU5NigsLAzvvvsukpOTsXfvXjz44IMICwvDH//4R4wdOxb79u3D+vXrPbP4IiIa/x+9xWLBiBEjkJ2djR9++AGlpaV44IEHMH36dK+A99VXXyEpKQlfffUVDh8+jLFjx6J///548MEHL+h3Rr9NCGXG1Wu5h1Bnd+L6XomotTlQWWvHaYsNP+VXAgBCDMVeg5Lr7Mrffb1WQmyYEeFBehRX1SPYoMV9Q9MRHWr0fEZWRozfr4uI2j9Vu8BmzpyJSZMmYeDAgRg8eDAWL14Mi8XimRU2ceJEdOjQAQsXLgSgjGNZtGgRLrvsMk8X2Jw5czB69GhPEHryyScxevRopKWlobCwEHPnzoVWq8W4ceNa70Kc9oYZXRdKdgL53yvPvwOgacH/0TZz9th9992Hl19+GV9//TWuueYaAEr31+233460tDQ8+eSTnmMfffRRbNiwAatWrbqgAPTFF1/gwIED2LBhA5KTkwEACxYs8OqSBIBnn33W8zw9PR1PPvkkVqxYgT/+8Y8IDg5GaGjob87i+/DDD1FfX49//vOfnjFIb7zxBkaPHo2//OUvnnFlUVFReOONN6DVatGjRw+MGjUKubm5DEAtVG934sTpOvzv10dQZ3ciq1MMzPV21NmcOFCsDEjeXeC94aYEZUByx6hgRJqU6eThwXrcObCj52d3GB/dL1mtSyOiAKRqABo7dizKysrw3HPPobi4GP3798f69es9N7D8/HyvFp9nn30WkiTh2WefxcmTJxEXF4fRo0fjhRde8Bxz4sQJjBs3DqdOnUJcXByGDRuGrVu3+nW8yqWqR48eGDJkCJYtW4ZrrrkGhw8fxrfffos//elPcDqdWLBgAVatWoWTJ0/CZrPBarXCZDJd0Ln379+PlJQUT/gBgOzs7EbHrVy5Eq+99hqOHDmCmpoaOByOZnc57t+/H/369fMagD106FDIsoy8vDzP35/evXt7gjEAJCUlYe/evc36rEBVa3Xg5Q15qLE6MKxrLCosNlTW2r024iwx13t2EXdv3TAgLQoxoQZEBitTzc+18jERkdpUHwQ9ffr0c3Z5bdq0yetnnU6HuXPnYu7cuec834oVK3xZvQuj1SutMc3htCktPwAw7HFA24J1gLT6Zr/l/vvvx6OPPoolS5Zg+fLl6Ny5M66++mr85S9/wd/+9jcsXrwYmZmZCAkJweOPPw6brYXdc03YsmULxo8fj/nz52PEiBGIiIjAihUr8OqrzWw9u0B6vffvR5Kkc44VC3RCCJTX2JBfUYv8CgvyT9XilyJlOYhDJTWeVp2IYD2iQwwwGbS4MTMRCeFBiDQZGm3gSUR0qVM9ALULktSyhQzd3V5ag98WQrzrrrswY8YMfPjhh/jnP/+JqVOnQpIkbN68GbfccgvuvfdeAMqYnoMHD6JXr14XdN6ePXuioKAARUVFSEpKAgBs3brV65jvv/8eaWlpeOaZZzxlx48f9zrGYDDA6XT+5me9++67sFgsnlagzZs3Q6PRoHv37hdU30BXZ3OitLoeJ0/X4f2tx2Gud6B/SqRX95Veq0FYkA5DOsegY5QJ8eFGDj4monaDASjAhIaGYuzYsZg9ezbMZjMmT54MAOjatSs+/vhjfP/994iKisKiRYtQUlJywQEoJycH3bp1w6RJk/Dyyy/DbDZ7BR33Z+Tn52PFihUYNGgQ1q1bhzVr1ngdk56ejmPHjmHXrl3o2LEjwsLCYDQavY4ZP3485s6di0mTJmHevHkoKyvDo48+igkTJjRaVyqQCSFQY1UGJJfXWPHPLcdRZ3PistRI1NqUkOmUBU5ZlFY+vVZCaowJqdEhSIsxISbE0GjbByKi9kK1afCknvvvvx+nT5/GiBEjPGN2nn32WVx++eUYMWIErrnmGiQmJjZr1WWNRoM1a9agrq4OgwcPxgMPPOA1NgsAbr75ZjzxxBOYPn06+vfvj++//96zfpPb7bffjhtuuAHXXnst4uLimpyKbzKZsGHDBlRUVGDQoEG44447MHz4cLzxxhvN/2W0I/V2Jw6X1uDzn4sxZfl23PP2Nvzv10fx8Y4TyN1fisLKOpyutaG63gEAiDLp0S0hFKnRJvRKCseDV2bg1ss6YkBaFGJDjQw/RNSuSeJc88cDmNlsRkREBKqqqhoN0K2vr8exY8fQqVMnzw70LcK9wC45Pvtu/aTO5sRf1h9AZa0Nl6dFocJiU1ZkkAV++LUCAJDVKRpRIQaEGnX49lA5gvXKruXJUUEw6tidRUTty/nu32djFxhRG1Jnc+JYuQVHy2twtMyC/a6ByqVmK7QaCdEhBiRGBKGy1oYQow6/v6YLggxK0LlzYPta3ZyI6GIwAKlFZwCunf3bx1FAE0LgxOk6/O2LQ6iss6FnUrjXNhF6rQaRJj2u75WAjLgQhAUpM99G9ObWIURE58MARHQJsTlkLNqYh6o6O7IzYlBYVY+aegcKTitr7wgBxIUbkREbgoy4UPzhd904VoeIqAUYgIhUJoQyE+tIaQ3yiqs920fEhBih1Ugw6DSIMhkQYdJjytB0xIQaz39CIiL6TQxALcSx4+2PP7/TOpsTL204gNMWG/p0iPDMzHLKSh1CjToMSo9Gl4RQJIYHcaFBIiIfYwBqJvfqwrW1tQgODla5NuRLtbVKN9PZK0j7ghACZTVWFFTUoaCiFsdP1eKXQmUAc8coEww6DVKjTUiLMUEWytie7M4xMOi4UgURUWtgAGomrVaLyMhIlJaWAlDWpOEYjLZNCIHa2lqUlpYiMjLSa/+wiz3vkTIL/rrxICrrbLgsJcprpWWdRkJEsB4j+ySiS0KoZ1r6ZalRPvl8IiI6NwagFnDvVO4OQdQ+REZGnncX+gtVYbFhf5EZ+4vMnlWYAUCv1SAtxoSU6GAkhAdBIyn7k3VNCGNLDxGRnzEAtYAkSUhKSkJ8fDzsdrva1SEf0Ov1LW75kWWBE6dr8VruYZyuVaaqu1t6jDoN4sONiA0x4qGrMhBsaPiMmb/jvmVERGphALoIWq3WZ90l1HZY7U688rkyVT2rUwyKzfWoszk9U9U1EpARF4KeSeHIiA2BTsvWHSKiSw0DENEFEEKgxGzF4dIaHCg2Y8+JKgBAfJgyQytIr0F0iAHhQXpMGdoJUSHc2oSI6FLGAER0DjaHjL+sP4DyGit6JYV77aCukSSEB+kwtEssMuJCEBdqhIZT1YmI2gwGIKKzCCGQX1GLLUdOYd9JpaUnJcqEYIMW6TEh6JoQiseGd+XAZSKiNowBiMhFlgUOl9Xgh18rUGq2wikLSACiQw0Y1TcJXeJDoed4HiKidoEBiAKaEALFVfV4deNBlFVbkdkhAlqNBL1WwmWpkXjo6gyEB/l+YUQiIlIXAxAFFJtDxutfHkJ1vQNDu8SioKIWFRYbCiqUGVxBeg0GpEWjf0qk15R1IiJqXxiAKCDYHDKOn7LgQHE1dhw/DacsEGrUQauRoNNIiDTpEWUyYPKQTggN4n8WRETtHf+lp3bJ5pDxty8O4nStHQPTo3DydB0csoDT9dBrNeiVHI5uCWFIjTZxQDMRUYBhAKJ2p6rWjq3HTmFnfiVkIRAdYoDWte9Wp9gQ1NocCDXqkNMzgcGHiChAMQBRu1FqrsePx0/jYEk1HE4BWQgEG7TI6hSNHknhiA01QJIkXNsjXu2qEhG1PbIMyA5AOAGNHtBogTa8GTgDELVpNoeMhf/dj5On69AtIcyzB1fn+BCMHZSCjlHBkNrwf6BEFEAcNuDbV5Xnw54AIACnDbBagC1vAEIGBj8M6AxK8HA6gO3/C0ACrpgK6IJc5XZgy9+V92c9DGh0SmgRrgDjtCvndVgBWy2w631AdgI9bgKEQ6mHzQIc/K8SetKHAkIox+d/r9QvdQig1bvqogWOfaP82e13gM4ISBrlPQfXK392u8FVN1tD2bCZQNoVKv2yGYCoDauw2LDpQCl+KTQDUP7b6pEYhgHpUYgPC1K5dkR0yXEHDCEDWVMB2XWjr68CfnhHCQeZdwIa183baQf2/Z8rHIwC4AoB9jrlJg4AXXIArU4JCoe/ACApZRpNQ+A4nKsc2/k6JYwASvmRXOVzMq5Rypx2IH+L631OpYUFUJ4X7VKe7/rAu7zwJ+X5j8u9y0/+4Co3KOWy0zu8nHlsZb7yvHivd7m9Tnlur28oP5OQlddkJ2BXZtLCXOR9jtpTyvPTvzbUw1qtlLn/VAkDELU5FqsDW4+ewr6TZtidMiQAcWFGTMxOR1yYUe3qEdHZzmzZuPIPSqtBU4QAHPVAbQWw+TXlBjtgshImHFZgx7vKMZfdq9xMhauFZNcHyvO+dzXcZB02YO8qJWh0HaGEHWs1kL8VkO3K8WfeqE8fU57nb/UuN59UnpfuPyscuG74lvKGz7TVKGU1JU0fW1vRdMCoNzecQ3Z4/040WldLi6tVJThS+RNCaQHSun6X+uCG4CY7lNYYSVLKdQalXBeslIUnAXqTcl5Jo1y7Rgd0uhIwhgJao9KaNGCicn6NXgl5Gj2gfUp5j7sVyd1CZa1Wvq/et54R/pxAz5uUz5S0yvs0WqDfWNe1RF3436FWwABEbYLNIeO13EMoqqpDanQIZCEAAF0TQjFlaDpiQhl8iPzq7O4a4QTqqoDvX1Nujv3HNQQaWw1QflC5Kf7y6RnhxQEc+I9yw04booQc2aHcOEv2Kuf+eU1DOCg/qJQd3OAdJCqOKs+Pfdt0eDl1+IyAYVfKJA1gCAEMJkAb5DpGB3QcoAQDSEqrTlWBcmzna5XjtQblNZur9aLvWCUcOKxKSxIAZN6uBBa4uqncwajfOEDnWljVYXeVS8DlE5XjZacSKCQJGDIdMIad0fLyZNPfw7AZTZdf/cfGZUMfa/rYPrc1XX4+Gi2gd7W0h8QCN/6l+edQGQMQXfKEEPilyIzdBZWwOWUkRQSjQ1Qwruwai45RJrWrR9Q+NNVKIwRQexr45iXlBt/ndsBZr3Qb1VUCJ39UbvDfvNIQMIr3KOfIW+8dRmpKlOdlB73L6yqU5+5WEEC5sepNSqtBeJISDoQAyvYDkIDYrkrogKSc49Qh5XliZsOYFOHq2tHogG4jgKBwQHIFFa1OuUb9Gf/jdPm9Tf9eul3fdPnIJm74o14+x7EvXnj57/7U9LHkcwxAdEkrqKjFN4fKUFRZD5tThlGnwQ19EtE7OZyDm4l+i92qhBf3mBdJUlpAbLXAtv9Vyi8bD0AAtjolMMgOpdXFagbqK5VzuEPN0U1Nd+G46YNcXTF6IDpDaV3RBSmBxFyovLdLjvcgXkuZElL6jwdMUYAh1BVumnD5hKbL+97ZdHn3kY3LRjz/G780ChQMQHTJsTlkvLIhD/kVtegSHwqtRoJBp0FqtAmJ4UHolhDG8EOBxelQulysNco4ku1vK0Gm1y1KS4etVulakp1AxtUNXSn2emVQLaCEkDPDS+nPyvMDnzW03lQeV8rKDzUcK0lKiNEZgfieyhgUQ6jys7Va6RLKngYERTTMMAKAzDu8x/qcqyUlZZAvf1NEF4wBiC4pQgjszD+NPScrlTGKEtA/JRJZGdEwGfjXldoo2al08Xy3SAkzl090TTe2AvXVrkG8TqD7ja7j7UrrSt565XmHgWcN2HWNeTm5syG8uMef1J5uYsaOpIxr0QcprTOSpIQYjRaI7uQayyEpY2k0OqWVJjROGaSqCwY2L1ZO03O0d6hJ7u/9MRoDcO1s3/3eiFoR7yh0ybBYHfj8l2IcKbVACCDSpMc9WWlIjOCUdlLZmdOnBz0IOOqULiLLKWDnP5WWj+4jXV1MDqXb6NB65XnKFQ0zYk7uUM637/+8A011ofK8LO+sLiZLQx00OmVQrD4YOBWnBJnUK5RZO9AoY2kkrTLQ1hjqGsjrImmUgcru8OKwKWN4AGXat86glJXlKWUdLvcOOgw11A4xANEl4fgpCzb8XAyL1QmdRkKn2BDEhxkRHXKO6bJEZzvXVGuHTRmkK5zKOBjhVAJMfTXwwz+UFpaeNze0utRXA3mfKaGl01WABKVb5/hmZSDu2dOna4qV56eOeJfbXOHFaW8o1+iUR1iiElJ0RiXIVBU0jI8xuMbQAK4uJp0yIygoomHV3QGTGl9/6uCmfy/Dn21cpmuipaapMqJ2jAGIVGNzyHj9y0MoqKhFxygTtBoJsaEGjMxMQiyntbcd5wseF1p+3vDysjKeZeD9rgG8Ncp065/+pQSNXje7jrUCJfuU4LLzn8qfTteidcc3AxAAJO+QcuqQ8vzEj97lDtfgXpuloYtJyEqZRguYogFjuDJTyXxCCSzdRrgGAOuUkGQ1K88HP6jMQNIalfVRmtLzpqbL2+DUYqK2ggGIVFNTb8cvhWbUWB3oGGVC344RuKpbHPRablB6ybrQBe2a4l5Kv75KCQdOB1Dys9IiU1+tjD+R7cDejxuCi7XaFV7QsPcQ4L3GS/G+hpBSd1opqy72PhbCdQ6tspaLO6iYYlxrvwxSQorBpHyOrUbpNhowWRkf414/RtIoy/efOX269y1NX++NL13474aI/I4BiFRRUFGLf+8uRI3VAa1Gwo2ZieiVHKF2tQJPc1tvhKwsbOdubbHXKivhFu9RAs2O5UqgkFyLyBXtVsLDliVKK457LEzRbuV8B9Y1hBd3oKk4elZ4gRI8jGFAUJhrmrTBtcaLVpn1pA92rVlTrhybeXvDonUCSsiStI3Dy8ApTf9emlqf5fr5LfoVE9GliQGI/EoIgZ8KKvHtwXLYnTJMBi26JYShS3yY2lW7dLVmF5ObEK4WF7PS6lJ3Gqg6oQSdn9coocdarbTenHDtMeSeRXTmDKSaMu/wYlX2afN0JQGuZf2DlKAUlaaMhfGMg9EB3W8AgiIbWmkglPByxVTvevce0/h3da4p1Tlzz/MLJqJAxABEfmNzyMjdX4IDxcoS8r2TwzEjpyu7vM7UnD2T3PsGucOLe4yL0+4a/2JXNiaUbcrU6NPHlW6c/WsbWnJsFqBgu2tvJLnpvZHOXBNGuD5DZwQiU5Ul8PUmZcNDrUHZi0nrGgPjsCkL6UlaZdBuUIRyrJAbrrHv2IaAVuza+iCxr/d1D5/ju98vEZELAxC1OptDxquf5+FgSTV6J0dAr9Xgqm6x6J8S2f4XNGxu642bEMoKuXWngaqTSjhw1CtdSZCV7ib3ztEA8L3GO7y4d33W6BpaaapcOz6XHvA+1mlt+FydUelq0rn2RtIZlZlJpiilXBukdDFJEtDv7obw4q5HVLr3NZpilOehCeefVs0ZSETkZwxA1OoOlVRj78kqOGUBk0GLm/snB/YeXrJTGaRbXayMizny5RktMrVA4U/K2Bp3i4zsVFpSAO+upN8kKaElOEIJLqePKd1Pna9rmIINjfJZGr2yTowxRHmrw6Z0gQHea8I4bA1Tsd3OFV4YaojoEsYARK3G4ZTxzaEy7DxeCacsEBakw92DUhDdHqe4n2/QsK1W2cbg8EZlwHBNqTK25lxTsN07R2v1QHiyMuXaUqaMiRkw2bV7tV5pJZIkAJISXrR6AELZ/uDscTMOW0OXVseB3oHGGNbweW4MNUTUzjEAUas4bbFh3d4ilFVbodVIeGx4V2RnxECjaQddXucKO+7wcnKnsipvTYnSylPoWv3XFNsQdHRGZaCvLghIGazMWNIFKYGmvlIZKzP0cWXGksMGFLk2owyNP6s1xjV+SqNt2EBSCNfg4TMw0BAReWEAIp+yOWTM//fPOFpuwYDUKIQF6TCidyLSY0PUrprvOe3KOJmaYqDiV6Bgq9Li454dBSihSHKtPdNxgDJwOCwJ0Ico+0IBQMY1TY+bcXc1NTe8MNQQEf0mBiDymdMWG748UIrDpUoXTseoYNzULxmhxjb61+zslh7hVNaeOXVYaeWxW5QWmDNXCtYagJjOStdVaIKymaR70HDn4b+9vxLDCxGRX7TROxNdSurtTmw7VoFd+ZWwO2VIAJIjgzGmfwcEGS50wK6KzjlTywrUVihr3Ox4D6g71TD93L1JpSlamfkUmqC0COmMQJ/bzz9omIiIVMcARC0mywL7Cqvw/ZFTqLMpK/Z2ig2BzSEj2KC9NMf7nG/6uewEKo4pO3NX5ivTz0t/Vl6rSVVaekJildadutPK1gmDHmgYZHzo88afxxYdIqJLkuoBaMmSJXj55ZdRXFyMfv364fXXX8fgwefY1RjA4sWL8eabbyI/Px+xsbG44447sHDhQgQFBbX4nNR8FRYbnly9GxarA4PSoxEfbsRVXeMunbE+5ws6QigL/1UcUwYcmwsbpp4DZyz6JwO6YGUBv543KV1bxjDvQcluDDpERG2KqgFo5cqVmDlzJpYuXYqsrCwsXrwYI0aMQF5eHuLj4xsd/+GHH2LWrFlYtmwZhgwZgoMHD2Ly5MmQJAmLFi1q0Tmp+Sprbfi/HSdgce3jdXW3OFyeFgXtpdLiY69X9qkq+VlZ5O+HfyjjcIRT6aYq2KqsoCxpG8bvuKeeB4UD0RmuwcrJwA9vK+XxvRpCFMMOEVGbJwkhhFofnpWVhUGDBuGNN94AAMiyjJSUFDz66KOYNWtWo+OnT5+O/fv3Izc311P2hz/8Adu2bcN3333XonM2xWw2IyIiAlVVVQgPD7/Yy2xXyqqtWPPTCZjrHNh7sgo9EsPwh991h0Gn0nYW7pYeIQO9bgHKDwKnjijjd9yrIacOaWKVZAnoMQoIS1QGKu//jzJ769qnvTfLJCKiNqM592/VWoBsNht27NiB2bMb/k9ao9EgJycHW7ZsafI9Q4YMwfvvv4/t27dj8ODBOHr0KD777DNMmDChxecEAKvVCqu1YTsAs9l8sZfXLp2srMP/23USVruMhIggTL2mM0LUnuFVU6LMyrKUuda/cQWdkBggMk3psup3N6B3beEgO5VwpDN6j9/J36q8jwOWiYgCgmp3r/LycjidTiQkJHiVJyQk4MCBA02+55577kF5eTmGDRsGIQQcDgceeeQRPP300y0+JwAsXLgQ8+fPv8grap9sDhlLvjqM07U2xIQYIAugQ2Qwbu6fjCC9H2d4nTmmZ8hjQMVhoHAXUFkAVBcp5cYwILEPkNBbmZXVVJhx2JSVlM/ELi0iooDTprbh3rRpExYsWIC///3v2LlzJz755BOsW7cOzz///EWdd/bs2aiqqvI8CgoKfFTj9qG8xoqDxdWwOwU6xYbg1ss7+Df8uNnrlO6trX8HDnymDF7WaIGQOCAhE8h6GOgyXOnWOldLjjvsXDv73DutExFRu6daC1BsbCy0Wi1KSkq8yktKSpCYmNjke+bMmYMJEybggQceAABkZmbCYrHgoYcewjPPPNOicwKA0WiE0chxH035pcjsWdiwe2IYbsxMav3BzmfP4Ko7Dfz6LXByBwChrLsTEgMk9QfiugPb/lc5VmpTeZ6IiFSk2h3DYDBgwIABXgOaZVlGbm4usrOzm3xPbW0tNBrvKmu1SkuEEKJF56Rz23uiCrn7lTAZH2bE73ol+HemV30VsPdj4MdlQOkBAAIIjgYy7wCyHgHSspWFCNmiQ0REzaTqCNaZM2di0qRJGDhwIAYPHozFixfDYrFgypQpAICJEyeiQ4cOWLhwIQBg9OjRWLRoES677DJkZWXh8OHDmDNnDkaPHu0JQr91Trowuwoq8dWBUmgkCY9c3RnXdI+D5I8BwrITKDsAFO0GrGZlZpZWB8T3ABx1ys/RGRysTEREF0XVADR27FiUlZXhueeeQ3FxMfr374/169d7BjHn5+d7tfg8++yzkCQJzz77LE6ePIm4uDiMHj0aL7zwwgWfk37bjuOn8c3BMgDA5WlRuKprbOuEnzO7urIeBkp/URYkrKtSwo+kAZL6AelDlZaezDt8XwciIgpIqq4DdKkK1HWAbA4Zz6zZi/yKWgxKj0Z25xgM6RzTei0/DhvwxXzAfFIZy+OmMwJlB5XBzNc+za4tIiK6IG1iHSC69OwqOI38CmU7iKxO0a0bfurNwOFcoOgn5eeYLkBkCtBxIBDVCdj8t9b5XCIiIjAAkcuRshp8e6gcANAxKhhZGT4MP2ev4VP0E5C/BbC7Fp8MiQMunwhEpTa8h+vyEBFRK2IAIpRW12P9vmIIocz26hAZ7PsPEUJZrfnHdwCbRSkLT1amshvDlO4uIiIiP2EACnA1VgfW7iqEzSGjU2wInri+m++nuttrgdKflfV8TDGAKQrIuBaI7gx8t8i3n0VERHQBGIACmN0pY+2uQlTXOxAdYsCovq2wyGHVSWDf/ynhR9IA6cOUWV1avfI6u7qIiEgFDEABSgiB9fuKUWKuR7BBi1t8vbeXEMDJncCRXGUMkD4YiOsJpA1pCD9EREQqYQAKQDaHjKf+bw8KK+twRUYMRvdLRqTJR1PNHTbg65eAU4eAmK7KXl1x3QAIQMO/bkREdGngHSkAHS2rQWFlHQBgeM943w56rikFinYp435iuyubk3YcxJWbiYjoksIAFGDqbE58lVcKAEiKCEKPRB8t9CgEcOJH4PAXSvjRGoB+dwMxGb45PxERkQ8xAAWYTXmlsFidCNZrkRJl8s1JrdXAgXVAxTFlL6/gaCC2KxDR0TfnJyIi8jEGoAByuLQaB4qrodNKePH2vkiMCLr4k5YdBPI+A+x1yqalna9TZnuxy4uIiC5hDEABotbmQO5+petrUHr0xYcfWy2w9lGgughIHQJEJAM9bwZCYoHULB/UmIiIqPUwAAUAIQS+PFCKWpsTsWFGZHWKvrgTWquBPauU8AMJSBmsDHbW+HAaPRERUStiAGrHbA4ZS746jPIaK6JMBui1GozolQCdVtPyk5oLgX2fAHWVgEav7OKecQ3DDxERtSkMQO2czSHj13ILolINGNwpGvHhzez6OnMj0243KLO8ZAcQlgDcuRwwXWRrEhERkQoYgNq5X09Z4JAF4sKMGNzSri8hgNO/KjO9NFogpgvQ62ZAZ/RpXYmIiPyFAagdK6qsQ4XFBgnA9b0SWrbPl+wAyvYDtaeAyFQgLRtIvwrQXEQ3GhERkcoYgNqxbccqAACxYUbEhragtcZhUzYyrT2lTG3veROQ3N+3lSQiIlIBA1A7VVhZh/yKWkhAy7a6sNcDe1cDp48DkhaI76U8iIiI2gEGoHZqy5FTAIC4MGPzd3m31QJ7VgLVxco4n4Q+QJCPtswgIiK6BDAAtUMnXa0/eq0Gf741ExHB+gt7o8MGbFoIFO8DkvoBxlBlP6+wxNatMBERkZ8xALVD7taf3snhFx5+AKDeDBTvUba1MIYCl92rrOxMRETUznAqTztz4nQtCipqodVIGNScae91lcCej5TwowsC+o1j+CEionaLLUDtTItaf+pOA7s+AuqqAF0wkNgHCI5qxVoSERGpiwGoHXBveWGusyPEqINBp7nw1p/aCmD3R0r3lykKSMzkAodERNTuMQC1IydO16F7Yhj6dAhHeNAFtP7UVgC7PlQ2NzXFAP3HAcaw1q8oERGRyhiA2omqOjvM9XZl7E/6b7T+OGzAl88DxXuBDgOVfb36jVMGPhMREQUABqB2oqiyDgDQKzkcYb/V+lN3Wgk/Tpsy0Ln/PYAhxA+1JCIiujRwFlg7UFVnR2WdHQBwWUrk+Q+uNyuLHDptSujpO5bhh4iIAg4DUDvwc2EVACAiWI9Ik+HcB9rrlPBTb1ZmeyX0YfghIqKAxC6wNs4pC+wvMgMA4sPOmr3lsAHfvqo8H/KosrGppVwZ65PYB9CeJywRERG1YwxAbdzRshrU22UM7xmP+4dlQKuRGh8kZODnTwFzIaAPAvqPB0Lj/F5XIiKiSwUDUBu354TS/dU7OeIc4UcA5QeVP/VGIPMuhh8iIgp4HAPUhlXW2pBfUQtJAvp0iGj6oIqjgKUM0GiB3rcBER38W0kiIqJLEANQG7b3pNL6kx4T0vS2F0W7gepCABLQ/UYgprN/K0hERHSJYgBqoxxOGT8XKoOfm2z9MRcBh79QnkemAvE9/Vg7IiKiSxsDUBt1pMyCOpsTYUE6ZMSeNZXdVgv8vAaQncoWFxEp6lSSiIjoEsUA1EbtOVEJQBn8rDlz8LMsA/v/DdRXAcGRQGw3QGpicDQREVEA4yywNsbmkPHKhjzsPlGJwZ2i0adDuPd6PylZysBnrQ7oexcQGq9uhYmIiC5BbAFqg0qr6wEAnWJCvPf9qq0Ajn+vPO82kuGHiIjoHBiA2hiHU0ZZtRUA0PvMwc/2OqA8T3neYYCy0jMRERE1iQGojTlWboFDFjDoNEiLNimFQgCnDgGyAwhPBroMV7eSRERElzgGoDbmaLkFABATYmgY/Fyepwx6lrRAz9HKoodERER0TgxAbYhTFvjVFYCiQ1wbmTrtwNFNyvOIDkDQOVaEJiIiIg8GoDaksLIOVocMnVZCqNE1ga9gG1BvBnRGILyjuhUkIiJqIzgNvg05UlYDrUbCxOx0jOidqHR75W9RXozqxK4vIiKiC3RJtAAtWbIE6enpCAoKQlZWFrZv337OY6+55hpIktToMWrUKM8xkydPbvT6DTfc4I9LaTVCCBxzdX91jnOt/HzkK8DpAKLTgVGvAtfOBnQG9SpJRETURqjeArRy5UrMnDkTS5cuRVZWFhYvXowRI0YgLy8P8fGN17H55JNPYLPZPD+fOnUK/fr1w5133ul13A033IDly5d7fjYaja13EX5QYbGhstYOnUZCanQIUJkPlO5XVnnucj1XeyYiImoG1VuAFi1ahAcffBBTpkxBr169sHTpUphMJixbtqzJ46Ojo5GYmOh5bNy4ESaTqVEAMhqNXsdFRUX543JajXv2V0qEAYZvXgTWPans9ZXUHwhLULdyREREbYyqAchms2HHjh3IycnxlGk0GuTk5GDLli0XdI533nkHd999N0JCvDcE3bRpE+Lj49G9e3dMnToVp06d8mnd/e1oWQ0AICPOBNSUALYaZeBzpytVrhkREVHbo2oXWHl5OZxOJxISvFswEhIScODAgd98//bt27Fv3z688847XuU33HADbrvtNnTq1AlHjhzB008/jZEjR2LLli3QahsPFLZarbBarZ6fzWZzC6+oddTaHCiqcm1/EaEFKo8rL6QNBQwh53knERERNUX1MUAX45133kFmZiYGDx7sVX733Xd7nmdmZqJv377o3LkzNm3ahOHDG6+SvHDhQsyfP7/V69tSR8ssEAJICA9C2OlfAKcN0JuA5MvUrhoREVGbpGoXWGxsLLRaLUpKSrzKS0pKkJiYeN73WiwWrFixAvfff/9vfk5GRgZiY2Nx+PDhJl+fPXs2qqqqPI+CgoILvwg/cI//yYg1AcV7lMLwDpz2TkRE1EKqBiCDwYABAwYgNzfXUybLMnJzc5GdnX3e965evRpWqxX33nvvb37OiRMncOrUKSQlJTX5utFoRHh4uNfjUmF3ysg/pQSgLkFVyo7vkhYIiVW5ZkRERG2X6rPAZs6cibfffhvvvfce9u/fj6lTp8JisWDKlCkAgIkTJ2L27NmN3vfOO+9gzJgxiImJ8SqvqanB//zP/2Dr1q349ddfkZubi1tuuQVdunTBiBEj/HJNvlRQUQu7UyAsSIcY836lMCQW0LTp3ksiIiJVqX4XHTt2LMrKyvDcc8+huLgY/fv3x/r16z0Do/Pz86HReOe0vLw8fPfdd/j8888bnU+r1WLPnj147733UFlZieTkZPzud7/D888/3ybXAjpa5lr8MFoPqeyA0u11/Z+AyBSVa0ZERNR2SUII0Zw3pKen47777sPkyZORmpraWvVSldlsRkREBKqqqlTtDhNC4B/fHkON1YGxHU4huWQTYIoGBj/EhQ+JiIjO0pz7d7O7wB5//HF88sknyMjIwPXXX48VK1Z4TSEn37A5ZPx53X58sb8EGklCQu1B5YXEvgw/REREF6lFAWjXrl3Yvn07evbsiUcffRRJSUmYPn06du7c2Rp1DFinLcqWH11D66GtLgQkDZCYqXKtiIiI2r4WD4K+/PLL8dprr6GwsBBz587FP/7xDwwaNAj9+/fHsmXL0MyeNWrC6VolAHUXx5SCmM6AMVTFGhEREbUPLR4EbbfbsWbNGixfvhwbN27EFVdcgfvvvx8nTpzA008/jS+++AIffvihL+saUGptDtTanJCEE8n1rvWLkvqpWykiIqJ2otkBaOfOnVi+fDk++ugjaDQaTJw4EX/961/Ro0cPzzG33norBg0a5NOKBppSszKuqpNUBINcDwSFAtGdVa4VERFR+9DsADRo0CBcf/31ePPNNzFmzBjo9fpGx3Tq1MlrOwpqvtJqZe+vbrKr+ysxE9CovmwTERFRu9DsAHT06FGkpaWd95iQkBAsX768xZUioLTKgs6Vm3GZ9CUghrL7i4iIyIea3aRQWlqKbdu2NSrftm0bfvzxR59UioBTNTb0DzmNjEg9tJEdlfV/iIiIyCeaHYCmTZvW5GahJ0+exLRp03xSqUBXY3Wgpt6BePsJhOhkZe0fIiIi8plmB6BffvkFl19+eaPyyy67DL/88otPKhXoSs31CHacRpRkgVajAeK6q10lIiKidqXZAchoNKKkpKRReVFREXQ61bcWaxdKzFZE1BciROsEgsIBrUHtKhEREbUrzQ5Av/vd7zB79mxUVVV5yiorK/H000/j+uuv92nlAlVpdT0i6k8iVCcDQZFqV4eIiKjdaXaTzSuvvIKrrroKaWlpuOyyywAAu3btQkJCAv71r3/5vIKBRgiB0ioLetpKEJI+ABj2MKBjCxAREZEvNTsAdejQAXv27MEHH3yA3bt3Izg4GFOmTMG4ceOaXBOImqfG6oBkLoJO2GEKjQdC49WuEhERUbvTokE7ISEheOihh3xdF4J7/M9JBBu00EZ34s7vREREraDFo5Z/+eUX5Ofnw2azeZXffPPNF12pQFZqrkeE9SRCjTogKl3t6hAREbVLLVoJ+tZbb8XevXshSZJn13fJ1VLhdDp9W8MAU1ZpRpy1FCFhJgYgIiKiVtLsWWAzZsxAp06dUFpaCpPJhJ9//hnffPMNBg4ciE2bNrVCFQOHEAJ1ZccgQcAUEQsER6pdJSIionap2S1AW7ZswZdffonY2FhoNBpoNBoMGzYMCxcuxGOPPYaffvqpNeoZEKqtDhir8yEBCEngzu9EREStpdktQE6nE2FhYQCA2NhYFBYWAgDS0tKQl5fn29oFmFKzsv6PyaiFNiZD7eoQERG1W81uAerTpw92796NTp06ISsrCy+99BIMBgPeeustZGTwpn0xyk+dQrC9EiHhQUBUmtrVISIiareaHYCeffZZWCwWAMCf/vQn3HTTTbjyyisRExODlStX+ryCgcRSfBgmAMaoZEAfrHZ1iIiI2q1mB6ARI0Z4nnfp0gUHDhxARUUFoqKiPDPBqPmEELCXHwPA8T9EREStrVljgOx2O3Q6Hfbt2+dVHh0dzfBzkcy1dgRbCqCRgLCkrmpXh4iIqF1rVguQXq9Hamoq1/rxJYcN+PZVlJ92wOCoQVBwMHRRqWrXioiIqF1r9iywZ555Bk8//TQqKipaoz4Bq7qmGgCgi0oBtC1eoJuIiIguQLPvtG+88QYOHz6M5ORkpKWlISQkxOv1nTt3+qxygcRqqQL0IQjm+B8iIqJW1+wANGbMmFaoRuCyOWX8eLgc5opyhMeHIDyZ43+IiIhaW7MD0Ny5c1ujHgHN4bBCEjJkrRFR8SlqV4eIiKjda/YYIPI9p7UOACBHpEKr1apcGyIiovav2S1AGo3mvFPeOUOs+YS9FgCgj+ukck2IiIgCQ7MD0Jo1a7x+ttvt+Omnn/Dee+9h/vz5PqtYIBFOOwAgLDpJ5ZoQEREFhmYHoFtuuaVR2R133IHevXtj5cqVuP/++31SsYAhO6ETNjighSE0Wu3aEBERBQSfjQG64oorkJub66vTBQ6rGUIATkkDrTHkt48nIiKii+aTAFRXV4fXXnsNHTp08MXpAkt9FYSQUIdg6LQck05EROQPze4CO3vTUyEEqqurYTKZ8P777/u0coFAqq+EDKBOCoZOw/3UiIiI/KHZAeivf/2rVwDSaDSIi4tDVlYWoqKifFq5QKC3mREWbIBZHwmTgVPgiYiI/KHZAWjy5MmtUI0AZrdARKahPvIKaA1GtWtDREQUEJo96GT58uVYvXp1o/LVq1fjvffe80mlAolcWwlZAFZtGPQajgEiIiLyh2bfcRcuXIjY2NhG5fHx8ViwYIFPKhVI5LrTAACrLgw6LccAERER+UOzA1B+fj46dWq8YnFaWhry8/N9UqmAYa+HsCnbYNTrwjkImoiIyE+aHYDi4+OxZ8+eRuW7d+9GTEyMTyoVMOqr4BQCdk0wNDrDebcYISIiIt9pdgAaN24cHnvsMXz11VdwOp1wOp348ssvMWPGDNx9992tUcf2q74Ssixc3V8c/0NEROQvzZ4F9vzzz+PXX3/F8OHDodMpb5dlGRMnTuQYoOaqq4QQrvE/7P4iIiLym2YHIIPBgJUrV+LPf/4zdu3aheDgYGRmZiItLa016te+1VfCKQTqOQCaiIjIr5odgNy6du2Krl27+rIugae+CrIQsOrC2QVGRETkR82+695+++34y1/+0qj8pZdewp133umTSgWMOmUNoHp2gREREflVswPQN998gxtvvLFR+ciRI/HNN9+0qBJLlixBeno6goKCkJWVhe3bt5/z2GuuuQaSJDV6jBo1ynOMEALPPfcckpKSEBwcjJycHBw6dKhFdWs1QigtQO5B0AxAREREftPsAFRTUwODwdCoXK/Xw2w2N7sCK1euxMyZMzF37lzs3LkT/fr1w4gRI1BaWtrk8Z988gmKioo8j3379kGr1Xq1Pr300kt47bXXsHTpUmzbtg0hISEYMWIE6uvrm12/VmOtBmQHnJBg1YZCzy4wIiIiv2n2XTczMxMrV65sVL5ixQr06tWr2RVYtGgRHnzwQUyZMgW9evXC0qVLYTKZsGzZsiaPj46ORmJiouexceNGmEwmTwASQmDx4sV49tlnccstt6Bv37745z//icLCQnz66afNrl+rqa8CADh0YYCkgZYtQERERH7T7EHQc+bMwW233YYjR47guuuuAwDk5ubiww8/xMcff9ysc9lsNuzYsQOzZ8/2lGk0GuTk5GDLli0XdI533nkHd999N0JCQgAAx44dQ3FxMXJycjzHREREICsrC1u2bGlyrSKr1Qqr1er5uSUtWc1WXwkAsBnCABnQcxYYERGR3zS7BWj06NH49NNPcfjwYfz+97/HH/7wB5w8eRJffvklunTp0qxzlZeXw+l0IiEhwas8ISEBxcXFv/n+7du3Y9++fXjggQc8Ze73NeecCxcuREREhOeRkpLSrOtokbpKAIBNFw4A0HEjVCIiIr9p0V131KhR2Lx5MywWC44ePYq77roLTz75JPr16+fr+p3XO++8g8zMTAwePPiizjN79mxUVVV5HgUFBT6q4Xm4W4D0SgDSsgWIiIjIb1rc7PDNN99g0qRJSE5OxquvvorrrrsOW7dubdY5YmNjodVqUVJS4lVeUlKCxMTE877XYrFgxYoVuP/++73K3e9rzjmNRiPCw8O9Hq3O1QJUrw0DAOjZAkREROQ3zbrrFhcX48UXX0TXrl1x5513Ijw8HFarFZ9++ilefPFFDBo0qFkfbjAYMGDAAOTm5nrKZFlGbm4usrOzz/ve1atXw2q14t577/Uq79SpExITE73OaTabsW3btt88p1+5BkG7AxBXgiYiIvKfCw5Ao0ePRvfu3bFnzx4sXrwYhYWFeP311y+6AjNnzsTbb7+N9957D/v378fUqVNhsVgwZcoUAMDEiRO9Bkm7vfPOOxgzZkyjHeglScLjjz+OP//5z1i7di327t2LiRMnIjk5GWPGjLno+vqE06FMg4eyCCIArgNERETkRxc8C+y///0vHnvsMUydOtWnW2CMHTsWZWVleO6551BcXIz+/ftj/fr1nkHM+fn50JzVPZSXl4fvvvsOn3/+eZPn/OMf/wiLxYKHHnoIlZWVGDZsGNavX4+goCCf1fuiuFp/oNXDKhkBOLgVBhERkR9JQghxIQdu3boV77zzDlauXImePXtiwoQJuPvuu5GUlITdu3e3aA2gS5XZbEZERASqqqpaZzzQqSPAnlVAaBw+1Y3E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",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "plot_experiment_history(all_wavNN_history, \"WavMLP\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "{'opt': , 'opt_config': {'lr': 0.05479500771794423, 'momentum': False}, 'loss': , 'model_params': {'in_channels': 28, 'hidden_size': 605, 'level': 0, 'out_channels': 10}}\n"
- ]
- }
- ],
- "source": [
- "# Open the params and do the variance test\n",
- "with open(\"../results/optimization/vanilla_split_baysianopt.json\", 'r') as f: \n",
- " vanilla_split_params = json.load(f)\n",
- "\n",
- "vanilla_split_params_guass = pd.DataFrame(vanilla_split_params).iloc[pd.DataFrame(vanilla_split_params)['target'].idxmax()]['params']\n",
- "\n",
- "vanilla_split_params = select_params(\n",
- " hidden_size=vanilla_split_params_guass['hidden_size'], \n",
- " loss_id=vanilla_split_params_guass['loss_id'], \n",
- " level=0, \n",
- " optimizer_class_id=vanilla_split_params_guass['optimizer_class_id'], \n",
- " optimizer_lr=vanilla_split_params_guass['optimizer_lr'], \n",
- " optimizer_momentum_id=vanilla_split_params_guass['optimizer_momentum_id']\n",
- ")\n",
- "print(vanilla_split_params)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {},
- "outputs": [],
- "source": [
- "all_vanilla_split_history = {}\n",
- "num_tests = 10\n",
- "\n",
- "data_params = {\"sample_size\": [4000, 2000, 2000], \"split\": True}\n",
- "vanilla_split_params['model_params'].pop(\"level\")\n",
- "\n",
- "for iteration in range(num_tests): \n",
- "\n",
- " training = TrainingLoop(\n",
- " model_class=BananaSplitMLP,\n",
- " model_params=vanilla_split_params[\"model_params\"],\n",
- " data_class=NMISTGenerator,\n",
- " data_params=data_params,\n",
- " optimizer_class=vanilla_split_params['opt'],\n",
- " optimizer_config=vanilla_split_params['opt_config'],\n",
- " loss=vanilla_split_params['loss'],\n",
- " epochs=80,\n",
- " )\n",
- "\n",
- " training()\n",
- " all_vanilla_split_history[iteration] = training.history"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABYsUlEQVR4nO3deXhTZf428PtkT7qk+0pLEZBFZJHNigpoFZBBQRkRUcENF2BAxldhRDYH0Rl1QGHgp6MwOiKIg8i4IVRQERREi6CsslWgG9A1zf68f6RJE1pKW5Ickt6f68qV5OTk5DmNtjffZzmSEEKAiIiIKEwo5G4AERERkT8x3BAREVFYYbghIiKisMJwQ0RERGGF4YaIiIjCCsMNERERhRWGGyIiIgorDDdEREQUVhhuiIiIKKww3BAR1WP58uWQJAlHjx71bBswYAAGDBggW5uIqHEYbohCkPsPr/ctKSkJAwcOxGeffSZ382Sxe/dujBw5Eq1bt4ZOp0N6ejpuuukmvPbaawH7zJMnT2L27NnIy8tr1P7e39uWLVvqvC6EQEZGBiRJwh/+8Aef1yRJwsSJExs8/oABA3z+m4iLi0Pv3r3x1ltvwel0Nvq8iEKdSu4GEFHzzZ07F23atIEQAoWFhVi+fDluueUW/O9//6vzxzGcbd26FQMHDkRmZiYefvhhpKSkID8/H9999x0WLlyISZMm+eVzvvjiC5/nJ0+exJw5c5CVlYXu3bs3+jg6nQ4rVqzAtdde67P9q6++wu+//w6tVtvsNrZq1Qrz588HABQXF+Ptt9/Ggw8+iAMHDuCFF15o9nGJQgnDDVEIGzJkCHr16uV5/uCDDyI5ORnvvfdeiwo38+bNg9FoxI4dOxATE+PzWlFRkd8+R6PR+OU4t9xyC1avXo1XX30VKlXtr+EVK1agZ8+eKCkpafaxjUYj7rnnHs/zRx55BB06dMCiRYvw3HPPQa1WX1TbiUIBu6WIwkhMTAz0er3PH0wAeOmll3DNNdcgPj4eer0ePXv2xAcffFDn/e6uj7Vr16JLly7QarW44oor8Pnnn/vsd+zYMTz++OPo0KED9Ho94uPj8cc//tFnfApQ2w3z7bffYurUqUhMTERERARGjBiB4uJin30/+ugjDB06FGlpadBqtWjbti2ee+45OByOC573b7/9hiuuuKJOsAGApKSkes/x3XffRYcOHaDT6dCzZ098/fXXF/wc7zE3mzdvRu/evQEA999/v6craPny5Rc8zujRo3H69Gls2LDBs81qteKDDz7A3XfffcH3N4XBYMDVV1+NqqqqOj9zonDFcEMUwsrKylBSUoLi4mL88ssveOyxx1BZWenzL3cAWLhwIXr06IG5c+fi+eefh0qlwh//+Ed88skndY65ZcsWPP7447jrrrvwt7/9DWazGXfccQdOnz7t2WfHjh3YunUr7rrrLrz66qt49NFHkZubiwEDBsBkMtU55qRJk7Br1y7MmjULjz32GP73v//VGT+yfPlyREZGYurUqVi4cCF69uyJmTNnYtq0aRf8ObRu3Ro7d+7Enj17GvVz++qrrzBlyhTcc889mDt3Lk6fPo3Bgwc3+v0A0KlTJ8ydOxcAMH78eLzzzjt45513cP3111/wvVlZWcjOzsZ7773n2fbZZ5+hrKwMd911V6Pb0FiHDx+GUqmsN/wRhSVBRCFn2bJlAkCdm1arFcuXL6+zv8lk8nlutVpFly5dxA033OCzHYDQaDTi0KFDnm27du0SAMRrr7123uMJIcS2bdsEAPH222/XaWdOTo5wOp2e7U888YRQKpWitLS0wWM+8sgjwmAwCLPZ3NCPQ3zxxRdCqVQKpVIpsrOzxVNPPSXWr18vrFZrnX3dP6sffvjBs+3YsWNCp9OJESNG1Gn7kSNHPNv69+8v+vfv73m+Y8cOAUAsW7aswfade8wdO3aIRYsWiaioKM95//GPfxQDBw4UQgjRunVrMXTo0DrtnjBhQoPH79+/v+jYsaMoLi4WxcXFYu/eveJPf/qTACCGDRvWqDYShQNWbohC2OLFi7FhwwZs2LAB//nPfzBw4EA89NBDWLNmjc9+er3e8/js2bMoKyvDddddhx9//LHOMXNyctC2bVvP865duyI6OhqHDx+u93g2mw2nT59Gu3btEBMTU+8xx48fD0mSPM+vu+46OBwOHDt2rN5jVlRUoKSkBNdddx1MJhP27dvX4M/hpptuwrZt23Drrbdi165d+Nvf/oZBgwYhPT0d69atq7N/dnY2evbs6XmemZmJ2267DevXr29UN5g/3HnnnaiursbHH3+MiooKfPzxx37pktq3bx8SExORmJiITp064bXXXsPQoUPx1ltv+aHVRKGBA4qJQlifPn18BhSPHj0aPXr0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",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHHCAYAAABXx+fLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABkp0lEQVR4nO3deXhTVeI+8Dd70r10bykta1lkk6UWQVBRNlEYVEBUQBRRQJFxFBQE9KuMyyC4jP7GEXBDEAcYxw2xKoqAIDvKvpWlO7Tplu3m/P64SUpowba2uW3yfp4nD8nJzc25Tcl9e7arEkIIEBEREQUQtdIVICIiIvI1BiAiIiIKOAxAREREFHAYgIiIiCjgMAARERFRwGEAIiIiooDDAEREREQBhwGIiIiIAg4DEBEREQUcBiAiojpavnw5VCoVTp486SkbMGAABgwYoFidiKhmGICI/JT75HzxLTY2Ftdffz2++uorpauniH379uH2229HSkoKjEYjkpKScNNNN+H1119vsPc8d+4c5s+fj927d9do+4s/t02bNlV5XgiB5ORkqFQq3HLLLV7PqVQqTJs27Yr7HzBggNfvRLNmzdCrVy8sXboUTqezxsdF1NRpla4AETWsZ599Fi1btoQQArm5uVi+fDmGDh2K//3vf1VOoP5s8+bNuP7669GiRQs88MADiI+Px+nTp7F161YsWbIE06dPr5f3+eabb7wenzt3DgsWLEBqaiq6detW4/0YjUasWLECffv29SrfuHEjzpw5A4PBUOc6Nm/eHAsXLgQA5Ofn4/3338ekSZNw+PBh/P3vf6/zfomaEgYgIj83ZMgQ9OzZ0/N40qRJiIuLw8cffxxQAej5559HeHg4tm/fjoiICK/n8vLy6u199Hp9vexn6NChWL16NV577TVotZVf1StWrECPHj1QUFBQ532Hh4fj7rvv9jx+8MEHkZaWhjfeeAPPPfccdDrdn6o7UVPALjCiABMREQGTyeR1UgWAV155BX369EFUVBRMJhN69OiBTz/9tMrr3d0s69atw1VXXQWDwYBOnTrh66+/9tru1KlTePjhh5GWlgaTyYSoqCjccccdXuNlgMoun59//hkzZ85ETEwMgoODMXLkSOTn53tt+9///hfDhg1DYmIiDAYDWrdujeeeew6SJP3hcR87dgydOnWqEn4AIDY2ttpj/Oijj5CWlgaj0YgePXrgxx9//MP3uXgM0A8//IBevXoBACZOnOjpdlq+fPkf7mfs2LEoLCzEhg0bPGU2mw2ffvop7rrrrj98fW0EBQXhmmuuQVlZWZWfOZG/YgAi8nPFxcUoKChAfn4+fvvtNzz00EMoLS31agEAgCVLlqB79+549tln8cILL0Cr1eKOO+7AF198UWWfmzZtwsMPP4wxY8bgpZdegsViwahRo1BYWOjZZvv27di8eTPGjBmD1157DVOmTEFmZiYGDBiA8vLyKvucPn069uzZg3nz5uGhhx7C//73vyrjWZYvX46QkBDMnDkTS5YsQY8ePfDMM89g1qxZf/hzSElJwY4dO7B///4a/dw2btyIGTNm4O6778azzz6LwsJCDB48uMavB4AOHTrg2WefBQBMnjwZH3zwAT744ANcd911f/ja1NRUZGRk4OOPP/aUffXVVyguLsaYMWNqXIeaOn78ODQaTbUBkcgvCSLyS8uWLRMAqtwMBoNYvnx5le3Ly8u9HttsNnHVVVeJG264wascgNDr9eLo0aOesj179ggA4vXXX7/s/oQQYsuWLQKAeP/996vUc+DAgcLpdHrKH3vsMaHRaERRUdEV9/nggw+KoKAgYbFYrvTjEN98843QaDRCo9GIjIwM8cQTT4j169cLm81WZVv3z+rXX3/1lJ06dUoYjUYxcuTIKnU/ceKEp6x///6if//+nsfbt28XAMSyZcuuWL9L97l9+3bxxhtviNDQUM9x33HHHeL6668XQgiRkpIihg0bVqXeU6dOveL++/fvL9q3by/y8/NFfn6+OHDggHjkkUcEADF8+PAa1ZHIH7AFiMjPvfnmm9iwYQM2bNiADz/8ENdffz3uv/9+rFmzxms7k8nkuX/hwgUUFxejX79+2LlzZ5V9Dhw4EK1bt/Y87tKlC8LCwnD8+PFq92e321FYWIg2bdogIiKi2n1OnjwZKpXK87hfv36QJAmnTp2qdp8lJSUoKChAv379UF5ejoMHD17x53DTTTdhy5YtuPXWW7Fnzx689NJLGDRoEJKSkvDZZ59V2T4jIwM9evTwPG7RogVuu+02rF+/vkZdbvXhzjvvREVFBT7//HOUlJTg888/r5fur4MHDyImJgYxMTHo0KEDXn/9dQwbNgxLly6th1oTNQ0cBE3k53r37u01CHrs2LHo3r07pk2b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4IcNG4Zhw4YBkJubPv74Yzz++OPYsWMHJEmq1wr6Fa0euH62V5GDF0MlIiLyuTqfdX/88UeMHz8eiYmJ+Mc//oEbbrgBW7durc+6BQTOAiMiIvK9WrUA5eTkYPny5Xj33XdhNptx5513wmq1Yt26dejYsWND1dGvcR0gIiIi36txC9Dw4cORlpaGvXv3YvHixTh37hxef/31hqxbQHBfDJUrQRMREflOjVuAvvrqKzzyyCN46KGH/tQlMMibpwWIXWBEREQ+U+Nmh02bNqGkpAQ9evRAeno63njjDRQUFDRk3QKCpwWIXWBEREQ+U+MAdM011+Cdd95BdnY2HnzwQaxcuRKJiYlwOp3YsGEDSkpKGrKefquyBYhdYERERL5S67NucHAw7rvvPmzatAn79u3DX//6V/z9739HbGwsbr311oaoo1/jIGgiIiLf+1PNDmlpaXjppZdw5swZfPzxx/VVp4AicQwQERGRz9VLv4tGo8GIESPw2Wef1cfuAoYQAnbPGCB2gREREfkKz7oKcgrAfSlatgARERH5DgOQgtytPwAvhkpERORLDEAKco//AdgCRERE5EsMQAq6eBFElYoBiIiIyFcYgBTk4ABoIiIiRfDMqyBOgSciIlIGA5CC7FwEkYiISBEMQAqSJLYAERERKYEBSEF2J8cAERERKYFnXgW5xwBxDSAiIiLfYgBSkHshRB3HABEREfkUA5CCKluA+DEQERH5Es+8CrK7BkHr2AVGRETkUwxACuIYICIiImUwACnI4RkDxI+BiIjIl3jmVZCDLUBERESKYABSkMO9DhADEBERkU8xACnI4V4Jml1gREREPsUzr4I4CJqIiEgZDEAKcl8MlQshEhER+RYDkIIk1xggtgARERH5FgOQgjwLIXIMEBERkU/xzKsgjgEiIiJSBgOQgjwLIfJaYERERD7FM6+CPAshchA0ERGRTzEAKcjBi6ESEREpggFIQbwUBhERkTIYgBTkHgPElaCJiIh8i2dehQghPC1AvBYYERGRbzEAKcQdfgBAy0HQREREPsUApBDp4gDEafBEREQ+xTOvQtwtQCoVwB4wIiIi32IAUohnEUSNGioVExAREZEvMQAphFPgiYiIlMMApBD3IoicAUZEROR7DEAKcThdawAxABEREfkcA5BCPC1AXASRiIjI53j2VQgXQSQiIlIOA5BC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",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "plot_experiment_history(all_vanilla_split_history, \"Banana Split MLP\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Timing Tests \n",
- "\n",
- "# For both the same networks and same parameter'd networks, which are faster. "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Optized \n",
- "import time \n",
- "num_tests = 100 \n",
- "\n",
- "data_params = {\"sample_size\": [4000, 2000, 2000], \"split\": True}\n",
- "vanilla_split_params['model_params'].pop(\"level\")\n",
- "vanilla_params['model_params'].pop(\"level\")\n",
- "\n",
- "\n",
- "vanilla_timing = []\n",
- "banana_timing = []\n",
- "wav_timing = []\n",
- "\n",
- "vanilla_network = TrainingLoop(\n",
- " model_class=VanillaMLP,\n",
- " model_params=vanilla_params[\"model_params\"],\n",
- " data_class=NMISTGenerator,\n",
- " data_params=data_params,\n",
- " optimizer_class=vanilla_params['opt'],\n",
- " optimizer_config=vanilla_params['opt_config'],\n",
- " loss=vanilla_params['loss'],\n",
- " epochs=1,\n",
- " )\n",
- "\n",
- "banana_network = TrainingLoop(\n",
- " model_class=BananaSplitMLP,\n",
- " model_params=vanilla_split_params[\"model_params\"],\n",
- " data_class=NMISTGenerator,\n",
- " data_params=data_params,\n",
- " optimizer_class=vanilla_split_params['opt'],\n",
- " optimizer_config=vanilla_split_params['opt_config'],\n",
- " loss=vanilla_split_params['loss'],\n",
- " epochs=1,\n",
- " )\n",
- "wav_network = TrainingLoop(\n",
- " model_class=WavMLP,\n",
- " model_params=wav_params[\"model_params\"],\n",
- " data_class=NMISTGenerator,\n",
- " data_params=data_params,\n",
- " optimizer_class=wav_params['opt'],\n",
- " optimizer_config=wav_params['opt_config'],\n",
- " loss=wav_params['loss'],\n",
- " epochs=1,\n",
- " )\n",
- "\n",
- "for _ in range(num_tests): \n",
- "\n",
- " start = time.time() \n",
- " vanilla_network() \n",
- " vanilla_timing.append(time.time()-start)\n",
- "\n",
- " start = time.time() \n",
- " banana_network() \n",
- " banana_timing.append(time.time()-start)\n",
- "\n",
- " start = time.time() \n",
- " wav_network() \n",
- " wav_timing.append(time.time()-start)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " vanilla_timing | \n",
- " wav_timing | \n",
- " banana_timing | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " count | \n",
- " 100.000000 | \n",
- " 100.000000 | \n",
- " 100.000000 | \n",
- "
\n",
- " \n",
- " mean | \n",
- " 0.254476 | \n",
- " 0.388343 | \n",
- " 0.426813 | \n",
- "
\n",
- " \n",
- " std | \n",
- " 0.007865 | \n",
- " 0.031199 | \n",
- " 0.022354 | \n",
- "
\n",
- " \n",
- " min | \n",
- " 0.244394 | \n",
- " 0.368939 | \n",
- " 0.406782 | \n",
- "
\n",
- " \n",
- " 25% | \n",
- " 0.250655 | \n",
- " 0.377405 | \n",
- " 0.417516 | \n",
- "
\n",
- " \n",
- " 50% | \n",
- " 0.253543 | \n",
- " 0.382401 | \n",
- " 0.422703 | \n",
- "
\n",
- " \n",
- " 75% | \n",
- " 0.257778 | \n",
- " 0.389872 | \n",
- " 0.427324 | \n",
- "
\n",
- " \n",
- " max | \n",
- " 0.316175 | \n",
- " 0.613781 | \n",
- " 0.604746 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " vanilla_timing wav_timing banana_timing\n",
- "count 100.000000 100.000000 100.000000\n",
- "mean 0.254476 0.388343 0.426813\n",
- "std 0.007865 0.031199 0.022354\n",
- "min 0.244394 0.368939 0.406782\n",
- "25% 0.250655 0.377405 0.417516\n",
- "50% 0.253543 0.382401 0.422703\n",
- "75% 0.257778 0.389872 0.427324\n",
- "max 0.316175 0.613781 0.604746"
- ]
- },
- "execution_count": 8,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "pd.DataFrame({\"vanilla_timing\":vanilla_timing, \"wav_timing\":wav_timing, \"banana_timing\":banana_timing}).describe()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAh8AAAHHCAYAAAAf2DoOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABAEklEQVR4nO3deZyN9f//8eeZfZ+xjFnCzNgaa3bZMlPDkEQpn6SylT6Fvvj5kE+IVLYWKRKVkUgpqY9KRUiRfXyyNJYIMWOJGetg5v37o6/r65ixDGeuWTzut9u53Zz39T7v6/W+3sM8Xee6znEYY4wAAABs4lbQBQAAgJsL4QMAANiK8AEAAGxF+AAAALYifAAAAFsRPgAAgK0IHwAAwFaEDwAAYCvCBwAAsBXhA7hEt27dFB0dXeT3kVf5UVNcXJzi4uJcOubVLF26VA6HQ0uXLrV1v4VVt27dFBAQUNBlAE4IH7gpJCUlyeFwaO3atQVdSoHav3+/RowYoeTk5IIupViaPXu2JkyYUNBlAIWeR0EXAMA++/fv18iRIxUdHa3atWs7bZs2bZqys7Ndur/vvvvOpeMVdrNnz9amTZvUr1+/gi4FKNQIHwAkSZ6eni4f08vLy+Vj4tqcPHlS/v7+BV0GkCvedsFNbf78+apRo4Z8fHxUo0YNff7557n2y87O1oQJE1S9enX5+PgoLCxMTz75pI4ePerU74svvlDbtm0VGRkpb29vVaxYUaNGjVJWVtZ11zh58mRVr15d3t7eioyMVO/evXXs2DGnPnFxcapRo4bWrVunJk2ayNfXVzExMZoyZYrVZ+nSpWrQoIEkqXv37nI4HHI4HEpKSpKU85qP3bt3y+Fw6JVXXtGkSZNUoUIF+fn5qVWrVtq7d6+MMRo1apTKli0rX19ftW/fXn/99VeOui6+5iM6Otra76WPi6/R+PPPP9WjRw+FhYXJ29tb1atX1/vvv5/j2Ozbt08dOnSQv7+/ypQpo/79+yszM/OajuuIESPkcDi0Y8cOdevWTSEhIQoODlb37t116tSpHP0//PBD1atXT76+vipZsqQeeugh7d2712muX331lf744w9rTtHR0TLGqHTp0howYIDVNzs7WyEhIXJ3d3day7Fjx8rDw0MnTpyw2n744Qc1b95c/v7+CgkJUfv27bV169Zc57JlyxY9/PDDKlGihJo1a3bZuScnJys0NFRxcXFO+wLswpkP3LS+++47dezYUdWqVdPo0aN15MgRde/eXWXLls3R98knn1RSUpK6d++uZ555Rrt27dJbb72lDRs26Oeff7bOGiQlJSkgIEADBgxQQECAfvjhBw0fPlwZGRkaP358nmscMWKERo4cqYSEBD311FNKSUnR22+/rTVr1jjtV5KOHj2qu+++W506dVLnzp31ySef6KmnnpKXl5d69OihqlWr6oUXXtDw4cPVq1cvNW/eXJLUpEmTK9Ywa9YsnT17Vn379tVff/2lcePGqVOnTrrzzju1dOlSDR48WDt27NCbb76pgQMH5hoSLpgwYUKOX3avv/66kpOTVapUKUlSWlqabr/9djkcDvXp00ehoaH65ptv1LNnT2VkZFhvaZw+fVp33XWX9uzZo2eeeUaRkZGaOXOmfvjhhzwd406dOikmJkajR4/W+vXr9e6776pMmTIaO3as1eell17SsGHD1KlTJz3++OM6dOiQ3nzzTd1xxx3asGGDQkJC9Nxzzyk9PV379u3T66+/LkkKCAiQw+FQ06ZN9eOPP1rj/fe//1V6errc3Nz0888/q23btpKk5cuXq06dOtYFoosWLVKbNm1UoUIFjRgxQqdPn9abb76ppk2bav369TkuEH7wwQdVuXJlvfzyyzLG5DrfNWvWKDExUfXr19cXX3whX1/fPB0vwCUMcBOYPn26kWTWrFljtdWuXdtERESYY8eOWW3fffedkWSioqKstuXLlxtJZtasWU5jLly4MEf7qVOncuz7ySefNH5+fubMmTNWW9euXZ32kZuDBw8aLy8v06pVK5OVlWW1v/XWW0aSef/99622Fi1aGEnm1VdftdoyMzNN7dq1TZkyZczZs2eNMcasWbPGSDLTp0/Psb9La9q1a5eRZEJDQ52O0ZAhQ4wkc9ttt5lz585Z7Z07dzZeXl5O82zRooVp0aLFZef4ySefGEnmhRdesNp69uxpIiIizOHDh536PvTQQyY4ONg6xhMmTDCSzCeffGL1OXnypKlUqZKRZJYsWXLZ/RpjzPPPP28kmR49eji133fffaZUqVLW8927dxt3d3fz0ksvOfX79ddfjYeHh1N727Ztc13X8ePHG3d3d5ORkWGMMWbixIkmKirKNGzY0AwePNgYY0xWVpYJCQkx/fv3t153Yf2OHDlitW3cuNG4ubmZxx57LMdcOnfunGPfXbt2Nf7+/sYYY3766ScTFBRk2rZt67ROgN142wU3pQMHDig5OVldu3ZVcHCw1d6yZUtVq1bNqe/cuXMVHBysli1b6vDhw9ajXr16CggI0JIlS6y+F/8v8vjx4zp8+LCaN2+uU6dO6bfffstTjYsWLdLZs2fVr18/ubn931/VJ554QkFBQfrqq6+c+nt4eOjJJ5+0nnt5eenJJ5/UwYMHtW7dujzt+2IPPvig0zFq1KiRJOmRRx6Rh4eHU/vZs2f1559/XtO4W7ZsUY8ePdS+fXsNHTpUkmSM0WeffaZ27drJGON0vBMTE5Wenq7169dLkr7++mtFRETogQcesMb08/NTr1698jS/f/7zn07PmzdvriNHjigjI0OSNG/ePGVnZ6tTp05O9YSHh6ty5cpO6385zZs3V1ZWllasWCHp7zMczZs3V/PmzbV8+XJJ0qZNm3Ts2DHrjNSFn9Fu3bqpZMmS1li1atVSy5Yt9fXXX191LhdbsmSJEhMTddddd2nevHny9va+at1AfiF84Kb0xx9/SJIqV66cY9utt97q9Hz79u1KT09XmTJlFBoa6vQ4ceKEDh48aPXdvHmz7rvvPgUHBysoKEihoaF65JFHJEnp6enXVeOl9Xh5ealChQrW9gsiIyNzXGBYpUoVSX9fv3G9ypcv7/T8QhApV65cru2XXgeTm4yMDN1///265ZZb9MEHH8jhcEiSDh06pGPHjmnq1Kk5jnX37t0lyTref/zxhypVqmS99oJLj1de51eiRAmneWzfvl3GGFWuXDlHTVu3bnVa/8upW7eu/Pz8rKBxIXzccccdWrt2rc6cOWNtu3CtxuXWX5KqVq2qw4cP6+TJk07tMTExue7/zJkzatu2rerUqaNPPvmEC4FR4LjmA7iK7OxslSlTRrNmzcp1e2hoqCTp2LFjatGihYKCgvTCCy+oYsWK8vHx0fr16zV48GCX38ZqF3d39zy1m8tca3Cxbt26af/+/Vq9erWCgoKs9gvH6JFHHlHXrl1zfW2tWrWuOn5eXG0e2dnZcjgc+uabb3Ltey0f4OXp6alGjRrpxx9/1I4dO5SamqrmzZsrLCxM586d06pVq7R8+XLFxsZaP0/X43LXb3h7e+vuu+/WF198oYULF+qee+657n0ArkD4wE0pKipK0t//q71USkqK0/OKFStq0aJFatq06RUvzlu6dKmOHDmiefPm6Y477rDad+3adUM1pqSkqEKFClb72bNntWvXLiUkJDj1379/f47bK7dt2yZJ1oWJl54lKAhjxozR/PnzNW/ePMXGxjptCw0NVWBgoLKysnLM71JRUVHatGmTjDFO87p0/W5UxYoVZYxRTEyMdSbpcq50fJs3b66xY8dq0aJFKl26tGJjY+VwOFS9enUtX75cy5cvdwoFF6//pX777TeVLl36mm+ldTgcmjVrltq3b68HH3xQ33zzje2fPAtcjLddcFOKiIhQ7dq1NWPGDKe3Q77//ntt2bLFqW+nTp2UlZWlUaNG5Rjn/Pnz1q2SF/5XfPH//M+ePavJkydfV40JCQny8vLSxIkTncZ87733lJ6ebt0hcXEt77zzjtO+33nnHYWGhqpevXqSZP2yuvRWXbssWrRIQ4cO1XPPPacOHTrk2O7u7q6OHTvqs88+06ZNm3JsP3TokPXnu+++W/v379enn35qtZ06dUpTp051ac3333+/3N3dNXLkyBxndYwxOnLkiPXc39//sm+vNW/eXJmZmZowYYKaNWtmBZXmzZtr5syZ2r9/v3W9h+T8M3rxem3atEnfffed7r777jzNw8vLS/PmzVODBg3Url07rV69Ok+vB1yJMx+4aY0ePVpt27ZVs2bN1KNHD/3111968803Vb16dafbQVu0aKEnn3xSo0ePVnJyslq1aiVPT09t375dc+fO1RtvvKEHHnhATZo0UYkSJdS1a1c988wzcjgcmjlz5jW9DZGb0NBQDRkyRCNHjlTr1q117733KiUlRZMnT1aDBg2sa0kuiIyM1NixY7V7925VqVJFH3/8sZKTkzV16lTrltyKFSsqJCREU6ZMUWBgoPz9/dWoUaPLXivgap07d1ZoaKgqV66sDz/80Glby5YtFRYWpjFjxmjJkiVq1KiRnnjiCVWrVk1//fWX1q9fr0WLFlmfJfLEE0/orbfe0mOPPaZ169YpIiJCM2fOlJ+fn0trrlixol588UUNGTJEu3fvVocOHRQYGKhdu3bp888/V69evTRw4EBJUr169fTxxx9rwIABatCggQICAtSuXTtJUuPGjeXh4aGUlBSni2LvuOMOvf3225LkFD4kafz48WrTpo0aN26snj17WrfaBgcHa8SIEXmei6+vrxYsWKA777xT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n31WGRkZio2Nlbu7u7KysvTSSy9Z7z+lpqZKklPSu/D8wrZLjR49WiNHjrye2gEAQBGUp7ddPvnkE82aNUuzZ8/W+vXrNWPGDL3yyiuaMWPGdRcwZMgQpaenW4+9e/de91gAAKDwy9OZj3/961969tlnrbdPatasqT/++EOjR49W165dFR4eLklKS0tTRESE9bq0tDTVrl071zG9vb3l7e19neUDAICiJk9nPk6dOiU3N+eXuLu7Kzs7W5IUExOj8PBwLV682NqekZGhVatWqXHjxi4oFwAAFHV5OvPRrl07vfTSSypfvryqV6+uDRs26LXXXlOPHj0kSQ6HQ/369dOLL76oypUrKyYmRsOGDVNkZKQ6dOiQH/UDAIAiJk/h480339SwYcP09NNP6+DBg4qMjNSTTz6p4cOHW30GDRqkkydPqlevXjp27JiaNWumhQsXysfHx+XFAwCAosdhcrunpwBlZGQoODhY6enpCgoKKuhygLwZEVxA+y38tx8C1+rMmTPatWuXYmJi+I9rIXOltcnL72++2wUAANiK8AEAAGxF+AAAALbK0wWnAAAUpJozatq6v1+7/pqn/t26dXP64M2SJUuqQYMGGjdunGrVquXq8oosznwAAOBCrVu31oEDB3TgwAEtXrxYHh4euueeewq6rEKF8AEAgAt5e3srPDxc4eHhql27tp599lnt3btXhw4dkiQNHjxYVapUkZ+fnypUqKBhw4bp3Llz1utHjBih2rVra+bMmYqOjlZwcLAeeughHT9+3OqzcOFCNWvWTCEhISpVqpTuuece7dy509q+e/duORwOzZs3T/Hx8fLz89Ntt92mlStXWn2OHDmizp0765ZbbpGfn59q1qypjz76yIYjRPgAACDfnDhxQh9++KEqVaqkUqVKSZICAwOVlJSkLVu26I033tC0adP0+uuvO71u586dmj9/vhYsWKAFCxZo2bJlGjNmjLX95MmTGjBggNauXavFixfLzc1N9913n/WJ4xc899xzGjhwoJKTk1WlShV17txZ58+fl/T3bbP16tXTV199pU2bNqlXr1569NFHtXr16nw+KlzzAQCASy1YsEABAQGS/g4JERERWrBggfX1JEOHDrX6RkdHa+DAgZozZ44GDRpktWdnZyspKUmBgYGSpEcffVSLFy/WSy+9JEnq2LGj0z7ff/99hYaGasuWLapRo4bVPnDgQLVt21aSNHLkSFWvXl07duxQbGysbrnlFg0cONDq27dvX3377bf65JNP1LBhQ1cekhw48wEAgAvFx8crOTlZycnJWr16tRITE9WmTRv98ccfkqSPP/5YTZs2VXh4uAICAjR06FDt2bPHaYzo6GgreEhSRESEDh48aD3fvn27OnfurAoVKigoKEjR0dGSlGOciy9yvfCFrxfGycrK0qhRo1SzZk2VLFlSAQEB+vbbb3OMkR848wEAgAv5+/urUqVK1vN3331XwcHBmjZtmtq2basuXbpo5MiRSkxMVHBwsObMmaNXX33VaQxPT0+n5w6Hw+ktlXbt2ikqKkrTpk1TZGSksrOzVaNGDZ09e/ay4zgcDkmyxhk/frzeeOMNTZgwQTVr1pS/v7/69euXY4z8QPgAACAfORwOubm56fTp01qxYoWioqL03HPPWdsvnBG5VkeOHFFKSoqmTZum5s2bS5J++umnPNf1888/q3379nrkkUck/R1Ktm3bpmrVquV5rLwifAAA4EKZmZlKTU2VJB09elRvvfWWTpw4oXbt2ikjI0N79uzRnDlz1KBBA3311Vf6/PPP8zR+iRIlVKpUKU2dOlURERHas2ePnn322TzXWblyZX366adasWKFSpQooddee01paWm2hA+u+QAAwIUWLlyoiIgIRUREqFGjRlqzZo3mzp2ruLg43Xvvverfv7/69Omj2rVra8WKFRo2bFiexndzc9OcOXO0bt061ahRQ/3799f48ePzXOfQoUNVt25dJSYmKi4uTuHh4erQoUOex7kefKst4Ep8qy1ww/hW28KLb7UFAABFEuEDAADYivABAABsRfgAAAC2InwAAAqlQnY/BOS6NSF8AAAKlQufynnq1KkCrgSXuvDpp+7u7jc0Dh8yBgAoVNzd3RUSEmJ9B4mfn5/10eAoONnZ2Tp06JD8/Pzk4XFj8YHwAUA1Z9TM1/F/7fprvo6P4ic8PFySnL5MDQXPzc1N5cuXv+EwSPgAABQ6DodDERERKlOmjM6dO1fQ5eB/eXl5yc3txq/YIHwAAAotd3f3G76+AIUPF5wCAABbET4AAICtCB8AAMBWhA8AAGArwgcAALAV4QMAANiK8AEAAGxF+AAAALYifAAAAFsRPgAAgK0IHwAAwFaEDwAAYCvCBwAAsBXhAwAA2IrwAQAAbEX4AAAAtiJ8AAAAWxE+AACArQgfAADAVoQPAABgK8IHAACwFeEDAADYivABAABsRfgAAAC2InwAAABbET4AAICtCB8AAMBWhA8AAGArwgcAALAV4QMAANiK8AEAAGxF+AAAALYifAAAAFsRPgAAgK0IHwAAwFaEDwAAYCvCBwAAsBXhAwAA2IrwAQAAbEX4AAAAtiJ8AAAAWxE+AACArQgfAADAVoQPAABgK8IHAACwFeEDAADYKs/h488//9QjjzyiUqVKydfXVzVr1tTatWut7cYYDR8+XBEREfL19VVCQoK2b9/u0qIBAEDRlafwcfToUTVt2lSenp765ptvtGXLFr366qsqUaKE1WfcuHGaOHGipkyZolWrVsnf31+JiYk6c+aMy4sHAABFj0deOo8dO1blypXT9OnTrbaYmBjrz8YYTZgwQUOHDlX79u0lSR988IHCwsI0f/58PfTQQy4qGwAAFFV5OvPx5Zdfqn79+nrwwQdVpkwZ1alTR9OmTbO279q1S6mpqUpISLDagoOD1ahRI61cuTLXMTMzM5WRkeH0AAAAxVeewsfvv/+ut99+W5UrV9a3336rp556Ss8884xmzJghSUpNTZUkhYWFOb0uLCzM2nap0aNHKzg42HqUK1fueuYBAACKiDyFj+zsbNWtW1cvv/yy6tSpo169eumJJ57QlClTrruAIUOGKD093Xrs3bv3uscCAACFX57CR0REhKpVq+bUVrVqVe3Zs0eSFB4eLklKS0tz6pOWlmZtu5S3t7eCgoKcHgAAoPjKU/ho2rSpUlJSnNq2bdumqKgoSX9ffBoeHq7Fixdb2zMyMrRq1So1btzYBeUCAICiLk93u/Tv319NmjTRyy+/rE6dOmn16tWaOnWqpk6dKklyOBzq16+fXnzxRVWuXFkxMTEaNmyYIiMj1aFDh/yoHwAAFDF5Ch8NGjTQ559/riFDhuiFF15QTEyMJkyYoC5dulh9Bg0apJMnT6pXr146duyYmjVrpoULF8rHx8flxQMAgKLHYYwxBV3ExTIyMhQcHKz09HSu/0DRMyK4gPabfkMvrzmjposKyd2vXX/N1/EBFLy8/P7mu10AAICtCB8AAMBWhA8AAGArwgcAALAV4QMAANiK8AEAAGxF+AAAALYifAAAAFsRPgAAgK0IHwAAwFaEDwAAYCvCBwAAsBXhAwAA2IrwAQAAbEX4AAAAtiJ8AAAAWxE+AACArQgfAADAVoQPAABgK8IHAACwFeEDAADYivABAABsRfgAAAC2InwAAABbET4AAICtCB8AAMBWhA8AAGArwgcAALAV4QMAANiK8AEAAGxF+AAAALYifAAAAFsRPgAAgK0IHwAAwFaEDwAAYCvCBwAAsBXhAwAA2IrwAQAAbEX4AAAAtiJ8AAAAWxE+AACArQgfAADAVh4FXUBhFP3sV1fcvntMW5sqAQCg+OHMBwAAsBXhAwAA2IrwAQAAbEX4AAAAtiJ8AAAAWxE+AACArQgfAADAVoQPAABgK8IHAACwFeEDAADYivABAABsRfgAAAC2InwAAABbET4AAICtCB8AAMBWhA8AAGArwgcAALAV4QMAANiK8AEAAGxF+AAAALYifAAAAFsRPgAAgK0IHwAAwFaEDwAAYCvCBwAAsBXhAwAA2IrwAQAAbHVD4WPMmDFyOBzq16+f1XbmzBn17t1bpUqVUkBAgDp27Ki0tLQbrRMAABQT1x0+1qxZo3feeUe1atVyau/fv7/+85//aO7cuVq2bJn279+v+++//4YLBQAAxcN1hY8TJ06oS5cumjZtmkqUKGG1p6en67333tNrr72mO++8U/Xq1dP06dO1YsUK/fLLLy4rGgAAFF3XFT569+6ttm3bKiEhwal93bp1OnfunFN7bGysypcvr5UrV+Y6VmZmpjIyMpweAACg+PLI6wvmzJmj9evXa82aNTm2paamysvLSyEhIU7tYWFhSk1NzXW80aNHa+TIkXktAwAAFFF5OvOxd+9e/c///I9mzZolHx8flxQwZMgQpaenW4+9e/e6ZFwAAFA45Sl8rFu3TgcPHlTdunXl4eEhDw8PLVu2TBMnTpSHh4fCwsJ09uxZHTt2zOl1aWlpCg8Pz3VMb29vBQUFOT0AAEDxlae3Xe666y79+uuvTm3du3dXbGysBg8erHLlysnT01OLFy9Wx44dJUkpKSnas2ePGjdu7LqqAQBAkZWn8BEYGKgaNWo4tfn7+6tUqVJWe8+ePTVgwACVLFlSQUFB6tu3rxo3bqzbb7/ddVUDAIAiK88XnF7N66+/Ljc3N3Xs2FGZmZlKTEzU5MmTXb0bAABQRN1w+Fi6dKnTcx8fH02aNEmTJk260aEBAEAxxHe7AAAAWxE+AACArQgfAADAVoQPAABgK8IHAACwFeEDAADYivABAABsRfgAAAC2InwAAABbET4AAICtCB8AAMBWhA8AAGArwgcAALAV4QMAANiK8AEAAGxF+AAAALYifAAAAFsRPgAAgK0IHwAAwFaEDwAAYCvCBwAAsBXhAwAA2IrwAQAAbEX4AAAAtiJ8AAAAW3kUdAF2i372q4IuAQCAmxpnPgAAgK0IHwAAwFaEDwAAYCvCBwAAsBXhAwAA2IrwAQAAbEX4AAAAtiJ8AAAAWxE+AACArQgfAADAVoQPAABgK8IHAACwFeEDAADYivABAABsRfgAAAC2InwAAABbET4AAICtCB8AAMBWhA8AAGArwgcAALAV4QMAANiK8AEAAGxF+AAAALYifAAAAFsRPgAAgK0IHwAAwFaEDwAAYCvCBwAAsBXhAwAA2IrwAQAAbEX4AAAAtiJ8AAAAWxE+AACArQgfAADAVoQPAABgK8IHAACwFeEDAADYivABAABsRfgAAAC2InwAAABbET4AAICtCB8AAMBWhA8AAGArwgcAALBVnsLH6NGj1aBBAwUGBqpMmTLq0KGDUlJSnPqcOXNGvXv3VqlSpRQQEKCOHTsqLS3NpUUDAICiK0/hY9myZerdu7d++eUXff/99zp37pxatWqlkydPWn369++v//znP5o7d66WLVum/fv36/7773d54QAAoGjyyEvnhQsXOj1PSkpSmTJltG7dOt1xxx1KT0/Xe++9p9mzZ+vOO++UJE2fPl1Vq1bVL7/8ottvv911lQMAgCLphq75SE9PlySVLFlSkrRu3TqdO3dOCQkJVp/Y2FiVL19eK1euzHWMzMxMZWRkOD0AAEDxdd3hIzs7W/369VPTpk1Vo0YNSVJqaqq8vLwUEhLi1DcsLEypqam5jjN69GgFBwdbj3Llyl1vSQAAoAi47vDRu3dvbdq0SXPmzLmhAoYMGaL09HTrsXfv3hsaDwAAFG55uubjgj59+mjBggX68ccfVbZsWas9PDxcZ8+e1bFjx5zOfqSlpSk8PDzXsby9veXt7X09ZQAAgCIoT2c+jDHq06ePPv/8c/3www+KiYlx2l6vXj15enpq8eLFVltKSor27Nmjxo0bu6ZiAABQpOXpzEfv3r01e/ZsffHFFwoMDLSu4wgODpavr6+Cg4PVs2dPDRgwQCVLllRQUJD69u2rxo0bc6cLcBOrOaNmvo7/a9df83V8AK6Vp/Dx9ttvS5Li4uKc2qdPn65u3bpJkl5//XW5ubmpY8eOyszMVGJioiZPnuySYgEAQNGXp/BhjLlqHx8fH02aNEmTJk267qIAAEDxxXe7AAAAW13X3S43u+hnv7pqn91j2tpQCQAARQ9nPgAAgK0IHwAAwFaEDwAAYCvCBwAAsBXhAwAA2IrwAQAAbEX4AAAAtiJ8AAAAWxE+AACArQgfAADAVoQPAABgK8IHAACwFeEDAADYivABAABsRfgAAAC2InwAAABbET4AAICtCB8AAMBWhA8AAGArwgcAALAV4QMAANiK8AEAAGxF+AAAALYifAAAAFsRPgAAgK0IHwAAwFaEDwAAYCvCBwAAsBXhAwAA2IrwAQAAbEX4AAAAtvIo6AIAuMCI4Bt7fUx519QBANeAMx8AAMBWhA8AAGArwgcAALAV4QMAANiK8AEAAGxF+AAAALYifAAAAFsRPgAAgK0IHwAAwFaEDwAAYCvCBwAAsBXhAwAA2IrwAQAAbEX4AAAAtiJ8AAAAWxE+AACArQgfAADAVoQPAABgK8IHAACwFeEDAADYivABAABsRfgAAAC2InwAAABbET4AAICtPAq6AAC4UTVn1Mz3ffza9dd83wdws+DMBwAAsBXhAwAA2IrwAQAAbEX4AAAAtiJ8AAAAWxE+AACArQgfAADAVnzOBwBcg/z+LBE+RwQ3E858AAAAWxE+AACArfItfEyaNEnR0dHy8fFRo0aNtHr16vzaFQAAKELy5ZqPjz/+WAMGDNCUKVPUqFEjTZgwQYmJiUpJSVGZMmXyY5eFTvSzX121z+4xbW2oxHWK45yAwiLfrynZtSdvLxiRnj+FXHW/wQW03/yfb6Fa44Ja3/+VL2c+XnvtNT3xxBPq3r27qlWrpilTpsjPz0/vv/9+fuwOAAAUIS4PH2fPntW6deuUkJDwfztxc1NCQoJWrlzp6t0BAIAixuVvuxw+fFhZWVkKCwtzag8LC9Nvv/2Wo39mZqYyMzOt5+npf58KysjIcHVpkqTszFP5Mu71yK855pdrOXZFbU4ul2kKuoLrknU6q6BLQD7LyOvPZkH9XS6ov0M2zDe//57laY3zYb4X/v035up1FPjnfIwePVojR47M0V6uXLkCqMZewRMKugLXK45zujlsLegCkM/yfCXFmAK69qKgFIP55mkG+Tjf48ePKzj4yuO7PHyULl1a7u7uSktLc2pPS0tTeHh4jv5DhgzRgAEDrOfZ2dn666+/VKpUKTkcDleXd1kZGRkqV66c9u7dq6CgINv2W5CYM3Murpgzcy6uCvOcjTE6fvy4IiMjr9rX5eHDy8tL9erV0+LFi9WhQwdJfweKxYsXq0+fPjn6e3t7y9vb26ktJCTE1WVds6CgoEK3oPmNOd8cmPPNgTnfHArrnK92xuOCfHnbZcCAAeratavq16+vhg0basKECTp58qS6d++eH7sDAABFSL6Ej3/84x86dOiQhg8frtTUVNWuXVsLFy7McREqAAC4+eTbBad9+vTJ9W2Wwsrb21vPP/98jreAijPmfHNgzjcH5nxzKC5zdphruScGAADARfhiOQAAYCvCBwAAsBXhAwAA2IrwAQAAbFVsw8ekSZMUHR0tHx8fNWrUSKtXr75s32nTpql58+YqUaKESpQooYSEhBz9u3XrJofD4fRo3bp1fk8jT/Iy53nz5ql+/foKCQmRv7+/ateurZkzZzr1McZo+PDhioiIkK+vrxISErR9+/b8nkaeuHrOxW2dLzZnzhw5HA7rw/8uKG7rfLHLzbm4rXNSUlKO+fj4+Dj1KQrrLLl+3oV9rfP6s33s2DH17t1bERER8vb2VpUqVfT111/f0JgFwhRDc+bMMV5eXub99983mzdvNk888YQJCQkxaWlpufZ/+OGHzaRJk8yGDRvM1q1bTbdu3UxwcLDZt2+f1adr166mdevW5sCBA9bjr7/+smtKV5XXOS9ZssTMmzfPbNmyxezYscNMmDDBuLu7m4ULF1p9xowZY4KDg838+fPNxo0bzb333mtiYmLM6dOn7ZrWFeXHnIvbOl+wa9cuc8stt5jmzZub9u3bO20rbut8wZXmXNzWefr06SYoKMhpPqmpqU59Cvs6G5M/8y7Ma53X+WZmZpr69eubu+++2/z0009m165dZunSpSY5Ofm6xywoxTJ8NGzY0PTu3dt6npWVZSIjI83o0aOv6fXnz583gYGBZsaMGVZb165dc/wDVpjc6JyNMaZOnTpm6NChxhhjsrOzTXh4uBk/fry1/dixY8bb29t89NFHriv8Brh6zsYUz3U+f/68adKkiXn33XdzzK+4rvOV5mxM8Vvn6dOnm+Dg4MuOVxTW2RjXz9uYwr3WeZ3v22+/bSpUqGDOnj3rsjELSrF72+Xs2bNat26dEhISrDY3NzclJCRo5cqV1zTGqVOndO7cOZUsWdKpfenSpSpTpoxuvfVWPfXUUzpy5IhLa79eNzpnY4wWL16slJQU3XHHHZKkXbt2KTU11WnM4OBgNWrU6JqPY37KjzlfUNzW+YUXXlCZMmXUs2fPHNuK6zpfac4XFLd1PnHihKKiolSuXDm1b99emzdvtrYV9nWW8mfeFxTGtb6e+X755Zdq3LixevfurbCwMNWoUUMvv/yysrKyrnvMgpJvn3BaUA4fPqysrKwcH+UeFham33777ZrGGDx4sCIjI50WsHXr1rr//vsVExOjnTt36t///rfatGmjlStXyt3d3aVzyKvrnXN6erpuueUWZWZmyt3dXZMnT1bLli0lSampqdYYl455YVtByo85S8VvnX/66Se99957Sk5OznV7cVznq81ZKn7rfOutt+r9999XrVq1lJ6erldeeUVNmjTR5s2bVbZs2UK/zlL+zFsqvGt9PfP9/fff9cMPP6hLly76+uuvtWPHDj399NM6d+6cnn/+eZf8/rNLsQsfN2rMmDGaM2eOli5d6nTh0kMPPWT9uWbNmqpVq5YqVqyopUuX6q677iqIUm9YYGCgkpOTdeLECS1evFgDBgxQhQoVFBcXV9Cl5Zurzbk4rfPx48f16KOPatq0aSpdunRBl2OLa51zcVpnSWrcuLEaN25sPW/SpImqVq2qd955R6NGjSrAyvLXtcy7OK11dna2ypQpo6lTp8rd3V316tXTn3/+qfHjx+v5558v6PLypNiFj9KlS8vd3V1paWlO7WlpaQoPD7/ia1955RWNGTNGixYtUq1ata7Yt0KFCipdurR27NhR4D/A1ztnNzc3VapUSZJUu3Ztbd26VaNHj1ZcXJz1urS0NEVERDiNWbt2bddPIo/yY865KcrrvHPnTu3evVvt2rWz2rKzsyVJHh4eSklJKXbrfC1zrlixYo7XFeV1zo2np6fq1KmjHTt2SFKhX2cpf+adm8Ky1tcz34iICHl6ejqdsalatapSU1N19uxZlxxDuxS7az68vLxUr149LV682GrLzs7W4sWLnRLypcaNG6dRo0Zp4cKFql+//lX3s2/fPh05csTpL3JBud45Xyo7O1uZmZmSpJiYGIWHhzuNmZGRoVWrVuVpzPySH3POTVFe59jY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detWNWzYUBs3btTPP//s9BZEVlaWzpw5o1OnTsnPz0+SVL9+/RuYbe5OnjypnTt3qmfPnnriiSes9vPnzys4ONipb+PGjZ3mVL9+fW3dulWStHXrVjVu3FgOh8Pq07RpU504cUL79u1TamqqMjMzddddd12xnovXJCIiQtLfxz82NjbX/qdPn3Z6y0WSBgwYoMcff1wzZ85UQkKCHnzwQVWsWNGpj6+vr06dOnXFWoDihPABFBKenp5Ozx0Oh1PbhV+kF27LPHHihNq1a5frxZwXflFejxMnTmjkyJG6//77c2y7+Berv7//de/jSvuWpGnTpqlRo0ZO267l7pFr5evre039rnT8c1O6dGkdPXrUqW3EiBF6+OGH9dVXX+mbb77R888/rzlz5ui+++6z+vz1118KDQ3NyxSAIo0LToEiqm7dutq8ebOio6NVqVIlp8eVgsH58+edLnhMSUnRsWPHVLVqVWvclJSUHGNWqlRJbm75+09GWFiYIiMj9fvvv+fYd0xMjFPfX375xWlO69ats+ZQtWpVrVy5UsYYq8/PP/+swMBAlS1bVpUrV5avr68WL17s0vrr1KmjLVu25GivUqWK+vfvr++++07333+/pk+fbm07c+aMdu7cqTp16ri0FqAw48wHUET17t1b06ZNU+fOnTVo0CCVLFlSO3bs0Jw5c/Tuu+9e9kyBp6en+vbtq4kTJ8rDw0N9+vTR7bffroYNG0qShg8frnvuuUfly5fXAw88IDc3N23cuFGbNm3Siy++mKca//rrL+3Zs0f79++X9HfQkf7vjqDcjBw5Us8884yCg4PVunVrZWZmau3atTp69KgGDBhg9Zs0aZIqV66sqlWr6vXXX9fRo0fVo0cPSdLTTz+tCRMmqG/fvurTp49SUlL0/PPPa8CAAXJzc5OPj48GDx6sQYMGycvLS02bNtWhQ4e0efNm9ezZM09zvFhiYqJmzJhhPT99+rT+9a9/6YEHHlBMTIz27dunNWvWON2K+8svv8jb29vpbSSguOPMB1BERUZG6ueff1ZWVpZatWqlmjVrql+/fgoJCbniGQo/Pz8NHjxYDz/8sJo2baqAgAB9/PHH1vbExEQtWLBA3333nRo0aKDbb79dr7/+uqKiovJc45dffqk6deqobdu2kqSHHnpIderU0ZQpUy77mscff1zvvvuupk+frpo1a6pFixZKSkrKceZjzJgxGjNmjG677Tb99NNP+vLLL1W6dGlJ0i233KKvv/5aq1ev1m233aZ//vOf6tmzp4YOHWq9ftiwYfp//+//afjw4apatar+8Y9/WNfTXK8uXbpo8+bNVshyd3fXkSNH9Nhjj6lKlSrq1KmT2rRpo5EjR1qv+eijj9SlSxfrWhrgZuAwF5+XBFCsJSUlqV+/fjp27FhBl3Lddu/erZiYGG3YsEG1a9cu6HJy+Ne//qWMjAy98847V+17+PBh3XrrrVq7dm2OcAUUZ5z5AAAXeu655xQVFXVN39eye/duTZ48meCBmw7XfACAC4WEhOjf//73NfWtX79+vtyyDBR2vO0CAABsxdsuAADAVoQPAABgK8IHAACwFeEDAADYivABAABsRfgAAAC2InwAAABbET4AAICtCB8AAMBW/x8zhxWcomFeRAAAAABJRU5ErkJggg==",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "plt.hist(vanilla_timing, label='Vanilla')\n",
- "plt.hist(wav_timing, label='Wav')\n",
- "plt.hist(banana_timing, label='Banana')\n",
- "plt.xlabel(\"Time per 1 epoch (s)\")\n",
- "plt.title(\"Ideal optimized network\")\n",
- "plt.legend()\n",
- "plt.show()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Optimized Vanilla N Params: 58045\n",
- "Optimized Wav N Params: 118630\n",
- "Optimized Banana split N Params: 1442935\n"
- ]
- }
- ],
- "source": [
- "# Parameter numbers \n",
- "\n",
- "optimized_vanilla = VanillaMLP(**vanilla_params[\"model_params\"])\n",
- "total_opt_vanilla_params = sum(p.numel() for p in optimized_vanilla.parameters() if p.requires_grad)\n",
- "\n",
- "opt_wav = WavMLP(**wav_params['model_params'])\n",
- "total_opt_wav_params = sum(p.numel() for p in opt_wav.parameters() if p.requires_grad)\n",
- "\n",
- "opt_banana = BananaSplitMLP(**vanilla_split_params['model_params'])\n",
- "opt_banana_parameters = sum(p.numel() for p in opt_banana.parameters() if p.requires_grad)\n",
- "\n",
- "print(f\"Optimized Vanilla N Params: {total_opt_vanilla_params}\")\n",
- "print(f\"Optimized Wav N Params: {total_opt_wav_params}\")\n",
- "print(f\"Optimized Banana split N Params: {opt_banana_parameters}\")\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Non-Optized \n",
- "import time \n",
- "num_tests = 100 \n",
- "\n",
- "data_params = {\"sample_size\": [4000, 2000, 2000], \"split\": True}\n",
- "\n",
- "vanilla_timing = []\n",
- "banana_timing = []\n",
- "wav_timing = []\n",
- "\n",
- "vanilla_params = {\n",
- " \"in_channels\": 28,\n",
- " \"hidden_size\": 256,\n",
- " \"out_channels\": 10,\n",
- " \"tail\": True,\n",
- " }\n",
- "banana_params = vanilla_params.copy()\n",
- "wav_params = vanilla_params.copy()\n",
- "wav_params[\"level\"] = 3\n",
- "\n",
- "optimizer_config = {\n",
- " \"lr\": 0.1, \n",
- " \"momentum\":False\n",
- "}\n",
- "\n",
- "vanilla_network = TrainingLoop(\n",
- " model_class=VanillaMLP,\n",
- " model_params=vanilla_params,\n",
- " data_class=NMISTGenerator,\n",
- " data_params=data_params,\n",
- " loss=torch.nn.CrossEntropyLoss,\n",
- " optimizer_class=torch.optim.SGD, \n",
- " optimizer_config=optimizer_config,\n",
- " epochs=1,\n",
- " )\n",
- "\n",
- "banana_network = TrainingLoop(\n",
- " model_class=BananaSplitMLP,\n",
- " model_params=banana_params,\n",
- " data_class=NMISTGenerator,\n",
- " data_params=data_params,\n",
- " loss=torch.nn.CrossEntropyLoss,\n",
- " optimizer_class=torch.optim.SGD, \n",
- " optimizer_config=optimizer_config,\n",
- " epochs=1,\n",
- " )\n",
- "\n",
- "wav_network = TrainingLoop(\n",
- " model_class=WavMLP,\n",
- " model_params=wav_params,\n",
- " data_class=NMISTGenerator,\n",
- " data_params=data_params,\n",
- " loss=torch.nn.CrossEntropyLoss,\n",
- " optimizer_class=torch.optim.SGD, \n",
- " optimizer_config=optimizer_config,\n",
- " epochs=1,\n",
- " )\n",
- "\n",
- "for _ in range(num_tests): \n",
- "\n",
- " start = time.time() \n",
- " vanilla_network() \n",
- " vanilla_timing.append(time.time()-start)\n",
- "\n",
- " start = time.time() \n",
- " banana_network() \n",
- " banana_timing.append(time.time()-start)\n",
- "\n",
- " start = time.time() \n",
- " wav_network() \n",
- " wav_timing.append(time.time()-start)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " vanilla_timing | \n",
- " wav_timing | \n",
- " banana_timing | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " count | \n",
- " 100.000000 | \n",
- " 100.000000 | \n",
- " 100.000000 | \n",
- "
\n",
- " \n",
- " mean | \n",
- " 0.316603 | \n",
- " 0.384293 | \n",
- " 0.384358 | \n",
- "
\n",
- " \n",
- " std | \n",
- " 0.030999 | \n",
- " 0.028156 | \n",
- " 0.040313 | \n",
- "
\n",
- " \n",
- " min | \n",
- " 0.278739 | \n",
- " 0.345912 | \n",
- " 0.327838 | \n",
- "
\n",
- " \n",
- " 25% | \n",
- " 0.289345 | \n",
- " 0.362297 | \n",
- " 0.348332 | \n",
- "
\n",
- " \n",
- " 50% | \n",
- " 0.312438 | \n",
- " 0.381050 | \n",
- " 0.382325 | \n",
- "
\n",
- " \n",
- " 75% | \n",
- " 0.334180 | \n",
- " 0.400538 | \n",
- " 0.406376 | \n",
- "
\n",
- " \n",
- " max | \n",
- " 0.423702 | \n",
- " 0.464558 | \n",
- " 0.489143 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " vanilla_timing wav_timing banana_timing\n",
- "count 100.000000 100.000000 100.000000\n",
- "mean 0.316603 0.384293 0.384358\n",
- "std 0.030999 0.028156 0.040313\n",
- "min 0.278739 0.345912 0.327838\n",
- "25% 0.289345 0.362297 0.348332\n",
- "50% 0.312438 0.381050 0.382325\n",
- "75% 0.334180 0.400538 0.406376\n",
- "max 0.423702 0.464558 0.489143"
- ]
- },
- "execution_count": 12,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "pd.DataFrame({\"vanilla_timing\":vanilla_timing, \"wav_timing\":wav_timing, \"banana_timing\":banana_timing}).describe()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 13,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "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j2jXrl1auHChtZ5ni4+PV2BgoP7973/r9OnTBebnH6IKCwtTs2bNNGfOHGVkZFjzv/32W23fvt2tNd91111au3atli1bVmBeenq6zpw5I0ny8/Oz2s6nQ4cO+u6777RhwwYrfDRr1kwBAQGaMmWKfH191aJFC6u/u//WmjRpoq+++ko7duxQjx49uA8IShX2fAAX0bRpUw0YMEBvv/220tPT1alTJ23YsEFz5sxRr169FBcX57ZlDR48WG+99ZYGDhyoTZs2KTIyUp9++ql++OEHTZ06tcD/uUZHR6t9+/YaMmSIcnJyNHXqVFWqVMnlcEH+j9ujjz6q+Ph4eXp66p577nFbzRezZMkSvf/+++rTp4+2bNnict8Lf39/9erVS4GBgZoxY4b69++v5s2b65577lFISIj279+vJUuWqF27dnrzzTclSZMnT1b37t3Vvn17Pfjgg/rzzz/1xhtvqFGjRsrKynJb3f/617/05Zdf6tZbb9XAgQPVokULZWdn6+eff9ann36qffv2qXLlyvL19VXDhg318ccfq27dugoODlbjxo2tE0g7dOigDz/8UA6HwzoM4+npqRtuuEHLli1TbGysvLy8rOUWx9/a9ddfry+++EK33HKL7rjjDi1atOiauQMtSrmSvNQGKCn5l5UeOXLEpX327NlGksv9JU6fPm0SEhJMVFSUKV++vKlZs6YZO3asOXnypMt7IyIiTPfu3Qssq1OnTqZTp06FqistLc088MADpnLlysbLy8vExMQUuHQ1/5LWF1980bz88sumZs2axtvb23To0MG6bDPfmTNnzPDhw01ISIhxOBwul93qApfanvuZDBgwwFSoUOG869WoUaMCdeXXm/9Znu917qWxy5cvN/Hx8cbpdBofHx9Tu3ZtM3DgQLNx40aXfp999plp0KCB8fb2Ng0bNjSff/65GTBgQKEvtS3s9jl+/LgZO3asiY6ONl5eXqZy5crmhhtuMC+99JI5deqU1W/NmjWmRYsWxsvLq8DnuW3bNiPJNGjQwGXsZ5991kgyTz31VIFarvRvzZiC9/kwxpgvvvjClCtXztx9990mNzf3vO8D7OQwphBnjAEoNfbt26eoqCi9+OKLGj16dEmXAwBFxjkfAADAVoQPAABgK8IHAACwFed8AAAAW7HnAwAA2IrwAQAAbFXqbjKWl5en33//XQEB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ff311y7L2rp1q7p16yZ/f39VrVpV/fv31x9//HHB2hITExUUFKRFixapTp068vHxUXx8vA4cOODS74svvlDz5s3l4+OjWrVqKSEhQWfOnLHmOxwOzZgxQ7fddpsqVKig55577rzL69+/v55++ml17ty5SJ/hO++8owYNGsjHx0f169fX9OnTrXn5h0Tmz5+vG264QT4+PmrcuLFWrlzpMsbKlSvVunVreXt7KywsTE888YTLOuTl5emFF15QdHS0vL29FR4eXmA99uzZo7i4OPn5+alp06Zau3btReueP3++unTp4vL8l82bNysuLk4BAQEKDAxUixYttHHjRmt+jx49tHHjRqWkpBTpMwLKtJJ+sh1wNZs9e7ZxOp0F2s99MmenTp1MQECAmTRpktm1a5eZNGmS8fT0NN26dTNvv/222bVrlxkyZIipVKmSyc7ONsYYc+zYMRMSEmLGjh1rduzYYf773/+aLl26mLi4uIvWU758edOyZUuzZs0as3HjRtO6dWtzww03WH1WrVplAgMDTWJioklJSTHffPONiYyMNBMnTrT6SDJVqlQx7733nklJSTG//fbbRT+HvXv3Gknmp59+uuRn9sEHH5iwsDDz2WefmT179pjPPvvMBAcHm8TERJexatSoYT799FOzfft289BDD5mAgADzxx9/GGOMOXjwoPHz8zP/+Mc/zI4dO8zChQtN5cqVzYQJE6zljBkzxlSsWNEkJiaa3bt3m9WrV1tPIM5fRv369c3ixYvNzp07zR133GEiIiLM6dOnL1h7kyZNzJQpU1zaGjVqZO677z6zY8cOs2vXLvPJJ5+Y5ORklz5Vq1Y1s2fPvuRnA1wtCB9AMSpK+Gjfvr01febMGVOhQgXTv39/q+3QoUNGklm7dq0xxphJkyaZm2++2WXcAwcOGElm586dF6xHklm3bp3VtmPHDiPJrF+/3hhjzE033WT+/e9/u7xv7ty5JiwszJqWZEaMGHGJtf+fooSP2rVrm3nz5rm0TZo0ybRt29ZlrLN/5E+fPm1q1Khhnn/+eWOMMePGjTP16tUzeXl5Vp9p06YZf39/k5ubazIzM423t7cVNi5U7zvvvGO1bdu2zUgyO3bsuGDtTqfTvP/++y5tAQEBVnC6kOuuu84l3AFXu3IlsrsFQAFNmjSx/tvT01OVKlVSTEyM1Zb/yPHDhw9L+nt3/vLly+Xv719grJSUFNWtW/e8yylXrpxatWplTdevX19BQUHasWOHWrdurc2bN+uHH35wOQSRm5urkydP6q+//pKfn58kqWXLllewtueXnZ2tlJQUDRo0SA8//LDVfubMGTmdTpe+bdu2dVmnli1baseOHZKkHTt2qG3btnI4HFafdu3aKSsrSwcPHlRqaqpycnJ00003XbSes7dJWFiYpL8///r165+3/4kTJ1wOuUjSqFGj9NBDD2nu3Lnq3Lmz7rzzTtWuXdulj6+vr/7666+L1gJcTQgfQClRvnx5l2mHw+HSlv9Dmn9ZZlZWlnr06HHekznzfygvR1ZWlhISEtS7d+8C887+Ya1QocJlL+Niy5akWbNmqU2bNi7zCnP1SGH5+voWqt/FPv/zqVy5so4dO+bSNnHiRN17771asmSJvv76a02YMEHz58/X7bffbvX5888/FRISUpRVAMo0TjgFyqjmzZtr27ZtioyMVHR0tMvrYsHgzJkzLic87ty5U+np6WrQoIE17s6dOwuMGR0dLQ+P4v0no2rVqqpWrZr27NlTYNlRUVEufdetW+eyTps2bbLWoUGDBlq7dq2MMVafH374QQEBAapRo4bq1KkjX19fJSUlubX+6667Ttu3by/QXrduXY0cOVLffPONevfurdmzZ1vzTp48qZSUFF133XVurQUozdjzAZRRQ4cO1axZs9S3b1+NGTNGwcHB2r17t+bPn6933nnngnsKypcvr+HDh+v1119XuXLlNGzYMF1//fVq3bq1JOnpp5/WrbfeqvDwcN1xxx3y8PDQ5s2btXXrVj377LNFqvHPP//U/v379fvvv0v6O+hI/7si6HwSEhL06KOPyul0qmvXrsrJydHGjRt17NgxjRo1yuo3bdo01alTRw0aNNCrr76qY8eO6cEHH5Qk/eMf/9DUqVM1fPhwDRs2TDt37tSECRM0atQoeXh4yMfHR48//rjGjBkjLy8vtWvXTkeOHNG2bds0aNCgIq3j2eLj4zVnzhxr+sSJE/rXv/6lO+64Q1FRUTp48KB+/PFHl0tx161bJ29vb5fDSMDVjj0fQBlVrVo1/fDDD8rNzdXNN9+smJgYjRgxQkFBQRfdQ+Hn56fHH39c9957r9q1ayd/f399/PHH1vz4+HgtXrxY33zzjVq1aqXrr79er776qiIiIopc45dffqnrrrtO3bt3lyTdc889uu666zRz5swLvuehhx7SO++8o9mzZysmJkadOnVSYmJigT0fU6ZM0ZQpU9S0aVN9//33+vLLL1W5cmVJUvXq1fXVV19pw4YNatq0qR555BENGjRI48ePt97/1FNP6bHHHtPTTz+tBg0a6O6777bOp7lc/fr107Zt26yQ5enpqaNHj+r+++9X3bp1ddddd6lbt25KSEiw3vPRRx+pX79+1rk0wLXAYc7eLwngqpaYmKgRI0YoPT29pEu5bPv27VNUVJR++uknNWvWrKTLKeBf//qXMjMz9dZbb12y7x9//KF69epp48aNBcIVcDVjzwcAuNGTTz6piIiIQj2vZd++fZo+fTrBA9cczvkAADcKCgrSuHHjCtW3ZcuWxXLJMlDacdgFAADYisMuAADAVoQPAABgK8IHAACwFeEDAADYivABAABsRfgAAAC2InwAAABbET4AAICtCB8AAMBW/w+u00DOtTZxTAAAAABJRU5ErkJggg==",
- "text/plain": [
- "