{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "Sign-OPT Attack for CIFAR-10",
"provenance": [],
"collapsed_sections": [],
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
},
"accelerator": "GPU"
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"
"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "OrPgZRyVo_dJ"
},
"source": [
"#### Load Required Libraries"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "3NN3tJgCjttX",
"outputId": "04dc4160-2b4a-4813-916e-a3412cb27f26"
},
"source": [
"!git clone https://github.com/ndb796/attackbox"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Cloning into 'attackbox'...\n",
"remote: Enumerating objects: 594, done.\u001b[K\n",
"remote: Counting objects: 100% (19/19), done.\u001b[K\n",
"remote: Compressing objects: 100% (13/13), done.\u001b[K\n",
"remote: Total 594 (delta 7), reused 14 (delta 6), pack-reused 575\u001b[K\n",
"Receiving objects: 100% (594/594), 74.55 MiB | 20.14 MiB/s, done.\n",
"Resolving deltas: 100% (298/298), done.\n",
"Checking out files: 100% (191/191), done.\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "orvMQ3aUpNQl"
},
"source": [
"import torch\n",
"import torch.nn as nn\n",
"from torch.autograd import Variable\n",
"import torchvision\n",
"\n",
"import numpy as np\n",
"from numpy import linalg as LA\n",
"import matplotlib.pyplot as plt\n",
"\n",
"import os\n",
"import time\n",
"import shutil"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "8_8c9VyHpYxN"
},
"source": [
"#### Load Dataset"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "E0pIjQB-pEeA",
"outputId": "73441485-f5a1-4bc5-f4dc-69b554aaa2f0"
},
"source": [
"def load_model(model, filename):\n",
" \"\"\" Load the training model \"\"\"\n",
" model.load_state_dict(torch.load(filename))\n",
"\n",
"\n",
"def load_cifar10_data(batch_size=1):\n",
" \"\"\" Load MNIST data from torchvision.datasets \n",
" input: None\n",
" output: minibatches of train and test sets \n",
" \"\"\"\n",
" # CIFAR10 Dataset\n",
" train_dataset = torchvision.datasets.CIFAR10('./data/cifar10-py', download=True, train=True, transform=torchvision.transforms.ToTensor())\n",
" test_dataset = torchvision.datasets.CIFAR10('./data/cifar10-py', download=True, train=False, transform=torchvision.transforms.ToTensor())\n",
"\n",
" # Data Loader (Input Pipeline)\n",
" train_loader = torch.utils.data.DataLoader(dataset=train_dataset, batch_size=batch_size, shuffle=True)\n",
" test_loader = torch.utils.data.DataLoader(dataset=test_dataset, batch_size=batch_size, shuffle=False)\n",
"\n",
" return train_loader, test_loader, train_dataset, test_dataset\n",
"\n",
"\n",
"test_batch_size = 1\n",
"train_loader, test_loader, train_dataset, test_dataset = load_cifar10_data(test_batch_size)"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Files already downloaded and verified\n",
"Files already downloaded and verified\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "qIuRnHrPpO7c"
},
"source": [
"#### Load Pre-trained Classification Model"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "YKwl6DoNAm94",
"outputId": "23d7fcc2-d2a0-4ffd-ec0a-4f2a7c937469"
},
"source": [
"cfg = {\n",
" 'VGG11': [64, 'M', 128, 'M', 256, 256, 'M', 512, 512, 'M', 512, 512, 'M'],\n",
" 'VGG13': [64, 64, 'M', 128, 128, 'M', 256, 256, 'M', 512, 512, 'M', 512, 512, 'M'],\n",
" 'VGG16': [64, 64, 'M', 128, 128, 'M', 256, 256, 256, 'M', 512, 512, 512, 'M', 512, 512, 512, 'M'],\n",
" 'VGG19': [64, 64, 'M', 128, 128, 'M', 256, 256, 256, 256, 'M', 512, 512, 512, 512, 'M', 512, 512, 512, 512, 'M'],\n",
"}\n",
"\n",
"\n",
"class VGG_plain(nn.Module):\n",
" def __init__(self, vgg_name, nclass, img_width=32):\n",
" super(VGG_plain, self).__init__()\n",
" self.img_width = img_width\n",
" self.features = self._make_layers(cfg[vgg_name])\n",
" self.classifier = nn.Linear(512, nclass)\n",
"\n",
" def forward(self, x):\n",
" out = self.features(x)\n",
" out = out.view(out.size(0), -1)\n",
" out = self.classifier(out)\n",
" return out\n",
"\n",
" def _make_layers(self, cfg):\n",
" layers = []\n",
" in_channels = 3\n",
" width = self.img_width\n",
" for x in cfg:\n",
" if x == 'M':\n",
" layers += [nn.MaxPool2d(kernel_size=2, stride=2)]\n",
" width = width // 2\n",
" else:\n",
" layers += [nn.Conv2d(in_channels, x, kernel_size=3, padding=1),\n",
" nn.BatchNorm2d(x),\n",
" nn.ReLU(inplace=True)]\n",
" in_channels = x\n",
" layers += [nn.AvgPool2d(kernel_size=width, stride=1)]\n",
" return nn.Sequential(*layers)\n",
"\n",
" def predict(self, image):\n",
" self.eval()\n",
" image = torch.clamp(image,0,1)\n",
" image = Variable(image, volatile=True).view(1,3, 32,32)\n",
" if torch.cuda.is_available():\n",
" image = image.cuda()\n",
" output = self(image)[0]\n",
" print(output)\n",
" _, predict = torch.max(output.data, 1)\n",
" return predict[0]\n",
" \n",
" def predict_batch(self, image):\n",
" self.eval()\n",
" image = torch.clamp(image,0,1)\n",
" image = Variable(image, volatile=True)\n",
" if torch.cuda.is_available():\n",
" image = image.cuda()\n",
" output = self(image)[0]\n",
" _, predict = torch.max(output.data, 1)\n",
" return predict\n",
"\n",
"\n",
"def vgg16():\n",
" return VGG_plain('VGG16', nclass=10)\n",
"\n",
"\n",
"model_dir = 'attackbox/model/cifar10_vgg_plain.pth'\n",
"net = vgg16()\n",
"net = torch.nn.DataParallel(net, device_ids=[0])\n",
"load_model(net, model_dir)\n",
"net.cuda()\n",
"net.eval()"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"DataParallel(\n",
" (module): VGG_plain(\n",
" (features): Sequential(\n",
" (0): Conv2d(3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
" (1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (2): ReLU(inplace=True)\n",
" (3): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
" (4): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (5): ReLU(inplace=True)\n",
" (6): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n",
" (7): Conv2d(64, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
" (8): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (9): ReLU(inplace=True)\n",
" (10): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
" (11): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (12): ReLU(inplace=True)\n",
" (13): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n",
" (14): Conv2d(128, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
" (15): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (16): ReLU(inplace=True)\n",
" (17): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
" (18): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (19): ReLU(inplace=True)\n",
" (20): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
" (21): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (22): ReLU(inplace=True)\n",
" (23): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n",
" (24): Conv2d(256, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
" (25): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (26): ReLU(inplace=True)\n",
" (27): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
" (28): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (29): ReLU(inplace=True)\n",
" (30): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
" (31): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (32): ReLU(inplace=True)\n",
" (33): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n",
" (34): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
" (35): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (36): ReLU(inplace=True)\n",
" (37): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
" (38): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (39): ReLU(inplace=True)\n",
" (40): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n",
" (41): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
" (42): ReLU(inplace=True)\n",
" (43): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n",
" (44): AvgPool2d(kernel_size=1, stride=1, padding=0)\n",
" )\n",
" (classifier): Linear(in_features=512, out_features=10, bias=True)\n",
" )\n",
")"
]
},
"metadata": {
"tags": []
},
"execution_count": 9
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "kLnrkPAbp2Ec"
},
"source": [
"class PytorchModel(object):\n",
" def __init__(self,model, bounds, num_classes):\n",
" self.model = model\n",
" self.model.eval()\n",
" self.bounds = bounds\n",
" self.num_classes = num_classes\n",
" self.num_queries = 0\n",
"\n",
" def predict(self,image):\n",
" image = torch.clamp(image,self.bounds[0],self.bounds[1]).cuda()\n",
" if len(image.size())!=4:\n",
" image = image.unsqueeze(0)\n",
" output = self.model(image)\n",
" self.num_queries += 1\n",
" return output\n",
" \n",
" def predict_prob(self,image):\n",
" with torch.no_grad():\n",
" image = torch.clamp(image,self.bounds[0],self.bounds[1]).cuda()\n",
" if len(image.size())!=4:\n",
" image = image.unsqueeze(0)\n",
" output = self.model(image)\n",
" self.num_queries += image.size(0)\n",
" return output\n",
"\n",
" def predict_label(self, image, batch=False):\n",
" if isinstance(image, np.ndarray):\n",
" image = torch.from_numpy(image).type(torch.FloatTensor)\n",
" image = torch.clamp(image,self.bounds[0],self.bounds[1]).cuda()\n",
" if len(image.size())!=4:\n",
" image = image.unsqueeze(0)\n",
" with torch.no_grad():\n",
" output = self.model(image)\n",
" self.num_queries += image.size(0)\n",
" _, predict = torch.max(output.data, 1)\n",
" if batch:\n",
" return predict\n",
" else:\n",
" return predict[0]\n",
"\n",
" def predict_ensemble(self, image):\n",
" if isinstance(image, np.ndarray):\n",
" image = torch.from_numpy(image).type(torch.FloatTensor)\n",
" image = torch.clamp(image,self.bounds[0],self.bounds[1]).cuda()\n",
" if len(image.size())!=4:\n",
" image = image.unsqueeze(0)\n",
" with torch.no_grad():\n",
" output = self.model(image)\n",
" output.zero_()\n",
" for i in range(10):\n",
" output += self.model(image)\n",
" self.num_queries += image.size(0)\n",
"\n",
" _, predict = torch.max(output.data, 1)\n",
"\n",
" return predict[0]\n",
"\n",
" def get_num_queries(self):\n",
" return self.num_queries\n",
"\n",
" def get_gradient(self,loss):\n",
" loss.backward()"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "D8gtuAehpsSu"
},
"source": [
"#### Adversarial Attack"
]
},
{
"cell_type": "code",
"metadata": {
"id": "5-rNUNmBl2mI"
},
"source": [
"start_learning_rate = 1.0\n",
"MAX_ITER = 1000\n",
"\n",
"\n",
"def quad_solver(Q, b):\n",
" \"\"\"\n",
" Solve min_a 0.5*aQa + b^T a s.t. a>=0\n",
" \"\"\"\n",
" K = Q.shape[0]\n",
" alpha = np.zeros((K,))\n",
" g = b\n",
" Qdiag = np.diag(Q)\n",
" for i in range(20000):\n",
" delta = np.maximum(alpha - g / Qdiag, 0) - alpha\n",
" idx = np.argmax(abs(delta))\n",
" val = delta[idx]\n",
" if abs(val) < 1e-7: \n",
" break\n",
" g = g + val * Q[:,idx]\n",
" alpha[idx] += val\n",
" return alpha\n",
"\n",
"\n",
"def sign(y):\n",
" \"\"\"\n",
" y -- numpy array of shape (m,)\n",
" Returns an element-wise indication of the sign of a number.\n",
" The sign function returns -1 if y < 0, 1 if x >= 0. nan is returned for nan inputs.\n",
" \"\"\"\n",
" y_sign = np.sign(y)\n",
" y_sign[y_sign==0] = 1\n",
" return y_sign\n",
"\n",
"\n",
"class OPT_attack_sign_SGD(object):\n",
" def __init__(self, model, k=200, train_dataset=None):\n",
" self.model = model\n",
" self.k = k\n",
" self.train_dataset = train_dataset \n",
" self.log = torch.ones(MAX_ITER, 2)\n",
"\n",
" def get_log(self):\n",
" return self.log\n",
"\n",
" def attack_untargeted(self, x0, y0, alpha = 0.2, beta = 0.001, iterations = 1000, query_limit=20000,\n",
" distortion=None, svm=False, momentum=0.0, stopping=0.0001):\n",
" \"\"\" Attack the original image and return adversarial example\n",
" model: (pytorch model)\n",
" train_dataset: set of training data\n",
" (x0, y0): original image\n",
" \"\"\"\n",
" model = self.model\n",
" y0 = y0[0]\n",
" query_count = 0\n",
" ls_total = 0\n",
"\n",
" if (model.predict_label(x0) != y0):\n",
" print(\"Fail to classify the image. No need to attack.\")\n",
" return x0, 0, True, 0, None\n",
"\n",
" # 공격을 위한 초기 방향(initial direction) theta 찾기 / g_theta: 거리(짧을수록 좋음)\n",
" # init: Calculate a good starting point (direction)\n",
" num_directions = 100\n",
" best_theta, g_theta = None, float('inf')\n",
" print(\"Searching for the initial direction on %d random directions: \" % (num_directions))\n",
" timestart = time.time()\n",
" for i in range(num_directions):\n",
" query_count += 1\n",
" theta = np.random.randn(*x0.shape) # gaussian distortion\n",
" # register adv directions\n",
" if model.predict_label(x0 + torch.tensor(theta, dtype=torch.float).cuda()) != y0: \n",
" initial_lbd = LA.norm(theta)\n",
" theta /= initial_lbd # l2 normalize\n",
" lbd, count = self.fine_grained_binary_search(model, x0, y0, theta, initial_lbd, g_theta)\n",
" query_count += count\n",
" if lbd < g_theta:\n",
" best_theta, g_theta = theta, lbd\n",
" print(\"--------> Found distortion %.4f\" % g_theta)\n",
" timeend = time.time()\n",
" \n",
" # fail if cannot find a adv direction within 200 Gaussian\n",
" if g_theta == float('inf'):\n",
" print(\"Couldn't find valid initial, failed\")\n",
" return x0, 0, False, query_count, best_theta\n",
" print(\"==========> Found best distortion %.4f in %.4f seconds \"\n",
" \"using %d queries\" % (g_theta, timeend-timestart, query_count))\n",
" self.log[0][0], self.log[0][1] = g_theta, query_count\n",
"\n",
" # 반복적으로 theta를 업데이트하며 공격 수행\n",
" # Begin Gradient Descent.\n",
" timestart = time.time()\n",
" xg, gg = best_theta, g_theta\n",
" vg = np.zeros_like(xg)\n",
" learning_rate = start_learning_rate\n",
" prev_obj = 100000\n",
" distortions = [gg]\n",
" for i in range(iterations):\n",
" # 기울기(gradient) 예측\n",
" # gradient estimation at x0 + theta (init)\n",
" if svm == True:\n",
" sign_gradient, grad_queries = self.sign_grad_svm(x0, y0, xg, initial_lbd=gg, h=beta)\n",
" else:\n",
" sign_gradient, grad_queries = self.sign_grad_v1(x0, y0, xg, initial_lbd=gg, h=beta)\n",
"\n",
" # Line search of the step size of gradient descent\n",
" ls_count = 0\n",
" min_theta = xg # next theta\n",
" min_g2 = gg # current g_theta\n",
" min_vg = vg # velocity (for momentum only)\n",
" for _ in range(15):\n",
" # update theta by one step sgd\n",
" if momentum > 0:\n",
" new_vg = momentum * vg - alpha*sign_gradient\n",
" new_theta = xg + new_vg\n",
" else:\n",
" new_theta = xg - alpha * sign_gradient\n",
" new_theta /= LA.norm(new_theta)\n",
"\n",
" new_g2, count = self.fine_grained_binary_search_local(\n",
" model, x0, y0, new_theta, initial_lbd = min_g2, tol=beta/500)\n",
" ls_count += count\n",
" alpha = alpha * 2 # gradually increasing step size\n",
" if new_g2 < min_g2:\n",
" min_theta = new_theta\n",
" min_g2 = new_g2\n",
" if momentum > 0:\n",
" min_vg = new_vg\n",
" else:\n",
" break\n",
"\n",
" if min_g2 >= gg: # if the above code failed for the init alpha, we then try to decrease alpha\n",
" for _ in range(15):\n",
" alpha = alpha * 0.25\n",
" if momentum > 0:\n",
" new_vg = momentum * vg - alpha * sign_gradient\n",
" new_theta = xg + new_vg\n",
" else:\n",
" new_theta = xg - alpha * sign_gradient\n",
" new_theta /= LA.norm(new_theta)\n",
" new_g2, count = self.fine_grained_binary_search_local(\n",
" model, x0, y0, new_theta, initial_lbd = min_g2, tol=beta/500)\n",
" ls_count += count\n",
" if new_g2 < gg:\n",
" min_theta = new_theta \n",
" min_g2 = new_g2\n",
" if momentum > 0:\n",
" min_vg = new_vg\n",
" break\n",
"\n",
" if alpha < 1e-4: # if the above two blocks of code failed\n",
" alpha = 1.0\n",
" print(\"Warning: not moving\")\n",
" beta = beta * 0.1\n",
" if (beta < 1e-8):\n",
" break\n",
" \n",
" # if all attemps failed, min_theta, min_g2 will be the current theta (i.e. not moving)\n",
" xg, gg = min_theta, min_g2\n",
" vg = min_vg\n",
"\n",
" query_count += (grad_queries + ls_count)\n",
" ls_total += ls_count\n",
" distortions.append(gg)\n",
"\n",
" if query_count > query_limit:\n",
" break\n",
"\n",
" # 공격이 진행되는 상황에서 로깅(logging)\n",
" if (i + 1) % 10 == 0:\n",
" print(\"Iteration %3d distortion %.4f num_queries %d\" % (i+1, gg, query_count))\n",
" self.log[i + 1][0], self.log[i + 1][1] = gg, query_count\n",
"\n",
" if (i + 1) % 30 == 0:\n",
" # 화면에 이미지 출력하기\n",
" img = x0.cpu() + torch.tensor(gg * xg, dtype=torch.float) # [batch_size, 1, H, W]\n",
" img = torch.clamp(img, min=0, max=1).squeeze(0) # [1, H, W]\n",
" img = torchvision.transforms.ToPILImage()(img)\n",
" plt.imshow(img)\n",
" plt.show()\n",
"\n",
" if distortion is None or gg < distortion:\n",
" target = model.predict_label(x0 + torch.tensor(gg * xg, dtype=torch.float).cuda())\n",
" print(\"Succeed distortion {:.4f} target\"\n",
" \" {:d} queries {:d} LS queries {:d}\\n\".format(gg, target, query_count, ls_total))\n",
" return x0 + torch.tensor(gg * xg, dtype=torch.float).cuda(), gg, True, query_count, xg\n",
"\n",
" timeend = time.time()\n",
" print(\"\\nFailed: distortion %.4f\" % (gg))\n",
" \n",
" self.log[i+1:,0] = gg\n",
" self.log[i+1:,1] = query_count\n",
" return x0 + torch.tensor(gg * xg, dtype=torch.float).cuda(), gg, False, query_count, xg\n",
"\n",
"\n",
" def sign_grad_v1(self, x0, y0, theta, initial_lbd, h=0.001, D=4, target=None):\n",
" \"\"\"\n",
" Evaluate the sign of gradient by formulat\n",
" sign(g) = 1/Q [ \\sum_{q=1}^Q sign( g(theta+h*u_i) - g(theta) )u_i$ ]\n",
" \"\"\"\n",
" K = self.k # 200 random directions (for estimating the gradient)\n",
" sign_grad = np.zeros(theta.shape)\n",
" queries = 0\n",
"\n",
" for iii in range(K): # for each u\n",
" u = np.random.randn(*theta.shape); u /= LA.norm(u)\n",
" new_theta = theta + h * u; new_theta /= LA.norm(new_theta)\n",
" sign = 1\n",
" \n",
" # Targeted case\n",
" if (target is not None and \n",
" self.model.predict_label(x0 + torch.tensor(initial_lbd * new_theta, dtype=torch.float).cuda()) == target):\n",
" sign = -1\n",
"\n",
" # Untargeted case\n",
" if (target is None and\n",
" self.model.predict_label(x0 + torch.tensor(initial_lbd * new_theta, dtype=torch.float).cuda()) != y0): # success\n",
" sign = -1\n",
"\n",
" queries += 1\n",
" sign_grad += u*sign\n",
" \n",
" sign_grad /= K\n",
" \n",
" return sign_grad, queries\n",
"\n",
"\n",
" def sign_grad_svm(self, x0, y0, theta, initial_lbd, h=0.001, K=100, lr=5.0, target=None):\n",
" \"\"\"\n",
" Evaluate the sign of gradient by formulat\n",
" sign(g) = 1/Q [ \\sum_{q=1}^Q sign( g(theta+h*u_i) - g(theta) )u_i$ ]\n",
" \"\"\"\n",
" sign_grad = np.zeros(theta.shape)\n",
" queries = 0\n",
" dim = np.prod(theta.shape)\n",
" X = np.zeros((dim, K))\n",
" for iii in range(K):\n",
" u = np.random.randn(*theta.shape)\n",
" u /= LA.norm(u)\n",
" \n",
" sign = 1\n",
" new_theta = theta + h * u\n",
" new_theta /= LA.norm(new_theta) \n",
" \n",
" # Targeted case\n",
" if (target is not None and \n",
" self.model.predict_label(x0 + torch.tensor(initial_lbd * new_theta, dtype=torch.float).cuda()) == target):\n",
" sign = -1\n",
" \n",
" # Untargeted case\n",
" if (target is None and\n",
" self.model.predict_label(x0 + torch.tensor(initial_lbd * new_theta, dtype=torch.float).cuda()) != y0):\n",
" sign = -1\n",
" \n",
" queries += 1\n",
" X[:,iii] = sign * u.reshape((dim,))\n",
" \n",
" Q = X.transpose().dot(X)\n",
" q = -1 * np.ones((K,))\n",
" G = np.diag(-1 * np.ones((K,)))\n",
" h = np.zeros((K,))\n",
" alpha = quad_solver(Q, q)\n",
" sign_grad = (X.dot(alpha)).reshape(theta.shape)\n",
" \n",
" return sign_grad, queries\n",
"\n",
"\n",
" def fine_grained_binary_search_local(self, model, x0, y0, theta, initial_lbd = 1.0, tol=1e-5):\n",
" nquery = 0\n",
" lbd = initial_lbd\n",
" \n",
" # still inside boundary\n",
" if model.predict_label(x0 + torch.tensor(lbd * theta, dtype=torch.float).cuda()) == y0:\n",
" lbd_lo = lbd\n",
" lbd_hi = lbd * 1.01\n",
" nquery += 1\n",
" while model.predict_label(x0 + torch.tensor(lbd_hi * theta, dtype=torch.float).cuda()) == y0:\n",
" lbd_hi = lbd_hi * 1.01\n",
" nquery += 1\n",
" if lbd_hi > 20:\n",
" return float('inf'), nquery\n",
" else:\n",
" lbd_hi = lbd\n",
" lbd_lo = lbd * 0.99\n",
" nquery += 1\n",
" while model.predict_label(x0 + torch.tensor(lbd_lo * theta, dtype=torch.float).cuda()) != y0 :\n",
" lbd_lo = lbd_lo * 0.99\n",
" nquery += 1\n",
"\n",
" while (lbd_hi - lbd_lo) > tol:\n",
" lbd_mid = (lbd_lo + lbd_hi) / 2.0\n",
" nquery += 1\n",
" if model.predict_label(x0 + torch.tensor(lbd_mid * theta, dtype=torch.float).cuda()) != y0:\n",
" lbd_hi = lbd_mid\n",
" else:\n",
" lbd_lo = lbd_mid\n",
" return lbd_hi, nquery\n",
"\n",
"\n",
" def fine_grained_binary_search(self, model, x0, y0, theta, initial_lbd, current_best):\n",
" nquery = 0\n",
" if initial_lbd > current_best: \n",
" if model.predict_label(x0 + torch.tensor(current_best * theta, dtype=torch.float).cuda()) == y0:\n",
" nquery += 1\n",
" return float('inf'), nquery\n",
" lbd = current_best\n",
" else:\n",
" lbd = initial_lbd\n",
"\n",
" lbd_hi = lbd\n",
" lbd_lo = 0.0\n",
" \n",
" while (lbd_hi - lbd_lo) > 1e-3: # was 1e-5\n",
" lbd_mid = (lbd_lo + lbd_hi) / 2.0\n",
" nquery += 1\n",
" if model.predict_label(x0 + torch.tensor(lbd_mid*theta, dtype=torch.float).cuda()) != y0:\n",
" lbd_hi = lbd_mid\n",
" else:\n",
" lbd_lo = lbd_mid\n",
" return lbd_hi, nquery\n",
"\n",
"\n",
" def __call__(self, input_xi, label_or_target, targeted=False, distortion=None, seed=None,\n",
" svm=False, query_limit=4000, momentum=0.0, stopping=0.0001, args=None):\n",
" if targeted:\n",
" raise NotImplementedError\n",
" else:\n",
" adv = self.attack_untargeted(input_xi, label_or_target, distortion=distortion,\n",
" svm=svm, query_limit=query_limit, momentum=momentum,\n",
" stopping=stopping)\n",
" return adv"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "ytpMQL5stsQD"
},
"source": [
"# 단순히 p-norm 거리(distance) 계산\n",
"def distance(x_adv, x, norm='l2'):\n",
" diff = (x_adv - x).view(x.size(0), -1)\n",
" if norm == 'l2':\n",
" out = torch.sqrt(torch.sum(diff * diff)).item()\n",
" return out\n",
" elif norm == 'linf':\n",
" out = torch.sum(torch.max(torch.abs(diff), 1)[0]).item()\n",
" return out"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "ksIwqNi9hrEs"
},
"source": [
"from types import SimpleNamespace\n",
"\n",
"args = SimpleNamespace()\n",
"\n",
"args.targeted = False # Targeted attack.\n",
"args.random_start = False # PGD attack with random start.\n",
"args.epsilon = 0.5\n",
"args.seed = 123\n",
"args.norm = 'l2'\n",
"args.test_batch = 20 # The number of test batch.\n",
"args.query = 20000"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"id": "Ftqcu-xFmF-i",
"outputId": "6d497b87-a5cb-4019-c311-e1b262c8df84"
},
"source": [
"amodel = PytorchModel(net, bounds=[0, 1], num_classes=10)\n",
"attack = OPT_attack_sign_SGD(amodel)\n",
"\n",
"total_r_count = 0\n",
"total_clean_count = 0\n",
"total_distance = 0\n",
"successes = []\n",
"stop_queries = []\n",
"\n",
"for i, (xi, yi) in enumerate(test_loader):\n",
" print(f\"image batch: {i}\")\n",
" if i == args.test_batch:\n",
" break\n",
"\n",
" xi, yi = xi.cuda(), yi.cuda()\n",
" adv, distortion, is_success, nqueries, theta_signopt = attack(xi, yi, targeted=args.targeted, query_limit=args.query, distortion=args.epsilon, args=args)\n",
"\n",
" # 결과 출력(l_2 distortion이 충분히 감소했을 때 성공)\n",
" img = torchvision.transforms.ToPILImage()(torch.clamp(adv, min=0, max=1).squeeze(0))\n",
" plt.imshow(img)\n",
" plt.show()\n",
"\n",
" if is_success:\n",
" stop_queries.append(nqueries)\n",
"\n",
" if args.targeted == False:\n",
" r_count = (torch.max(amodel.predict(adv), 1)[1] == yi).nonzero().shape[0]\n",
" clean_count = (torch.max(amodel.predict(xi), 1)[1] == yi).nonzero().shape[0]\n",
" total_r_count += r_count\n",
" total_clean_count += clean_count\n",
" total_distance += distance(adv, xi, norm=args.norm)\n",
"\n",
" successes.append(is_success)\n",
"\n",
"num_queries = amodel.get_num_queries()\n",
"print(f\"clean count: {total_clean_count}\")\n",
"print(f\"acc under attack count: {total_r_count}\")\n",
"print(f\"avg total queries used: {num_queries}\")\n",
"print(f\"avg stop queries used: {np.mean(stop_queries)}\")\n",
"print(f\"average distortion: {total_distance / (args.test_batch * test_batch_size)}\")\n",
"print(\"robust accuracy: {}\".format(1 - np.mean(successes)))"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"image batch: 0\n",
"Searching for the initial direction on 100 random directions: \n",
"--------> Found distortion 4.3546\n",
"--------> Found distortion 3.0316\n",
"--------> Found distortion 2.9102\n",
"--------> Found distortion 2.7461\n",
"--------> Found distortion 2.5174\n",
"==========> Found best distortion 2.5174 in 2.8204 seconds using 260 queries\n",
"Iteration 10 distortion 0.5238 num_queries 3116\n",
"Iteration 20 distortion 0.3482 num_queries 5682\n",
"Iteration 30 distortion 0.2880 num_queries 8146\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPsAAAD5CAYAAADhukOtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAfMElEQVR4nO2da4xd13Xf/+u+58l58DWk+Laoh53oYUa2G0GxksZVFBeygdawCxgqYERBGwM1kH4QXKB2gX5witqGP7Qu5FqI4jiWFVuulUZIIgsOHMOpJMqiKEqUxIdIiuSQMyTn/bivs/rhXhmUsv97RhzOHdr7/wMI3tnr7nP22eese+7d/7PWMneHEOJXn9xaD0AI0Rnk7EIkgpxdiESQswuRCHJ2IRJBzi5EIhRW0tnM7gHwNQB5AP/b3b8Ue39fV8GH+0vhbcX3867HFpMUYzaLfPzRXleoXkYPy9/9Mbe2GR7MlW0tThabY2qJnukr2lfs+mDnOtYnyzJqu9LzEpsRJ7Yssi82H1NzDSxUm8GOV+zsZpYH8D8A/C6A0wCeM7Mn3P0V1me4v4Qv/JsbwtuLzG+pnCeD4J5Zqy1SW7PeoLZihewLQJOdsEbkAsg1qSnPdwWvVajNcvzCKeSr4fYc35nFLsTIhV9t8mNrhK83IM8vuWaTj3G+zvdVLvJ+tXot2F4oFmmfxflwHwBwj8xjM/aBxK+5WhY+trmMX1dz1XCfP//RWdpnJV/j7wBw1N2Pu3sNwKMA7lvB9oQQq8hKnH0rgDcv+/t0u00IcQ2y6gt0ZvaAme03s/2zC/yrjBBidVmJs58BsO2yv69rt70Nd3/I3fe5+77erhWtBwohVsBKnP05ANeb2S4zKwH4JIAnrs6whBBXmyu+1bp7w8w+C+Bv0ZLeHnb3l6N9YKh7eJeZz9J+RlZpy7k+2ieX8UPzAl9hzuUjK+vkV4gVeJ9qja/QNiO/avLgq8UlRFamc2QsGd+ZYYHa6mSlGAAyD8uoAFDPhW1ZoUz71Jzfe6oRxaOa8TnOEVUgH5He8jk+xtj1UVsIKyEAYLmI3MTmOCK9Fck4YsLgir5Xu/uTAJ5cyTaEEJ1BT9AJkQhydiESQc4uRCLI2YVIBDm7EInQ4adcMjSzcICKGQ8+aNaJtJLnEonXuZxU7OKfcblIUAgLXMki8lQsSKMRkddQ52NsRDS7GokoMudjNPAx5ktd1JY1u6ltlpzOsYt8fheq3DY9x8dfiETE9VfC81iOyHVd3T3U1tfN5bVmRBKNBT2hGR5jISbpNt59qKXu7EIkgpxdiESQswuRCHJ2IRJBzi5EInR0Nd7cUWiGVzO9EAlmIKucJdRpHy/wzzHLRQ47EiBhJMjEm3wclufjqOR56qkt26+ntpmZS9R2fuxYsL1Y4Cvn5lzVWKzyZeQq+Er90TcvhPfVs572WYgF1vTx8V+8xOfj3GjY1t/FlZD50YvUtmcLH+NAD5/H2Mq6E5+oRK7FeiF8zcXyGurOLkQiyNmFSAQ5uxCJIGcXIhHk7EIkgpxdiETocCCMwcgurcCDD3Kk8ksjEniQI2WQAGCRVAkBgK48l1aaJI9bdoWVQMrdXNa64198hNqe/+n/o7bTF8Oy0VyTS00N43N/4uQ5vq8zvPpIeXBLsH1k/bZgOwDkKuuorbvIpbdi1yS1NeozwfYLZ/9JIuRf0Ds8TG2nZs9T22KkrNFQxu+rfaWwZFerztE+BaKxWSQLne7sQiSCnF2IRJCzC5EIcnYhEkHOLkQiyNmFSIQVSW9mdgLADIAmgIa774u9P0MOi9YbtE3Pc/knq4bzyfWt459VgzkueZVyXCrLGlyWcyprcMnFndvm53l01dN//VfUNnqR59cbnQvPyYkzfF+nxt+gtnJfP7XVc1wO21geCLYXe/n2KmUeRdc0Lh0W8+FrCgAukrnatH0n7YN5Pr+vvzFKbRemwvkVAeCmET7GwZ6wzRv82sl7+PqORb1dDZ39bncPxzMKIa4Z9DVeiERYqbM7gL8zs+fN7IGrMSAhxOqw0q/xd7r7GTPbCOApM3vV3X9y+RvaHwIPAMBgL38UVQixuqzozu7uZ9r/jwH4AYA7Au95yN33ufu+3q4OP4ovhPgFV+zsZtZjZn1vvQbwEQCHrtbAhBBXl5XcajcB+IG11voLAP7C3f8m1qHhhvFa+PPlUm2Q9vv7nx0Itr93L5d+7r5xA7VVIsn/mg0u2RXYbJGoPABoRmS5Zp5LgMdOhBNHAsDEQqTsVVd4Hkt9XNq0jMthhX5u8zIvhVQjuTR7h7kE1dfNz+els2PUNjPFxaDuYvik9Ub2dWqCy5SF/hFqu3D+FLWdGZ+mti3rwuemK8/lxtoiSXIaqQp1xc7u7scB3HKl/YUQnUXSmxCJIGcXIhHk7EIkgpxdiESQswuRCJ2t9ZYro9C7J2hbvBSRw/JhGe3SHE/YuNjgUlPDpqjNSVJJAMh5+LPRcjxaq1bntgt1/lk7Pss1lO5+nhBxaGh7sH2hwZMybozUbLPuSCRante4W5gOJ3qszvNx7B7hx7U4wc91bZxHmxUqYflqenKe9kGTXwNzs7PUloskTb0wyevRnZkMJ5bctZ4fM8rEFgl7051diESQswuRCHJ2IRJBzi5EIsjZhUiEjq7GV7p7cMOv/5MoWADA2Wdfpf36BjcF2z/wgffTPt2lN6mtOs1XhAtFHnOfFcIBKO48iKd/Ey939OILR6itZ5gH8ly3/SZq81x4jMWJSG69Ba5OVBf56nOxwlfqc7nwavHLL4SDmgCgt8Qvx55I7rreMl8Ff3MsXL7KIyW7CpFSU+t7+TFP1Xlg0KVIfrqTo+H53755K+0DJ/uK5KDTnV2IRJCzC5EIcnYhEkHOLkQiyNmFSAQ5uxCJ0FHpLZfPo2toKGjbuftG2m+exFts37OX9hmucWllcvEktTWtSW0LzbAks++uj9E+u3bdTm27b+bjeO4Al6jW9fI8aKfHSD4255JiucgDLty5ljM/y4NJJsbDOeOGBnn+PGT83tPgMTfYuHEjtdWz8Pm8MMXlV8943sB1/VyWK5cigStMKgNw8szpYPvgOpLID8BNO8NSpBsfg+7sQiSCnF2IRJCzC5EIcnYhEkHOLkQiyNmFSIQlpTczexjARwGMufv72m1DAL4LYCeAEwA+4e4TS+7N8igUwxFKb54/TLvdsu83gu29/TzaqTDDyww165EaOWU+JSeOh/Oq3fmxXXx7XTzqrbeXS1dd+ViUF5d/uipErnEuJ23ZuoXaDh89Sm3FAo8Am5sLH9vOXTyS6/q976W26Ql+efUODlDbqdHzYQOJYASA3h4+99U5LtnVYrWXjJ+zRmFdsP3EWX599HaFc+vV6vw8L+fO/qcA7nlH24MAnnb36wE83f5bCHENs6Szt+utvzM15n0AHmm/fgQAf6pECHFNcKW/2Te5+2j79Tm0KroKIa5hVrxA5+6OSKFYM3vAzPab2f7paZ4RRQixulyps583sxEAaP9Pi2e7+0Puvs/d9/X3hxcihBCrz5U6+xMA7m+/vh/AD6/OcIQQq8VypLfvAPgwgPVmdhrAFwB8CcBjZvYZACcBfGI5O8vlciiVwrJGdZGX3FkktkKJS2/RBIWRRInlAg+v6quEZY2H/+c3aZ+PfurfU1v3HP1ChK5yrIwPTx55w46wjDY5dob2uTgfLj8EAJs28mSal2Z5JNdcI5xgcdeecPkvANi793pqe+6FF6htfm6Bj2M2PI5GjUtUWZFfiz39/LpCgbvTQDOSnLMQjkjMOT8vp0fD57Ne59fvks7u7p8ipt9Zqq8Q4tpBT9AJkQhydiESQc4uRCLI2YVIBDm7EInQ0YSTsBysHJYZ5ud4TbEqkYaKJZ5Eceoil0/ceL88eE2uLQPhZH6vvsQjw86fPUFtzXlej+70KE9GeduWcBQgAGzZEa4Rt+Xsetpn9jiXroaHInXshnnk2PE3TgTbR0Z41NvkJH/CslbniUDHLpDINoBe4Vbn0ubcApe8HPzaqVb5GHu7eNRb1gzLZYUcvxdnE2FbJO5Od3YhUkHOLkQiyNmFSAQ5uxCJIGcXIhHk7EIkQmelN3d4IywO5JxLZZuHwrJRV5lLPz968Ri1DdX5Z9zejXybbHddFR79dWH0OLVVq6QuG4Bt79lNbfkuXgOsMhieqw3bd9A+49ORmm3TXIZqOBd6hjeFx1Eq8rEv1rh0VY/YFqs80msxC0cIeoFvby4SzVdr8Fpqw+t5zbliFk4QCQBd5fAYS+CReTWE57GQ59e27uxCJIKcXYhEkLMLkQhydiESQc4uRCJ0OBDGUCiFVzP7I3nh1q8LBxFYxlfwZ8Dz001OUxM29PPV1t5y+LOxnuOrt8dHT1Db5mGez2zH7puordrkQRz/+OzLwfbR8xdpn55+HiRTqvB5PHiEB+t4Fp7HLHJ/qS/yVfX5RR6g1N/HsxZv3By+Rs6N8vkY2TRMbVWyug8APT191FbM89X45oV31mBpUZ/nY9yyMXzMxSIPCtKdXYhEkLMLkQhydiESQc4uRCLI2YVIBDm7EImwnPJPDwP4KIAxd39fu+2LAP4AwHj7bZ939yeX3haQt7BsNLIlXLao1S8s4zTnI/nitvNAkv2nuWQ0lePBDFl+Jtg+sJ4HhAz08ykulHupbdeeG6mtt49LZQ9/61vB9rl5LhlNzU5Q28Ji+JgBoKvAj3vruvA5q17gcz9T5NLbQDcPoHn9LC9tNTkeDjaanub6az4StLJ+iMtr+Saf466MBxvNLITHv6WHS8vrusJ+VIjcvpdzZ/9TAPcE2r/q7re2/y3p6EKItWVJZ3f3nwAIq/5CiF8aVvKb/bNmdtDMHjYznm9YCHFNcKXO/nUAewDcCmAUwJfZG83sATPbb2b7Jycmr3B3QoiVckXO7u7n3b3p7hmAbwC4I/Leh9x9n7vvGxgcuNJxCiFWyBU5u5mNXPbnxwEcujrDEUKsFsuR3r4D4MMA1pvZaQBfAPBhM7sVrWozJwD84XJ2lkMOXYVwdFvf4Cbar1kPyzjlHi7H3LBrG7U9+wyXvGbKe6mtgbBcM3Idn8aXX3mG2j5w17+ltp/9jPdbWOCyUWMuvJY6PnaK9nHnn/lzZO4BoGRc+hzMh0s5jXTzn3LT4zzfXVbky0KbNvCot3ojLOfNzvGSV9UqH8fCHM9RWM94+arGPJcHR8rhMY70RfL11cORlhap/7Sks7v7pwLN31yqnxDi2kJP0AmRCHJ2IRJBzi5EIsjZhUgEObsQidDRhJO5fA7dRE4YGuaRXE0PRyHViyXap5LjcszgMH+458TJUWq7846bg+2LM7xMT7mbhxWMj56mtqNHXqc2b/IEl7liWCqbmeTRawMbuOw5OcklqoF+noxyz973BdufPcSP68DhN6jt7t/6fWqzApfDjh47GmyfneWyYT0iXy3O8ei13SN8Piq9PFpucJjImyUeRZcZKV+V48lIdWcXIhHk7EIkgpxdiESQswuRCHJ2IRJBzi5EInRUenPP0KiHpZzBAS5NTJEaYHNNLnnlIhLEjm1bqe3IobBUAwDTC2FNprePR9jt2MvHcfK1E9R2+uw5avvQh/ZR2yJJELl1ZCTYDgAbt+yitpNjh6ltfoEniOzq3hxsH1i/nfa59f38vJwfG6O2Y29wCXOhHpaoLs3wyMFN68NjB4ABO0ttWyOJQDf18/tqxcJy3nydR9/1kus7B64b6s4uRCLI2YVIBDm7EIkgZxciEeTsQiRCR1fjs0Yds5fCgSalEg9qKdfCq77uJBgAgGd8VXLD4DC1vZ7jwRjnLs4G24sFrgqs6+HlpN77a/3UduQUX2GuR1ZcJ6bCasfe67li8J7de6jt1DmeM+6ll1+htvGJsLpSKvK8asPDfD4OnX+N2s5N8CAfFML7syIPWtm0dQe17TB+rnf08ICcLp7KD9X58Kp7KeM+sdAkSkgkiEd3diESQc4uRCLI2YVIBDm7EIkgZxciEeTsQiTCcso/bQPwZwA2obWw/5C7f83MhgB8F8BOtEpAfcLdJ2LbqlarOH7keNC2/fqbeD8jMkOV5xHLlSIySCVcggoABvt5QE5ffziv3U038JJRT/3tX1Pb/BwP7uiP5OQ7dmqc2rZvuS7YvvOG22ifMslbBwA7r+My1PhFfroPHwpLZRkatM/ZSzywZqbGZdaFjJ/rqYvhIJONm8PzBAAnL/A8c+u38dyGlyp8HMh4PrkJklPQi920z0I9fO1Xwc/lcu7sDQB/7O43A/gggD8ys5sBPAjgaXe/HsDT7b+FENcoSzq7u4+6+8/br2cAHAawFcB9AB5pv+0RAB9brUEKIVbOu/rNbmY7AdwG4BkAm9z9rcfhzqH1NV8IcY2ybGc3s14A3wfwOXd/W+S/uzvIg3pm9oCZ7Tez/dMz4cdNhRCrz7Kc3cyKaDn6t9398XbzeTMbadtHAARXm9z9IXff5+77+vt4XXQhxOqypLObmaFVj/2wu3/lMtMTAO5vv74fwA+v/vCEEFeL5US9/SaATwN4ycwOtNs+D+BLAB4zs88AOAngE0ttaL7awMGjYdlox/s+QPu5hyO5cjUuvVmkNNTUPI+SujTBZa1bb78l2H7vPXfzPrfcSG2PPv5/qC2X56dmoJeXr7pu25Zgez+RDQGgUONS08AIH8eWKS4nzXSFo81+fvBAsB0ARud5vj4v8oi4dRt5FOPwrvBxF8tcfq02eejYq+DS7OvnuDxYzvNtLrIci1yJRN1Jma8mjw5c0tnd/acA2Fn4naX6CyGuDfQEnRCJIGcXIhHk7EIkgpxdiESQswuRCB1NOLnYNLw6HY4M+mDGH7jxYjgqKMeVDuQjh5aPRAZtHtlAbXf9s/cH2ytlnoRw966wFAYA//Jff5Lavvf4X1Hb+HmeBHJ0LizxLM6Fow0BoAyu8VwgshAAHD91ntpQJf02cilyYCOP8nKuyiGX8XPtXeFtNoxHqNWcR+adbnBJt6eL20o5fs3N5cJPljbKPDmnk3OW2cqi3oQQvwLI2YVIBDm7EIkgZxciEeTsQiSCnF2IROis9NYAXpsIf7488Q8v0X637gonwdkcqdfVneOHtnkzr7+2cZhHNTEZzZxHf50aD9fxAoBv/gWPCj5wkNdRW1zk0lCtFtaocsa1q6wRljYBIKvwaLmGFamt6GHZqB45L40Cl966+a6QceUT89WwFGV5Ph+W5zJwwfnOmvPcVo/IeUUiHRYikXL1RthmqvUmhJCzC5EIcnYhEkHOLkQiyNmFSISOrsZnlsNsPrxK+/SB12m/I2+Egzjuuf29tM+uEZ6z7MSxI9R252/8GrVVSuFAh2my4gsAf/nkP1Lbi6/xQJK5Bg+CQJGvJOdL4VPaaPCooXwlsq/IKn7O+ArzYjM8jmqkjFPRuCqwAB5kEouSKZHSVvlIjr/uHr6vQqR8VTPj42jmuK3WCNvqkSCkUu9gsN0iaofu7EIkgpxdiESQswuRCHJ2IRJBzi5EIsjZhUiEJaU3M9sG4M/QKsnsAB5y96+Z2RcB/AGAt+olfd7dn4zurFDE8PpwUMvkJf4E/+jFcM61n73AS900atupLZfj+cc2bN5GbZ4PSzL7n+NBPE/++BlqW8h4CaJcLpJ/LBIgwfLr1SP5+mJBGp7FpCY+jiaR7ColHtHieX7vyRX5ObNc5J5FgnW610WCXSJ53PJZJGgoIq81My7nsfCZkZ08YKuvL1wC7Hg5JhsuTQPAH7v7z82sD8DzZvZU2/ZVd//vy9iGEGKNWU6tt1EAo+3XM2Z2GMDW1R6YEOLq8q5+s5vZTgC3AXjru+lnzeygmT1sZuFHeoQQ1wTLdnYz6wXwfQCfc/dpAF8HsAfArWjd+b9M+j1gZvvNbH9jYfoqDFkIcSUsy9nNrIiWo3/b3R8HAHc/7+5Nd88AfAPAHaG+7v6Qu+9z932FLv68uhBidVnS2c3MAHwTwGF3/8pl7SOXve3jAA5d/eEJIa4Wy1mN/00AnwbwkpkdaLd9HsCnzOxWtOS4EwD+cKkNGYAi+XgpkIgyAGgshOWTN8b4z4KFeZ7D7e59e6mtZ5DLHVPVsNT09889T/vUMp6frl7nx1ypRKQa55LX3Ew4551HotfyFomUipQtysC32Z0Pn7MsIpMZ6QMAXuH56bq6uExZIMeWNbmkOLnIr6tmxsdfi+ibfUM8X+LIluFwny5+Xhanp4LtnvExLGc1/qdA8KxGNXUhxLWFnqATIhHk7EIkgpxdiESQswuRCHJ2IRKhowknHY6MJT50PpRmORwdVqvzPuPTPDrp+cOj1HbvPJeTZnw22H724gztU+jj5ZNK89SEhUU+/p5eHi1XrISlstj2LMdlvmIkEq0YSdqYK4S3aU0+v8Uyj2ybqUei75r82CrF8PXGovIAXloJAGbmI+dlKByJBgADGzbz/RF59tVXeVRnkUhs9RpPUqk7uxCJIGcXIhHk7EIkgpxdiESQswuRCHJ2IRKho9KbIRxRAwC5SNLDIhlmFpGFMlLzDABOjoUlNAD4xmN/Q23//LfeH2w/dm482A4ACw0eNebgUV6FCrflizzKq7s3vL9yhUsyC9NcA6xW+XmBcYmqQGqOxaLoGpGosVyB90OTH9s8SRDpEXktH4m+Gxzg8trQBp6s9MKFi9Q2dSEsBU+dOkb77Nmzm1j4cenOLkQiyNmFSAQ5uxCJIGcXIhHk7EIkgpxdiEToqPSWz+Ux1B+WLhYjOeWrJCqobDz6q2GsghZgRS6t/MMzL1LbiTNngu1TM1z6uTjHI+KyKh9jd28ftXmkxlqF1PrKRRJ6lnq45NVNaqUBQKHAL5+M1EurNyP14SKJNFmUFwDUG7GknmHpsBSpibZxmM/9wMbrqK0aieirViPJIythKbUZOWfzC+HEolnGrynd2YVIBDm7EIkgZxciEeTsQiSCnF2IRFhyNd7MKgB+AqDcfv/33P0LZrYLwKMAhgE8D+DT7s6XRQG4Z1ishlcRi5GyQGWyolosRvKS5fnKLozvK9/VS22nzo6FDZEgjeYiH0e9wVdOC1U+laNzPHCllAuvCBdKPHimp8hXfXN8OmB5ftyVcvjSGujiK921SP60C1M8kMQbvB+rbDXUz8sxbYrkktu8aYjaJuYWqG1+YoLaZqcng+0DkaCbC+Ph+WhEcvUt585eBfDb7n4LWuWZ7zGzDwL4EwBfdff3AJgA8JllbEsIsUYs6eze4q2Y0GL7nwP4bQDfa7c/AuBjqzJCIcRVYbn12fPtCq5jAJ4CcAzApPsvgtBPA9i6OkMUQlwNluXs7t5091sBXAfgDgA3LncHZvaAme03s/31ef40mRBidXlXq/HuPgngxwA+BGDA7BfLH9cBCD5L6u4Pufs+d99X7OaLM0KI1WVJZzezDWY20H7dBeB3ARxGy+n/Vftt9wP44WoNUgixcpYTCDMC4BEzy6P14fCYu/9fM3sFwKNm9l8BvADgm0ttyDNHnZTPIVWLAABZISxfZQ0udXgsZVlElmuCy2FOgjtInE67EzdFUrhFAxrQ5LaMaE0TE5don8nGIrX19nRTW/8gl6EGhtYH2ys5Xj4pi+QhLHhEpizzYJ3qXPjYuoo8aCWf40E3tXkuoTXn+LHNTl2gtqwWvoAqJX4RV5nsGSlrtaSzu/tBALcF2o+j9ftdCPFLgJ6gEyIR5OxCJIKcXYhEkLMLkQhydiESwTyS9+uq78xsHMDJ9p/rAXA9onNoHG9H43g7v2zj2OHuG0KGjjr723Zstt/d963JzjUOjSPBcehrvBCJIGcXIhHW0tkfWsN9X47G8XY0jrfzKzOONfvNLoToLPoaL0QirImzm9k9ZvaamR01swfXYgztcZwws5fM7ICZ7e/gfh82szEzO3RZ25CZPWVmR9r/D67ROL5oZmfac3LAzO7twDi2mdmPzewVM3vZzP5Du72jcxIZR0fnxMwqZvasmb3YHsd/abfvMrNn2n7zXTPjmUJDuHtH/wHIo5XWajeAEoAXAdzc6XG0x3ICwPo12O9dAG4HcOiytv8G4MH26wcB/MkajeOLAP5jh+djBMDt7dd9AF4HcHOn5yQyjo7OCQAD0Nt+XQTwDIAPAngMwCfb7f8LwL97N9tdizv7HQCOuvtxb6WefhTAfWswjjXD3X8C4J0B5vehlbgT6FACTzKOjuPuo+7+8/brGbSSo2xFh+ckMo6O4i2uepLXtXD2rQDevOzvtUxW6QD+zsyeN7MH1mgMb7HJ3Ufbr88B2LSGY/msmR1sf81f9Z8Tl2NmO9HKn/AM1nBO3jEOoMNzshpJXlNfoLvT3W8H8HsA/sjM7lrrAQGtT3ZEc9ysKl8HsAetGgGjAL7cqR2bWS+A7wP4nLu/rYZ3J+ckMI6Oz4mvIMkrYy2c/QyAbZf9TZNVrjbufqb9/xiAH2BtM++cN7MRAGj/T8rPrC7ufr59oWUAvoEOzYmZFdFysG+7++Pt5o7PSWgcazUn7X2/6ySvjLVw9ucAXN9eWSwB+CSAJzo9CDPrMbO+t14D+AiAQ/Feq8oTaCXuBNYwgedbztXm4+jAnJiZoZXD8LC7f+UyU0fnhI2j03OyakleO7XC+I7VxnvRWuk8BuA/rdEYdqOlBLwI4OVOjgPAd9D6OlhH67fXZ9Cqmfc0gCMAfgRgaI3G8S0ALwE4iJazjXRgHHei9RX9IIAD7X/3dnpOIuPo6JwA+HW0krgeROuD5T9fds0+C+AogL8EUH4329UTdEIkQuoLdEIkg5xdiESQswuRCHJ2IRJBzi5EIsjZhUgEObsQiSBnFyIR/j+PriK+1ffWMAAAAABJRU5ErkJggg==\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 40 distortion 0.2598 num_queries 10546\n",
"Iteration 50 distortion 0.2455 num_queries 12905\n",
"Iteration 60 distortion 0.2334 num_queries 15272\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 70 distortion 0.2251 num_queries 17582\n",
"Iteration 80 distortion 0.2207 num_queries 19880\n",
"Succeed distortion 0.2201 target 6 queries 20128 LS queries 3668\n",
"\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"image batch: 1\n",
"Searching for the initial direction on 100 random directions: \n",
"--------> Found distortion 4.7415\n",
"--------> Found distortion 4.2669\n",
"--------> Found distortion 3.4444\n",
"--------> Found distortion 3.3528\n",
"--------> Found distortion 3.3429\n",
"==========> Found best distortion 3.3429 in 2.6915 seconds using 261 queries\n",
"Iteration 10 distortion 0.4706 num_queries 3327\n",
"Iteration 20 distortion 0.3058 num_queries 6001\n",
"Iteration 30 distortion 0.2492 num_queries 8543\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 40 distortion 0.2250 num_queries 10942\n",
"Iteration 50 distortion 0.2114 num_queries 13283\n",
"Iteration 60 distortion 0.2022 num_queries 15583\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 70 distortion 0.1962 num_queries 17876\n",
"Succeed distortion 0.1931 target 1 queries 20126 LS queries 3865\n",
"\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"image batch: 2\n",
"Searching for the initial direction on 100 random directions: \n",
"--------> Found distortion 1.6381\n",
"--------> Found distortion 1.4381\n",
"--------> Found distortion 1.1839\n",
"==========> Found best distortion 1.1839 in 2.3955 seconds using 235 queries\n",
"Iteration 10 distortion 0.2588 num_queries 3039\n",
"Iteration 20 distortion 0.1787 num_queries 5573\n",
"Iteration 30 distortion 0.1497 num_queries 7978\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 40 distortion 0.1372 num_queries 10321\n",
"Iteration 50 distortion 0.1296 num_queries 12693\n",
"Iteration 60 distortion 0.1243 num_queries 15013\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 70 distortion 0.1202 num_queries 17302\n",
"Iteration 80 distortion 0.1180 num_queries 19588\n",
"Succeed distortion 0.1179 target 9 queries 20060 LS queries 3425\n",
"\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"image batch: 3\n",
"Searching for the initial direction on 100 random directions: \n",
"--------> Found distortion 1.2552\n",
"--------> Found distortion 1.0101\n",
"==========> Found best distortion 1.0101 in 2.2787 seconds using 225 queries\n",
"Iteration 10 distortion 0.2300 num_queries 3006\n",
"Iteration 20 distortion 0.1557 num_queries 5544\n",
"Iteration 30 distortion 0.1316 num_queries 7969\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 40 distortion 0.1210 num_queries 10342\n",
"Iteration 50 distortion 0.1156 num_queries 12665\n",
"Iteration 60 distortion 0.1107 num_queries 14994\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 70 distortion 0.1074 num_queries 17278\n",
"Iteration 80 distortion 0.1056 num_queries 19581\n",
"Succeed distortion 0.1054 target 8 queries 20049 LS queries 3424\n",
"\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"image batch: 4\n",
"Searching for the initial direction on 100 random directions: \n",
"--------> Found distortion 45.5305\n",
"--------> Found distortion 16.1069\n",
"--------> Found distortion 13.4093\n",
"--------> Found distortion 11.3779\n",
"--------> Found distortion 6.6542\n",
"==========> Found best distortion 6.6542 in 2.6242 seconds using 255 queries\n",
"Iteration 10 distortion 0.3757 num_queries 3231\n",
"Iteration 20 distortion 0.2306 num_queries 5818\n",
"Iteration 30 distortion 0.1912 num_queries 8316\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 40 distortion 0.1737 num_queries 10651\n",
"Iteration 50 distortion 0.1631 num_queries 12967\n",
"Iteration 60 distortion 0.1567 num_queries 15309\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 70 distortion 0.1521 num_queries 17604\n",
"Iteration 80 distortion 0.1493 num_queries 19885\n",
"Succeed distortion 0.1490 target 4 queries 20107 LS queries 3652\n",
"\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"image batch: 5\n",
"Searching for the initial direction on 100 random directions: \n",
"--------> Found distortion 36.1182\n",
"--------> Found distortion 19.8745\n",
"--------> Found distortion 13.0996\n",
"==========> Found best distortion 13.0996 in 2.2519 seconds using 220 queries\n",
"Iteration 10 distortion 0.4348 num_queries 3909\n",
"Iteration 20 distortion 0.0859 num_queries 6609\n",
"Iteration 30 distortion 0.0651 num_queries 9074\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 40 distortion 0.0568 num_queries 11412\n",
"Iteration 50 distortion 0.0527 num_queries 13730\n",
"Iteration 60 distortion 0.0509 num_queries 16075\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Warning: not moving\n",
"Iteration 70 distortion 0.0500 num_queries 18551\n",
"Succeed distortion 0.0491 target 3 queries 20011 LS queries 4591\n",
"\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPsAAAD5CAYAAADhukOtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAe2UlEQVR4nO2dW4yd13Xf/+vcL3PmTg5HJEVSshJZcWPZZlWncQ3XQQzFSCEbKAz7wdCDEQZFDNRA+iC4QO0CfXCK2oYfCgd0LUQpXMtqbMOCIbRW1CBCikIxJetOyaZp3sm5cMi5nJk519WHcxhQwv7vGXFmztDZ/x9AcGav2d+3zj7f+r45+z9rLXN3CCH+8ZPZbQeEEINBwS5EIijYhUgEBbsQiaBgFyIRFOxCJEJuK5PN7EEA3wCQBfDf3P0rsZ8frhR9argStK2323Te8mojOJ7J8HtVtZSntiyM2tDtUhOTKS17a/fMboefyzIRHyP+d4j/nYjE6pHjZbL8EmlH/G+z9zPiR8Zu9dnDj8led+xcHjleTKnORo6Zy2WprdkKr1X3FmTx1WYLzXY7+IbecrCbWRbAfwXw+wAuAPipmT3p7q+zOVPDFXzt4Y8GbW/OztJz/e2Lp4Pj1WqZzvmn7zpIbaPgC4/6KjU1u+E3JT8UvoEBQCYStMvLK9RWLBSpzTPc/8XVsP+LzfANEwA6uQK1laqT1LZQ58ecmZ8LG9b4TX04H3nN1AJ0wG869XYzOF4oleic2E2s2+K2oQI/5t6JCWo7NzMTHK83W3SOkRvBs784Q+ds5df4BwCccvfT7t4E8DiAh7ZwPCHEDrKVYN8P4PxN31/ojwkhbkN2fIPOzI6Z2QkzO7G4xn/tE0LsLFsJ9osAbv5gfKA/9hbc/bi7H3X3oyNl/plMCLGzbCXYfwrgHjM7YmYFAJ8G8OT2uCWE2G5ueTfe3dtm9nkA/xs96e1Rd38tNseyWRSGhoO2xrnzwXEA+MC9h4LjE6M1Omco9spW+I4wylVqGq2Ed1u9u0bntNsdfqpCxEnj8zoN/nFomBzTOvx49Qbf9c1m6tRmDf66C+Qxsu58N7vpXLkoZG5NDssTWXHl+hI/Xpv7ODw8RG2VElc10OXrz+Zl81w+hoePl42oP1vS2d39KQBPbeUYQojBoL+gEyIRFOxCJIKCXYhEULALkQgKdiESYUu78e8Uh6FFkjgmRsbpvH3Te4LjzQaXhVpLXFpZWeeSUbbAk1o62bCs4c2IvBaTYyyScBHJAuyEczsAAE3y2iqxjKxI1l4+G8lsy3LNa249/N7UG/x4WeNrlS/yS7USSUDJVsJSWa3M5cZSRPKKJFoiko+D5jpPsGKvrNXhPmZIHMVyJfVkFyIRFOxCJIKCXYhEULALkQgKdiESYbC78e5okV3mvVP76LxSMbzHWMjxXdil1XXuSIaXgyqVY8kH4W3wLNmlB4ByMVL+qBXZbS3xtyYfKalUXwnvgnc6fOc8l+fHW1lepLahDN9+zhDJYKnOlRCLlAvLgfsYe2LlyP70SJmXNKtG3rOuc5WkFUl2WVxe5vOImjM6xJNuskRByUbkAj3ZhUgEBbsQiaBgFyIRFOxCJIKCXYhEULALkQgDld4Ap7WzYNyVa0th2SKf53OaXS41lSJVboeqsSUJS02ZPJdxuqSLDAAMRTrJWKylUYvLivlSWL7qrPLsGQOXjPaOcPknF/Hj0IHp4Phck3f+abS4H4jUoIsVoVu6FpYOuxH5sjQcSdaJJA3FuoAV8lxWZO7nIsfLWlhSNDIO6MkuRDIo2IVIBAW7EImgYBciERTsQiSCgl2IRNiS9GZmZwAsA+gAaLv70ejPZzIoVsIy1XqkrtrMlbD0tn+K160rRbKaOpH2PhHFCzmW3RZJlEMmUoOOyZAAMh0ua3UimU2FIlnfNb7AS5H6aKN7xqhtoht54cNhaasVqTM3P8vrBt45wd/rQoH7MT97LTzHuPzabvNsxG7k+egRWzkm9ZFeWR6RFJnsHFHetkVn/5fuPr8NxxFC7CD6NV6IRNhqsDuAn5jZ82Z2bDscEkLsDFv9Nf5D7n7RzPYCeNrM3nD3Z2/+gf5N4BgA7Bnlf3ophNhZtvRkd/eL/f9nAfwQwAOBnznu7kfd/ehIlW9SCCF2llsOdjOrmlntxtcAPgbg1e1yTAixvWzl1/gpAD/sZ9nkAPwPd/9fsQmZbA5V0ubp0ulzdF7Tw/ekYolnjXVbXGryKpflrMu1i3YzfMxylcs4LeOyUMEimVB1XqAwH2lRhRw55hCXcRqrXPJabDWorRR5bePF8Hv2gUOTdM61WuQ3vxaXSz3SoqpeCMubzRbPRow1UarXuUxpkbS3crlKbaSTEyzLr488kYEt4vstB7u7nwbw3ludL4QYLJLehEgEBbsQiaBgFyIRFOxCJIKCXYhEGHivtwbpa3X2PJfeDh06HBxvrnFZKNON9CGzSOZSJBOtRDL2skW+jN7kklcxcq/NZLmc13Qur7CMvlj/svVI/7JupBBoN5LRVyASUCYieeUq/HinL1ymtuIQl1IzhbAf6+u851zOuaS4VA/30gOAUiSzrVDgr9tJqmUusvYdepny601PdiESQcEuRCIo2IVIBAW7EImgYBciEQa6G99stnD2/JWgbXrPPjovR2pxrUSSEmp5fh/rdPmOez7Sc6dDduqzzpcxE9ndb0T8z/PtVnQLfNd3tRHeZW43eV21VieSJBOpabbc5HXyRkvhHe0Kq+MHoBapGzg+yWvhDU2OUtvqpavB8YV6uDYdADTafOd8dJz7EduNj9WTy0bUIXq8SMILQ092IRJBwS5EIijYhUgEBbsQiaBgFyIRFOxCJMJgE2HM4JnwKbMZnnywvLQYHJ8aGaZz8pF6YJbhMlQuw2WXlZVwEkQ7knRTLfAlrtR4LbmI8obrHX7MRjFct6zrvCZfaTjSCqnJ12NpLSxrAUB7KSzLTdVqdE428przeS5r5UjLKwAojowEx1cvcOmtnIvUDSzxtfJI76VuJEElR67VmFxaYC3AIu3L9GQXIhEU7EIkgoJdiERQsAuRCAp2IRJBwS5EImwovZnZowD+EMCsu7+nPzYO4HsADgM4A+BT7s61jD6ddgdX58My2uzF03Tee9/9G8HxYp5LLp0WrzFWichh3uVyx8gI6UJrXI4pZnidvGYk++56l2so8xku2WXLYTmyUuX39fGpKWrLL89T22ok623lavhyyK1zmXINXOZrR1pNLS7zNb5GbHOLvJbcgdGIDFxfobau89eWy/H6elYIXz/5iASYZdJbRP7bzJP9LwA8+LaxRwA84+73AHim/70Q4jZmw2Dv91tfeNvwQwAe63/9GIBPbLNfQoht5lY/s0+5+43avlfQ6+gqhLiN2fIGnfdKcNAPmGZ2zMxOmNmJeqTOuxBiZ7nVYJ8xs2kA6P8/y37Q3Y+7+1F3P1ot840sIcTOcqvB/iSAh/tfPwzgR9vjjhBip9iM9PZdAB8BMGlmFwB8CcBXADxhZp8DcBbApzZzsqWlZTz9f54N2qbHq3Te8D8LZ0rNz9BfKLAWkUjuPLiXn4u0eAIApoZ1u3wZF5bmqK2Vi2RCTe6ntjv3309t9cXwR6VLp37F/ajzjLhalciNAEpDXAJcWglLn90KP96ahzP2AKDb5j4uzIblXAB47efh193ocImqFZE9M5FsSnDlDZ2ILNdqhyXYjPNz0bqdkcKWGwa7u3+GmH5vo7lCiNsH/QWdEImgYBciERTsQiSCgl2IRFCwC5EIAy04udbs4JVz4SKFdxw6ROeNDYelt1yXyzHVu49QW22Yyz8ry9eprbEezvLqRHqlza1xOak8yv0YG+W976pVXrRxdf7taQw98jmeofazn71IbQtXuXR4eP8Eta23w9pQPssvueGIzLdMsugAYGGVy1odhAtVdro8w25mhffgGyly/8sZfh1YlmewlXPhtepGCpk2mmFbNyK96ckuRCIo2IVIBAW7EImgYBciERTsQiSCgl2IRBio9JbLZbFvcjRoKxZ5BtXM1XBWU4EnLqE6Gj4PADRbXLLrZnhhwHw5LJ9cW+byVANcets3OU1thUgxzcWL56ituXApOD5a4n7ce/e7qO2lSK+38X0HqI2x3uASYH6IZz6uzfLCl0uRoijM/WbkdYEVcwRQzvKCpKV85IJ0fl01WmFf2m0uvWVz4ffTJb0JIRTsQiSCgl2IRFCwC5EICnYhEmGgu/G1cgn/4p/cG7QNVfnu8/Mv/jw4ft89B+mcqVak5leLt11aX+c79cVyWDEoRhI4pmvhdkwAMD6xh9paTe7H8uXz1NaphxN5RsZ53b3JKb6Ok3fwlgC1kXCSCQAsLy8Hxwt5visdqymISO23QilStTgT3iEvR+rnZYzv1OcLXNWoVrkf6w1+PTZJzbtuh1+nOVK9XYkwQggFuxCpoGAXIhEU7EIkgoJdiERQsAuRCJtp//QogD8EMOvu7+mPfRnAHwG4kQHyRXd/aqNjFXJZHBkP10+7PBuuTQcAqyRpwY3LOBnjEkk+zyUSQ7htEQAsLITroFXHeNJNNSLxFApcuipGapaN3clbQ129Er5/5ys8ySRf4WuVG+KyYivSkmmkFp6XiSSZ1CONP+/Yz1/z0toZaitVwmvcjSTCtCLJOuUSX8f9+++gtqVlfl2dvTQTNnAVDWUSug6ejLOZJ/tfAHgwMP51d7+//2/DQBdC7C4bBru7PwsgXLJUCPFrw1Y+s3/ezF42s0fNbGzbPBJC7Ai3GuzfBHA3gPsBXAbwVfaDZnbMzE6Y2Yl6g3/GE0LsLLcU7O4+4+4dd+8C+BaAByI/e9zdj7r70WqRb6gJIXaWWwp2M7u5ntInAby6Pe4IIXaKzUhv3wXwEQCTZnYBwJcAfMTM7kdPHDgD4I83c7IsgCrRE6aJVAMAM0thKWR1ldceW4vIJ51Iba8WaasDAFcXwhll2Yjvk5FWTcViJGuMyHwAUMhyiSqbDUt9zTUuNRW7vK5aN7KO3UhmHquFlstzSXHPKN/66Xa5pLRUX6E2dh3MXuVtvkrcRZQrvC1XucwzN4dHJ6ntwlzYl4Xr4dqLAJAbCl8DEbVu42B3988Ehr+90TwhxO2F/oJOiERQsAuRCAp2IRJBwS5EIijYhUiEgRacNAAFog0USvwPboqlkeD4eI1nm3lEqollm+XHuB/nZi4Hx69HpJ/frHHp7eQr/M8T5i6TTCgA77nn3dRmufD56td4+6S5X0T+TCIi89WqfP1XVurB8U6XS5vLDS6lnrrEi1H+6iwvwDmzsBQcX40UHc1ECkd2I/7HdK9SgR9zeHIiOH5+jrcVK9RXg+Mx//RkFyIRFOxCJIKCXYhEULALkQgKdiESQcEuRCIMVHrLmKFMij1yIQRYWAz3DUOWZxKVhsNyHQA02vwe116PZFCRPnDnTl2gc377t+6ntuVrPKtpcphLdmMTPDvs4q/CMtQLL71M5wzv48e7Ossrku3bwwsszhPp7WzkeItrPMPu0kUuva2v8nkllomW4UU2h6u8P1+mw6Wt2jAvLmpVLveOkp5/zfZJOuc6wjJlW9KbEELBLkQiKNiFSAQFuxCJoGAXIhEGnAhjyJH2P0urvD3OtWvhemyT63w3nqdUAFblu8/5SHuikfFwwsKPf/y3dM5vHL6X2u46dDe1depEgQCwtMjr0y1cDSdPjAzxpJUP//OPUdv5Uz+ntjdOvkltlxfC/p+6wnfjWxle/K3V4ZfqvtEpaisNhXfBryzxNazkeNJKLpLtkotE08j0NLUttsPKQMcjdfdIbb0uqf0H6MkuRDIo2IVIBAW7EImgYBciERTsQiSCgl2IRNhM+6eDAP4SwBR6VbaOu/s3zGwcwPcAHEavBdSn3J3rGQBgQCYXvr9UKlU67eDBsBRSikgk7SZvd5TJc5t3IvMy4eW6cInXCvvzxx6ntn/14EeobWKEt5SqzPFknesXSVujFf66ls6Ea+sBwP7hcWqbG+LJOm+euRQcN1I7DQDGp3hrJa/wJJNKRG7KW9iWjXQUrjtPUOrs5X7kczzZpRbxf9/+sHQ4todLxPMzPDGIsZknexvAn7r7fQA+COBPzOw+AI8AeMbd7wHwTP97IcRtyobB7u6X3f2F/tfLAE4C2A/gIQCP9X/sMQCf2CknhRBb5x19ZjezwwDeB+A5AFPufuP3vyvo/ZovhLhN2XSwm9kQgO8D+IK7v6UYt/f68wY/HJnZMTM7YWYnltZjf8QqhNhJNhXsZpZHL9C/4+4/6A/PmNl03z4NILhj4O7H3f2oux8dLvENNSHEzrJhsJuZodeP/aS7f+0m05MAHu5//TCAH22/e0KI7WIzWW+/C+CzAF4xsxf7Y18E8BUAT5jZ5wCcBfCpjQ6UyWRQKoVrghGFBACwei3cwmfterjOGQC0I/XMOh4+HgBcn+My1LlzF4PjWeP1zOYXuIzzxI9+Qm0jEeltaiycfQcAe0jqlUXq3a1F5LDhSS6vzUYy8zrFsB8Nb3E/rnEJs5vla1yJdGSaHgvXIpwc5evr2Uj2XZtLmCsrPHNzb+QjbLUUXquxCV4L7xptDxbJyqOWG1Pd/w69Nm0hfm+j+UKI2wP9BZ0QiaBgFyIRFOxCJIKCXYhEULALkQgDLTgJM2QLYVnD17mk0SKyhWV5Qb6ViOTVrXH5Z3mZy3ILs+FMo986wrO1Rif2Utv5i1eo7WpEKju7yttNNYbCktKefIHOqRf4Pf+NC+eo7dTMPLVliuEMsKUcf8+a61wuRZdLSnOkLRcAtLrh9/qOMZ7Nl4/IfK0W9+P06bPUNrGHF5zMjITXaqxGWlcByBOJja+unuxCJIOCXYhEULALkQgKdiESQcEuRCIo2IVIhIFKbw6g3Q2nKC0ucqlpqByWk/JExgOA5QVSeBFANs/lk1ivrMMH9gfH7znM51y+eJXaisM8o+zde7hkl8vze7S3w1LTaI1nUM0s8bV69TzLrgLOLfLCl/DwMbORhmi5LJcH8xHbYiQTbXU+XAN1OZKFtjdSd+HQHVxCm7/K663+6k3eM++u++4Kju8f5wUn38yH1zFjXHzTk12IRFCwC5EICnYhEkHBLkQiKNiFSISB7sa32y3ML4STJ65HElcOTId3wUdG+G7l2UVez+zaFV5z7fCRd1HbniOHg+NzZ1+ncy6+8QY/1ygvtZ/t8LemXIrUSGuF799LkTpz3XWeGDQxyuvdrTrftW61wsdsRNouoc2fPSuRZJd2nq9HJh9Oapmt83pxUzXeiswi55qb4cpFt8GvkXIl/F7vi9Qa/M27wzv4r8zxONKTXYhEULALkQgKdiESQcEuRCIo2IVIBAW7EImwofRmZgcB/CV6LZkdwHF3/4aZfRnAHwG4oXF90d2fih4Lhgy5v+zbw2W0YjYs49SXeJJJIVKNq3OVJ3BcAa8jlr/zjuB47Y6wNAgAh97PJaO9o3uobeESr+82c47LitVCuJ7ZSDmSPFPha5Ut80ukGml7tdwOv+65Om/ZtdbkCS2+3qE2I3XmAKBk4dddiCS7tCP1+i5Hkn9mr/KEogZ3H+s/ezM4fueRg3TOnQcPBMcLL7xG52xGZ28D+FN3f8HMagCeN7On+7avu/t/2cQxhBC7zGZ6vV0GcLn/9bKZnQTAH2VCiNuSd/SZ3cwOA3gfgOf6Q583s5fN7FEz47+HCyF2nU0Hu5kNAfg+gC+4+xKAbwK4G8D96D35v0rmHTOzE2Z2YjnyJ49CiJ1lU8FuZnn0Av077v4DAHD3GXfvuHsXwLcAPBCa6+7H3f2oux+tlfjGhxBiZ9kw2M3MAHwbwEl3/9pN4zfX5/kkgFe33z0hxHaxmd343wXwWQCvmNmL/bEvAviMmd2Pnhx3BsAfb+aE5uH7i+f4facRLlsHN177bXKMbyFUh8M17QDg/Hy4xRMA/L//+1xw/AO/8wE6p53lLXyef/UktdWMvzWtHJe8xveGa9eVI62ycktcyouU5IMhIr21wjXehocq/FwZfg3UV3nW3lrEVqmEz5eNtnjibagadd4ebGqSX3MHpsKyLQDsvSPcPuz113mm3PRE+FzNBq+tt5nd+L9DuIVUVFMXQtxe6C/ohEgEBbsQiaBgFyIRFOxCJIKCXYhEGGz7JwfanbCOls1ziWrm2nJwvJjhulAtUowyE9GTasVw1hgAXCeZS2ff4Jlyo0QKA4ALqzzLi1uAUqSFknl4ZqbD7+tjWf6aFzo8S22kzDPHxklrq06XS4Dr67wIZCNSZNMmRqitVgv70e3yNLT6eqQ4pxMdGEAhw9+XWoX7XyVSarXI53SJj07aqwF6sguRDAp2IRJBwS5EIijYhUgEBbsQiaBgFyIRBiq9ZTIZlMphmacRKV54bTksM4xF5IxGJPtncZEXBqyvhGU+ABgthjOorMnljl++Hi4mCACjBZ59d2hvOBMKAFZXuf/ohF+3G1+rfEQyGiNZYwDQzPN5OXJprS7xgo0VixS+rHJ5MB/pv1athCXdVoeLm80yr7vQjkhvHpF0l5f5dXX6ZDjrcN847/V2aCos6T71xjk6R092IRJBwS5EIijYhUgEBbsQiaBgFyIRFOxCJMJApbdWq4WZmStBW7HKM5f2joTlk32T4/xc67xoYCFSKHGsHM6SAgBkw/fGYqSAZaSOJgoZLhkVI8U0PZLtBwtLQ+vGpaYs6YcGAKVY+e8O77HWWAlnsLVWeWZbLVKMslTm71kmUkyzlCfzCnztoz3n+KnQjKzHWkRWnBwJX/sTo/z6rhXDGYfZSNFOPdmFSAQFuxCJoGAXIhEU7EIkgoJdiETYcDfezEoAngVQ7P/8X7n7l8zsCIDHAUwAeB7AZ9092qY1kzFUyuGd9eEq3/WtVcJJEIVIvbhr17kr+Uj7pFKe+8HqjzlJPgGAyTG+U1/O8h3hXJvXSLMG39ld7oRf93wkMaizzs81VOTr4ZHd52w+7GOpxt8z5PjrykTaNVmGz+uSXfByifvRibyfnchufKvNVZJKlV8HnW74mVsAT7pp1MO1AWO19TbzZG8A+Ki7vxe99swPmtkHAfwZgK+7+7sAXAPwuU0cSwixS2wY7N7jRl5ivv/PAXwUwF/1xx8D8Ikd8VAIsS1stj97tt/BdRbA0wB+CeC6+z/ULb4AYP/OuCiE2A42Fezu3nH3+wEcAPAAgHs3ewIzO2ZmJ8zsxEqDf8YTQuws72g33t2vA/gbAL8DYNTsH5qIHwBwkcw57u5H3f3oUKTovRBiZ9kw2M1sj5mN9r8uA/h9ACfRC/p/3f+xhwH8aKecFEJsnc0kwkwDeMzMsujdHJ5w9x+b2esAHjez/wTgZwC+vdGBLJNBsRxOdqhVq3Revhi+Jy2t8jY9FxYXqW1xcYnaJqvD1DYyHPY92+Sy0JX5cH0xAKhEap2VIhkX5vwe3cqEj9lq8cSg60u8PlqX1HADgEqBy1dFUmsw2+ZyEiLJP8VIQk6k4xFy2fAlbpHknxxJeAKA9RaXdGsRmbJG1gMAGp2wXJbL8Ouq2ybyYKQO3obB7u4vA3hfYPw0ep/fhRC/Bugv6IRIBAW7EImgYBciERTsQiSCgl2IRLBYy5ptP5nZHICz/W8nAcwP7OQc+fFW5Mdb+XXz45C77wkZBhrsbzmx2Ql3P7orJ5cf8iNBP/RrvBCJoGAXIhF2M9iP7+K5b0Z+vBX58Vb+0fixa5/ZhRCDRb/GC5EIuxLsZvagmb1pZqfM7JHd8KHvxxkze8XMXjSzEwM876NmNmtmr940Nm5mT5vZL/r/j+2SH182s4v9NXnRzD4+AD8OmtnfmNnrZvaamf3b/vhA1yTix0DXxMxKZvb3ZvZS34//2B8/YmbP9ePme2YW6c0VwN0H+g9AFr2yVncBKAB4CcB9g/aj78sZAJO7cN4PA3g/gFdvGvvPAB7pf/0IgD/bJT++DODfDXg9pgG8v/91DcDPAdw36DWJ+DHQNQFgAIb6X+cBPAfggwCeAPDp/vifA/g37+S4u/FkfwDAKXc/7b3S048DeGgX/Ng13P1ZAAtvG34IvcKdwIAKeBI/Bo67X3b3F/pfL6NXHGU/BrwmET8GivfY9iKvuxHs+wGcv+n73SxW6QB+YmbPm9mxXfLhBlPufrn/9RUAU7voy+fN7OX+r/k7/nHiZszsMHr1E57DLq7J2/wABrwmO1HkNfUNug+5+/sB/AGAPzGzD++2Q0Dvzo7ejWg3+CaAu9HrEXAZwFcHdWIzGwLwfQBfcPe3lBMa5JoE/Bj4mvgWirwydiPYLwI4eNP3tFjlTuPuF/v/zwL4IXa38s6MmU0DQP//2d1wwt1n+hdaF8C3MKA1MbM8egH2HXf/QX944GsS8mO31qR/7ndc5JWxG8H+UwD39HcWCwA+DeDJQTthZlUzq934GsDHALwan7WjPIle4U5gFwt43giuPp/EANbEzAy9GoYn3f1rN5kGuibMj0GvyY4VeR3UDuPbdhs/jt5O5y8B/Ptd8uEu9JSAlwC8Nkg/AHwXvV8HW+h99vocej3zngHwCwB/DWB8l/z47wBeAfAyesE2PQA/PoTer+gvA3ix/+/jg16TiB8DXRMAv41eEdeX0bux/Iebrtm/B3AKwP8EUHwnx9Vf0AmRCKlv0AmRDAp2IRJBwS5EIijYhUgEBbsQiaBgFyIRFOxCJIKCXYhE+P8gPPhW159rIAAAAABJRU5ErkJggg==\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"image batch: 6\n",
"Searching for the initial direction on 100 random directions: \n",
"--------> Found distortion 5.3892\n",
"--------> Found distortion 4.5866\n",
"--------> Found distortion 4.1045\n",
"--------> Found distortion 4.0955\n",
"--------> Found distortion 3.7916\n",
"--------> Found distortion 3.7656\n",
"--------> Found distortion 3.7408\n",
"--------> Found distortion 3.4075\n",
"--------> Found distortion 3.3750\n",
"--------> Found distortion 3.1583\n",
"--------> Found distortion 2.9193\n",
"--------> Found distortion 2.7119\n",
"==========> Found best distortion 2.7119 in 3.5634 seconds using 339 queries\n",
"Iteration 10 distortion 0.4783 num_queries 3179\n",
"Iteration 20 distortion 0.3046 num_queries 5730\n",
"Iteration 30 distortion 0.2518 num_queries 8188\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 40 distortion 0.2305 num_queries 10545\n",
"Iteration 50 distortion 0.2174 num_queries 12940\n",
"Iteration 60 distortion 0.2070 num_queries 15292\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 70 distortion 0.2024 num_queries 17598\n",
"Iteration 80 distortion 0.1984 num_queries 19868\n",
"Succeed distortion 0.1983 target 9 queries 20105 LS queries 3566\n",
"\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPsAAAD5CAYAAADhukOtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAem0lEQVR4nO2daYxc15Xf/6fWXtnNZnMTF3GxNlqyZKstK5HH1sgej0ZwIgsJNHYAQx8McxKMgDhwPggOECtAPniC2IY/OaHHguXAkbxJkDBRxqMR7JE9ViRTskRx0UpS4tILRbLJru6u/eRDFRNKuP/bTXZ3NeX7/wEEq++p+96t+96pV+/+3znH3B1CiD98Mss9ACFEZ5CzC5EIcnYhEkHOLkQiyNmFSAQ5uxCJkFtIZzO7HcB3AGQB/LW7fyP2/v6s+XA+/P1CmqM2i+wrm+GSYjayLwPv52SHFhlITNlsNLmtGekX26aRwcQE1kZkZ41Yx5gtWwx36e3h+5qaorZaZI7rTW7MNuvB9mqD9/FMlu8scvLUmvyAZiO2DLFFPhad++mmo9wMn6l2sTq7mWUBvAbgTwAcBfA7AF9w9/2sz9aurN+/qTdoW9fHJ2N9d3jyuxA+kADQ18U/18o+akI2U6O2ujXCfSLfVNU6H0dplttmK/xI153vL0dOxmrkOJ+e5p95uh454yJfEvWB7eH2G2+kfc7+wy+pbSLiZBPVPLWtnH4n2H5okvdp9K6gNvSFz18AGJuZpbaByjS1dU2HbTM5Pr8ZMvf/a7KOk+TbbyE/428C8Ia7H3T3KoCHAdy5gO0JIZaQhTj7BgBHzvv7aLtNCHEJsqB79vlgZjsB7ASAVbnYTYgQYilZyJX9GIBN5/29sd32Ltx9l7uPuPtIf1bOLsRysRBn/x2AK8xsq5kVAHwewOOLMywhxGJz0T/j3b1uZvcC+AVa0tsD7r4v1qe/ANy6OWwb4IujyBbCq+5TM1XaJxNZsfZ6ZPXcuSpQroRXQC3ylVkNL+ADAM6WIyv1kVX8mGRn5Ig2LKYK8O1N1yIr7hHNceZ4eBX84Njf0z4rvMQHEpkPVCPKBfk12dc3TPu82ddPbXtOj1HbYOS4DEXmqkCOWc34BnPN8EkXu3ov6J7d3Z8A8MRCtiGE6Ax6gk6IRJCzC5EIcnYhEkHOLkQiyNmFSIQlf4LufArm2JgPy2WNOteoyiTEZyaiazXr/KPVarxfoxoJTiFKn0fCkyoRWyliiwWg1CJBLVkSMBKV3ngcDMo81gjVyDZrtXBHcy6XThW51NTX5JFoxQzvd8LC/Y6vKNA++87woJVDp2eobVtkPrJd/HwskqCWZuQ4swC22GNrurILkQhydiESQc4uRCLI2YVIBDm7EInQ0dX4WsPxzmQlaCuTB/sBoNkVjpKZbYbznAGAFbqp7cyZM3xfNT6OMglc4evLQD2yPjrrfPpnIjnLGrG0VCTgopbhCkSlwbdXiRyXeiRQo0mS13VHLi+lyMr/ZIOvxmeNH+vZfHjV/WiVR/80zpSpbU3kmA1l+Rz3RRL2sRiwZmTuG+Q6rdV4IYScXYhUkLMLkQhydiESQc4uRCLI2YVIhM5Kb8hg1MLlf6ZyPDChPx+uwlGtcOmnNM11nJmzsSonXOIpkxpEs+DjqEcS1FVZPSkAlYi8FiNPxJdYYZdqJlbSiNtiMk+VVM/JRSSobIOfjpVhXpKgOHQZtZ0dGw22+6lx2mddJN1dKVJWbHNPF7Xls2HJGQCQCUuHVorVB4volGw3F9xDCPG+RM4uRCLI2YVIBDm7EIkgZxciEeTsQiTCgqQ3MzsMYApAA0Dd3Udi768hg+OZsIw2Ax7BNnYyHIVUPsvzgc2UeWK1WDHZbETymiUliCoROaYZiTZrgst8HhlHJNUZ6sTYjBTVbMbqV8XmitWaApAjplyDS0b5bB+1dV17PbUdynDJ6x2SC2+wyc+P0lS4dBUADGe5RLy5PywrA0BfRGZFJhz3Vq5cZDkswmLo7H/s7nx2hBCXBPoZL0QiLNTZHcDfmdnzZrZzMQYkhFgaFvoz/uPufszM1gB40sxecfenz39D+0tgJwCsLuiHhBDLxYK8z92Ptf+fAPAogJsC79nl7iPuPjKQl7MLsVxctPeZWa+Z9Z97DeAzAPYu1sCEEIvLQn7GrwXwqLUSHOYA/E93/9tYh3KtiVfGwqV1apUp2s+JWtOMlIzKclULnuHGXCTQqEJK7mQjfWIyWTYSbZaNjNFIMkeAH9B6hks/+ZgW2eBzbB6RDskmc+xgAsDKldR0OBK298zBQ9Q2dTosFF21apj26YukEN0amapeEukHANlKZB6rLCKOJ8XMkMSiMan0op3d3Q8C4OKnEOKSQjfRQiSCnF2IRJCzC5EIcnYhEkHOLkQidLjWWxNjp8JyQjESAZYlSlMmEsmVjchC9SaXrjIxOYl9NTIZBPEJzkbksJgalolIdl2Z8B6bkaSYzVyk1luB98uw0DYAXcVwdFimwSPUTgzwqLcDY2PUdvD1V6gtVwmfb10NLr1tz/DP3BepERerp9eo8Ci7PIlgy8Zq6UX8haEruxCJIGcXIhHk7EIkgpxdiESQswuRCB1djQcMTZK3zCKrizkSTZKJlBKKfYtlI9EC+cjKuhNbhqyAA0De+YpqLBAmF7HVe/j+GkPhYJKuGl8pLpKVcwAoGQ9cyYFvs94Ij38mcmBKkWCXE++cpLYM+Ep3fzF8jqwr8/yFaz2c8xAAGh7JKRhZIK/GIqLIx44pQ/Vo8S2yvQvuIYR4XyJnFyIR5OxCJIKcXYhEkLMLkQhydiESoePSGysZxIJdAD5Ii0lvkXI7FyvZ5SwshVh0X1w+yefCZX8AoHdwBbWV+3i/xgApQUQCkACgWYuUr4rkoJtq8FxtjVx/sL1cDJf/AoDJKp+r3uIgtW3ZwssudVXOBNvzEQntbJUfz/o0l+wiMUOog0uYdZJvMFOLnY3kmEX8SFd2IRJBzi5EIsjZhUgEObsQiSBnFyIR5OxCJMKc0puZPQDgswAm3P3adtsQgB8D2ALgMIC73f30XNvKGNBF8q7lYnnhaIQPl0guPCaoDSnxBHBVoxmrnhSR3hpZHm02nee28WkeldVdCOdxm8lzyat7kOd+W7F5PbVt3raF2i7btCPYnhkaon1++pt/pLbKCf6Zx48dpbYj+54Pto+t4VLeZI7LnsUTPPpuYCpc2gwAapHoRxZNmaVJD4EGyU/nkTN/Plf2HwC4/T1t9wF4yt2vAPBU+28hxCXMnM7errd+6j3NdwJ4sP36QQCfW+RxCSEWmYu9Z1/r7qPt12NoVXQVQlzCLHiBzt0dkYf0zGynme02s90zkftyIcTScrHOPm5m6wGg/f8Ee6O773L3EXcf6YkURRBCLC0X6+yPA7in/foeAI8tznCEEEvFfKS3hwDcCmDYzI4C+DqAbwD4iZl9CcBbAO6ez84MjgJJYJiPSAY5EinH45aAZiRhIyLJ/5qRCLZYCSXaJ8vHcZaU/QGAeiQSrXf7ddR2zac/E2wf2rCR9sn0cemta4DLUDyOC6g3uoPtk1UuoW396M3U9kebP0Bte599jtr++3P/J9j+27feon36+wb4OLZcRW1+lG+zefIYtTXIXXCzyc+3Bj0X+Xkzp7O7+xeI6VNz9RVCXDroCTohEkHOLkQiyNmFSAQ5uxCJIGcXIhE6mnAy40AXkRNYDTgAsCypsRaJCsqQJH4tuGhXzXDpwsj+GpGIpnqOR6/1bL2C2jZe/yFq67p8O7WNZ8PRXHte49LPxBh9Jgozp8MJGwGgVJqkttOnw4kZJ2d4wsaRm2+ktlu+eiu19Xycnwcv3PyxYPsj//C3tM+JqTFqW7tiFbWNbOTHZfZMidqsNhVsz0fq7DFlNvaMqq7sQiSCnF2IRJCzC5EIcnYhEkHOLkQiyNmFSISOSm8GQw7hOmWViOTFEvLFyEYC1LKR77izOd6RReY1EI7wAoAVV11LbZXLt1HbcxNc1po89FtqaxbCdc/2HTxI+7x96E1q62lw+Wd4JY+IGzv53kxmLcrG69T90a2fpLbp2Rq19fYN821+9l8E25/Z/wrtc/DI69T28rG3qS3fE65vBwCZIp+r/mq4Dt+AcYm4TiRsSW9CCDm7EKkgZxciEeTsQiSCnF2IROjoajwMsFw4QCUTWUcskD7lcpXvqsgDYWqRek2xVd+iFYPthW1baZ+T/XwVdv++fdR26iQPQFm1hqfpbwyFV3AbXqF9Mnk+99NlHriyupeXcso1wqrA9R+8gfa56VOfoLbZCj8u+Ro/ntff+E+D7Z+47U9pn/GHT1Bbs8zViT1vvEpt/Vl+Pg4ThaIWyfLXQ+SmWJZEXdmFSAQ5uxCJIGcXIhHk7EIkgpxdiESQswuRCPMp//QAgM8CmHD3a9tt9wP4MoBzGsXX3P2JubblZrQcUqPKZYZcPtwnUlkJM02+vUYkj9jQmvXUVimHhY3Ta9bQPi8ePkJt2cgHWLUqnEtuLtvRRliOrNb5fAysXElt6AtLaAAwvHkLtf3xjSPB9ttu/2e0z+oNm6mtzpVDoMhP49lmOPdb1wD/XNd/kOf/O/46l0tPzoZzyQFAaZDLlNdeG869tzqSr+/Uy78Lti80EOYHAG4PtH/b3W9o/5vT0YUQy8uczu7uTwMIxysKId43LOSe/V4z22NmD5hZ5HegEOJS4GKd/bsAtgO4AcAogG+yN5rZTjPbbWa7pyMlaIUQS8tFObu7j7t7w92bAL4H4KbIe3e5+4i7j/TGaqYLIZaUi/I+Mzt/yfouAHsXZzhCiKViPtLbQwBuBTBsZkcBfB3ArWZ2A1or/YcB/MV8d+isZFODRy41yK//TIbnM6t387JLJ1cMUNuqD/ASPtO18EAOneKlfVZf/UFqO3b0DWprRHLyNcB1qNJMWHrbseM62ueOO/6M2rZt4XLYxs2bqG3l8Lpguxu/vpyMRPqhn5+q1RkueT324x8E23/z2CO0z3XDl1PbbJ2P/3SVH7NrruHzf8unw/OfH+NlqP5x355gu4FHgs7p7O7+hUDz9+fqJ4S4tNBNtBCJIGcXIhHk7EIkgpxdiESQswuRCJ1NOAnASFxOPhIBViFP3tUyPInfZKTczp5pLk/M7uOlf7oHw9FmK1aFZSYAmJwOl/YBgENHR6nNC1zG6TlzltpKp6eD7V/553fRPnf/+eeprVzlc5Uh5bAAYIbMcbVcpn1yTf6Zc5Eoxl899hi1PfPQT4PthROnaZ/ZEpd0L1u7hdrWb+CRbTfdciu1rVkdPn+KvbycVGFgdbDdSvx805VdiESQswuRCHJ2IRJBzi5EIsjZhUgEObsQidBZ6c0B1MPyijuXcaqNcP0yrOSJFy/76Meobc/oBLVNTfAItuqZcL0xz/E+h97k9b8qU1yGQpYfmlX9PGovN9gbbF85xOXBsQku5Z08yzOSzcxExk+O56pBLon29XRRG5NsAWDNmg3Udt2OcG250mkuva3fdgW1rdp+JbWtWB2pfcdVYpRK4ai9fG837dMkSUJ9/Bjtoyu7EIkgZxciEeTsQiSCnF2IRJCzC5EIHV6Nd4CsrDcj5YnK68IryR+7+1/RPl0f/ii1/fKRR6mtdIjnzmySHHSFniLtc2aSr2Y3Z/kqfr7IyxN1dYVX3AFgcHV4ldbyfHvjJ/nKdGk2HFgDAGQ6AABDA2GlpFznnSYnxqmtP1KG6oZP3kZteZJv8OgoX7XOD3DFoAa+rJ6phdUaAGhU+DzW6+F+b48dpX0myuEV/HokXbuu7EIkgpxdiESQswuRCHJ2IRJBzi5EIsjZhUiE+ZR/2gTghwDWohXKssvdv2NmQwB+DGALWiWg7nZ3ruG0qXtYGqhGJJkNn/x0sH3knn9N+zx/lMsW/cM8cCLfe5Damh7Oq1Yp87xfs1NcXssYl2qqdS7VHDp6iNo2XB6WAbNFXg6rXOPlpMpVPsaebp4jrXQm/Ll/8QTPF/fy3hepbfWacM41APjTz9xBbduv2hFsz69dH2wHgOmzPDBokgStAAAK/No5XePHc3Y2fP488+tf0T5HRsPnd7UWyxk4N3UAX3X3HQBuBvCXZrYDwH0AnnL3KwA81f5bCHGJMqezu/uou7/Qfj0F4ACADQDuBPBg+20PAvjcUg1SCLFwLuie3cy2APgwgGcBrHX3c7mQx9D6mS+EuESZt7ObWR+AnwP4iru/66bG3R0IZxcws51mttvMdpecJyAQQiwt83J2M8uj5eg/cvdzha3HzWx9274eQDD9i7vvcvcRdx/pM56NRgixtMzp7GZmaNVjP+Du3zrP9DiAe9qv7wHAl1mFEMvOfKLebgHwRQAvm9k5beRrAL4B4Cdm9iUAbwG4e64NNR2YaYS/X5o9PJ9cz+VXBdt/8RyXasbO8GizwZWrqK3QxSPYvBG+DRknMggA1KpclsvleZmhYoFHXhV7eA66QjGcxy2TjeT4i5R4qtd4NGK+j9+WPfZoOLLwoR8+QPs0mnwcluPXpf0v7aG2L9/774LtV199Ld9X5Bp4JpK7bmaaS3YNEqUGAE8/+b+D7S8991vaZ1Ukpx1jTmd3998AtKjXpy58l0KI5UBP0AmRCHJ2IRJBzi5EIsjZhUgEObsQidDRhJMOR40k1+tezaW3p1/4fbD9b/76R7TPtR/5ELV94IZwSSAAKBa59NashMc+UzpD+8Qkr0yBJ1G8LpIwc+P2q6mtpzecjDKX5TJfnZXXAlCMRMtNjB+nNhbdVsxzzWhwiD9xXa5xCfPQIV5i6/GfPRxst7v+nPaZmuL7Ojl5ktrMeTmsXz/5C2rb9/tng+0559GI3STiMGN87LqyC5EIcnYhEkHOLkQiyNmFSAQ5uxCJIGcXIhE6Lr3VEY6immnyxIZHjoUTLOYzPOpqusQTPRYLXIYaGuQS4Gv7Dgfbq5GEjV29fdTWM8iTKPYNDlMbS1AIAKtWhyP6Ygkb3bk8mMtxqey1/WFJFABKJOqwp8jn4+QkjyirGI+I6x7spra9e54Ptl95JZcv12/aRm25AneZQ68dpraDbxygtmImnGx1uJ9HPvYWwhJxJhOReqlFCPEHhZxdiESQswuRCHJ2IRJBzi5EInR0Nb4BQwnh1d1KZPW8SRamt2zaxPtEMtma8VX87u5wDjcAaCK8apqN9BmIrKoPrd1CbTwTGDA7zUsJbbhsY7A9l+Wr6mdLfHu5HD9Fjo+OUlu2EN7fygGeP2+FcSVkssaDjSYjeeGmp8L9Xnl1H+2zbuvFrcYfe/sItdVmZ6itn2yzO8Ovxda88LTsurILkQhydiESQc4uRCLI2YVIBDm7EIkgZxciEeaU3sxsE4AfolWS2QHscvfvmNn9AL4M4ET7rV9z9ydi26o7cKIelpSqlbCsBQCz1XCONO/i8kOjzvOqlWd4rrA6HwZmSQ66XDGc9w0ABobXU9vGLVziWRUpUWXOB9nXE85rd+z4MdonXH+3RSGSg64Zq8qbDQdq5DI8CGllL5feGqf4Z242eSBSvRouu3Ts4EHa59jbh6mtFDl3jrz9NrWVy5FgqUJ4HksNHhyGfDj4xyOS3Hx09jqAr7r7C2bWD+B5M3uybfu2u//XeWxDCLHMzKfW2yiA0fbrKTM7AGDDUg9MCLG4XNA9u5ltAfBhAOdy395rZnvM7AEzW7nIYxNCLCLzdnYz6wPwcwBfcfezAL4LYDuAG9C68n+T9NtpZrvNbHcldo8nhFhS5uXsZpZHy9F/5O6PAIC7j7t7w92bAL4H4KZQX3ff5e4j7j5SjDyvLoRYWuZ0djMzAN8HcMDdv3Ve+/nLzHcB2Lv4wxNCLBbzWY2/BcAXAbxsZi+2274G4AtmdgNaws1hAH8x14YaZjibJ98vkQifzGxYtmj0cXkNGV5aaWaayyf9q3iU2oZtV5I+Q7TPlddcw21X7KC2TevXUVs2ErVX7AlLXl1FLnl5M/KdH8lP19vNc6RlLCzZ1TM8+m7DZr7uu24jn4/9+/ZQW70RjjYbHeMRaocO8O2VZnj+v3cmuLxZJWXPAGDWwm5oHol6y4ePS8Qj5rUa/xuE4y2jmroQ4tJCT9AJkQhydiESQc4uRCLI2YVIBDm7EInQ0YSTMIMTCSj2vE3XbDghYqHIh1/K8Q1WzvIEhadOnaQ293DpqlgCyFcP8LI/o29x+ac/ksQyn+cyWq4rLHllIwksmw0u2MTknzPvTFCbV8NSU6HAt/fKwVepLWNcshs9OU5tU/WwVFaaPUv7PPPrX1FbrcbLUFUqXJbLRsoylRtESo30KWbD575HjrOu7EIkgpxdiESQswuRCHJ2IRJBzi5EIsjZhUiEjktvmVxYGurKh6O1AGCWxPJMHOVJA6cLPFHi8bdfobbRCS7jTJ8J16PzbCxOPyKFROqvZWKJPjL8sFkuLMtlIt/rsQSWiCQwzBApEgAaRKLatplHr2VI9BcAnDpxitouW7OG2va9Gq5H16jzBJBTVf65YgkdzSLzGDnWRiI+PRtJqMq06sipqCu7EIkgZxciEeTsQiSCnF2IRJCzC5EIcnYhEqGj0lsmk0GhJ1wXrZjnUV4NEvE0W+URSONneVRTqcL7xWqbrV4frts2U+YJLGsNLuNkY9JbREPxmFRG5DCLSEb1KpehPFL8rgGeRLFOPvf+AzwJ8VXbr6a2NatXU9uR41yCrVXIsYlMoUUSekbyZcIikXkWkWdZ8shcNz8XY9tj6MouRCLI2YVIBDm7EIkgZxciEeTsQiTCnKvxZtYF4GkAxfb7f+buXzezrQAeBrAKwPMAvujufJkbQBOGCgniiOXOKmfCwR3FlQO0z7oeXpoo28WDbnr6+6jNSK62g28eon1myzwvWU9fWJkAovEMyEVWhLMk51p5hq+4FyMru9MlPn4zvhpfrYT3dyayvX2vvU5tuSzPu3fy9AlqY8kNixHVpRmpoWQWCSiKXDqzWW7MkeClYpErVNRfFhgIUwFwm7tfj1Z55tvN7GYAfwXg2+7+AQCnAXxpHtsSQiwTczq7tzgX25lv/3MAtwH4Wbv9QQCfW5IRCiEWhfnWZ8+2K7hOAHgSwJsAJv3/51Y+CoCX4BRCLDvzcnZ3b7j7DQA2ArgJAH/U6T2Y2U4z221mu6uxmyEhxJJyQavx7j4J4JcA/gmAQbP/l1pkI4BgcWp33+XuI+4+Uog9ayiEWFLmdHYzW21mg+3X3QD+BMABtJz+X7bfdg+Ax5ZqkEKIhTOfQJj1AB601lP+GQA/cfe/MbP9AB42s/8M4PcAvj/XhjxjqBPZq+mRkkZD4Rxj6zZeTvv0rL6M2mqRr7iZ8gy1Tb4TLg1V7OUyX//wWmrLF/hn9kjpn3xEe8s2wupnNHdaJN9d1zSfj2aNBwDNzk4F23sid3KFQje1ZSNjrDa54luuhMeRi5QHyxCpF4jPYyNym1qISIddpCRaNhJY0yAqdyRz4dzO7u57AHw40H4Qrft3IcT7AD1BJ0QiyNmFSAQ5uxCJIGcXIhHk7EIkgnmszNBi78zsBIC32n8OA3inYzvnaBzvRuN4N++3cVzu7sGEfR119nft2Gy3u48sy841Do0jwXHoZ7wQiSBnFyIRltPZdy3jvs9H43g3Gse7+YMZx7LdswshOot+xguRCMvi7GZ2u5m9amZvmNl9yzGG9jgOm9nLZvaime3u4H4fMLMJM9t7XtuQmT1pZq+3/1+5TOO438yOtefkRTO7owPj2GRmvzSz/Wa2z8z+bbu9o3MSGUdH58TMuszsOTN7qT2O/9Ru32pmz7b95sdmxrNmhnD3jv4DkEUrrdU2AAUALwHY0elxtMdyGMDwMuz3EwA+AmDveW3/BcB97df3AfirZRrH/QD+fYfnYz2Aj7Rf9wN4DcCOTs9JZBwdnRO0csT2tV/nATwL4GYAPwHw+Xb7fwPwby5ku8txZb8JwBvuftBbqacfBnDnMoxj2XD3pwGcek/znWgl7gQ6lMCTjKPjuPuou7/Qfj2FVnKUDejwnETG0VG8xaIneV0OZ98A4Mh5fy9nskoH8Hdm9ryZ7VymMZxjrbuPtl+PAeBZL5aee81sT/tn/pLfTpyPmW1BK3/Cs1jGOXnPOIAOz8lSJHlNfYHu4+7+EQB/BuAvzewTyz0goPXNjnjSkaXkuwC2o1UjYBTANzu1YzPrA/BzAF9x93fV3O7knATG0fE58QUkeWUsh7MfA7DpvL9pssqlxt2Ptf+fAPAoljfzzriZrQeA9v8TyzEIdx9vn2hNAN9Dh+bEzPJoOdiP3P2RdnPH5yQ0juWak/a+LzjJK2M5nP13AK5orywWAHwewOOdHoSZ9ZpZ/7nXAD4DYG+815LyOFqJO4FlTOB5zrna3IUOzImZGVo5DA+4+7fOM3V0Ttg4Oj0nS5bktVMrjO9ZbbwDrZXONwH8h2Uawza0lICXAOzr5DgAPITWz8EaWvdeX0KrZt5TAF4H8PcAhpZpHP8DwMsA9qDlbOs7MI6Po/UTfQ+AF9v/7uj0nETG0dE5AfAhtJK47kHri+U/nnfOPgfgDQA/BVC8kO3qCTohEiH1BTohkkHOLkQiyNmFSAQ5uxCJIGcXIhHk7EIkgpxdiESQswuRCP8XPpsj+xCIvYIAAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"image batch: 7\n",
"Searching for the initial direction on 100 random directions: \n",
"--------> Found distortion 17.5573\n",
"--------> Found distortion 12.0032\n",
"--------> Found distortion 11.8691\n",
"--------> Found distortion 11.8582\n",
"==========> Found best distortion 11.8582 in 2.4418 seconds using 237 queries\n",
"Iteration 10 distortion 0.5487 num_queries 3203\n",
"Iteration 20 distortion 0.2097 num_queries 5941\n",
"Iteration 30 distortion 0.1579 num_queries 8393\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPsAAAD5CAYAAADhukOtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAdwklEQVR4nO2dW4xlZ3Xn/2vvc606VX1xu9tNu8HAeIgslBjU8TCCiUisRB4mkkEaIXhAfkDpaBSkQco8WEQKRJoHMhpAPDFqBivOiOEyAYQVoZkQJxIKiQxtML7jGNM2ttvdXe6q7rqey95rHs5x1La+/6pyV9Wphu//k1pdtVd9e6/97b3OPuf7n7WWuTuEEL/6FHvtgBBiOijYhcgEBbsQmaBgFyITFOxCZIKCXYhMaGxnsJndAeDzAEoA/9PdPx39fbvT9pne7Os/EJEHHVw2NFhg45hFr39sZOCHBbaipra65uMitdRr5iM/L/fAj8AWOcKvTTD70XkFxnA+2L0T+X6VtsiR6H5kcxwfK725qirUdfomsKvV2c2sBPAUgN8F8DyAHwL4sLs/zsYcOHTQb/8Ptydt9B4F4FV6MqpqRMc0gqAtg4lvtXvUVjjb54D70Qh8nOlT28Y63+dwwM+tv0FsVYeOGdVD7sdwmdqi+a89bXMv+ZiK34vDEX/RqYbcNhilz2005Oc8CGz1kJ8z6oqaomAfDNLXehj4MRql/VhaWMJwOEwebDtv428D8LS7P+PuAwBfBXDnNvYnhNhFthPsxwD84orfn59sE0Jcg+z6Ap2ZnTSz02Z2ur/B37YKIXaX7QT7CwCOX/H7jZNtr8LdT7n7CXc/0e60t3E4IcR22E6w/xDAzWb2ZjNrAfgQgPt2xi0hxE5z1dKbu4/M7GMA/h/G0ts97v7YpgMtEr7SFGX6NSlYDAYCycgjGSpabW2lV5Jr5x9P1odr1NYOVpGbLe7GYMB9LIr0/I5qvrrvzq9JGUmRZZOaqn56Zb1RBCvuzlezR8F1sTq41qP0eXugQBR1tOIeHCtYjY/ueyP3arPgc99ppd8lXybXH9imzu7u3wHwne3sQwgxHfQNOiEyQcEuRCYo2IXIBAW7EJmgYBciE7a1Gv+6cafyBM/W4slQVSCD1EMug3Q7XNfyQP5ZXFxMbm+3+ZhGh0s8/cE6tc3OzFDbvv38y0nLy2mpb7i6QcdEElrp/Fh1n89/QbL2avAxo8Eq9yO4P0ZBkkw9TMuizD8AqIN7oBEpkQ0+j62S33N1J+2LBXJdg0hs5y+8TMfoyS5EJijYhcgEBbsQmaBgFyITFOxCZMJ0V+PNAPbl/rC0V3p1tNHg7g9J2Z7Nxq2v88SVsy89l9z+lrcepWO6XX6sjUG0Us/LQfXm+GTN70uv0nrB52NjjSfy9Ad8PgYDXmIKFTlvC0o3BclLFqy4t4JkndZseoW8UfDrUhb8vBoFX1UvjY+L8onYaXsVJNYQJaokSWOAnuxCZIOCXYhMULALkQkKdiEyQcEuRCYo2IXIhKknwrC2RnUkMxDdwoJ6WxZoeYMhTwqpKl6rrdVisiGXrlbWeHLHRv8StcG5H8srXOLp9dKdX4oGn4/OTFDTDlxqGmwEUhPmiB88WWTfft61phhy/8tARms20z5GjZCi1ltN4/4HeVmRsoyKyMSsUwwADPtpW9R5Rk92ITJBwS5EJijYhcgEBbsQmaBgFyITFOxCZMK2pDczOwNgGUAFYOTuJ6K/d3dUrPF8oFuURGIrAverIINqbY3XfvOg9c/83Gxy+6XVJb6/YoXaipJLK2WQHYaaS32X19NSXwF+rOgVv9PdT21HbjhCbe3m4eT20rl0ZUFrqDLoGuZBvUEmRQ0rnnE4itprBdJbNeD3XH/Ar9mQ2IZ9LhGzjsgexNFO6Oy/7e4LO7AfIcQuorfxQmTCdoPdAfyNmT1oZid3wiEhxO6w3bfx73H3F8zsMIDvmtmT7v69K/9g8iJwEgC6M91tHk4IcbVs68nu7i9M/j8P4FsAbkv8zSl3P+HuJ1rtoOm4EGJXuepgN7NZM5t75WcAvwfg0Z1yTAixs2znbfwRAN+atKhpAPjf7v5/owEOx4hIHlFBvv5GWgpplkHRwMCPlUUuhy0snKe2Din0eOAYb5E0anL5pAku8VgRtFYKJConc2UtPmauy/0v60Cya/F5nO2lz7tZ8rZWy6v8nKsgs7Dk7qPl6RtrxJMRMQo6ZQ2dS3bDIb+eUaZlTQ7IZGoAMNqiil/nqw52d38GwG9c7XghxHSR9CZEJijYhcgEBbsQmaBgFyITFOxCZML0C06ybCMikQBAWablBC+4DFKvcxln2OcSCSpuWyPFI1tDrv1U5WVqawYFCoP6kCiDgogNkiHYbgQ9ypz73w6Keq4PeP7T0uW0VNbp3kjHWGOe2hqs2CeAIshwXF5IF/Uc8RZ28Jp/09ODSpVuQT+6qNdbI230DheQfZCW3oLLpSe7ELmgYBciExTsQmSCgl2ITFCwC5EJ012NB2BkMZNtB4DC0m622sEq8ixfybzp+BuobXHhELU9+bMHk9t9FCRpBBk+s90etfU63GY1r7lGuh2hLLkfK2u8hl4ZLCOXHW6rqnSdv7WN5+mYZouvxrcrfq3N+LVukoX1esCXrZtlutbg2A8+96OKr8aPENTJG6XHFexiAmi00wlFjeA668kuRCYo2IXIBAW7EJmgYBciExTsQmSCgl2ITJiq9FYWJeZn55K2TpcnH+ybS8tQ8/v20TE9MgYADs6nfQCAH53+J2prPZeWQhplUPGO1goDCuNy0v6566itEfRCanfSCS/9Pm95VVe8PlpVclnRyuDcSA29uuKJQRV4dsowSE4pWryuXXd/+h4pKv6cszV+XlFbLisC2asVJNegQ3bI9Wgm15WRD9QihPiVQsEuRCYo2IXIBAW7EJmgYBciExTsQmTCptKbmd0D4PcBnHf3t0+2HQTwNQA3ATgD4IPuvrjZvjqdDn7tbW9L2uZ6PNNoppeWytpNXlctqllmDS5dLV3iLY1qf/313Vb7vIXP4jKXmg72+Li5eS41Fa1mcnukDpbr3P8qyLCLMvpqpOsDlmVQ/4+MAYAqaK20Znwcq/PXaPH7rVMTKQzAnAWdiFl9RQBVUDdwRGxVkGFXOZmPbdag+wsAd7xm290A7nf3mwHcP/ldCHENs2mwT/qtX3zN5jsB3Dv5+V4A799hv4QQO8zVfmY/4u5nJz+/hHFHVyHENcy2F+h8XEibfiAxs5NmdtrMTq+tBsW6hRC7ytUG+zkzOwoAk/9pU3N3P+XuJ9z9xMwsX1gSQuwuVxvs9wG4a/LzXQC+vTPuCCF2i61Ib18B8F4Ah8zseQCfBPBpAF83s48CeBbAB7dysGajiTccOZq2NbkrTCprFHxMHbyMVVFxyybPRBsQNaw0LuP0umkpDADWK/6xZlRzqckCWfHlxdeupY5pdLm8VrS4bbTB5aSy4HOFKn1tPJj8RtDzqg40pbV+MI+ttObYCvzoBGHRKvlcISh8OQoUR6Loog5aorGr4sE8bRrs7v5hYrp9s7FCiGsHfYNOiExQsAuRCQp2ITJBwS5EJijYhciEqRacNANKUizR+JfwACJBDPpcFhoGvbWCWoO44cgxanuySH8pqO5zyeXQkeuprXmY+zgzx2WtmS7/ctI6KR7ZD4pKNoIsQBRcOmw0eW+22tM65Si4zhbIjc2gkCLrKwcA9TDtx9wML1ZaL/G5GpL9AUCrwYucouR94Cqyy/UBn4/l9fS9U/PD6MkuRC4o2IXIBAW7EJmgYBciExTsQmSCgl2ITJiq9Fa7o1+ltQEbcRkKRJKpg1SiUdAnC871icMHeY+1m46+Kbn9meeeomOK4PX08BsP8HE1l7yC9nE4OJuWf84tvETHGLic1AyyqCzIVGSVD2tw2XDINCgABfi1Lgp+rasq3asuKsA56vJzvhQUCe0aL1S5PuT3wQrJLFxZ4xLg6lraj1FQpFJPdiEyQcEuRCYo2IXIBAW7EJmgYBciE6a7Gl/XuLy6mrSZ8xVVtqJdBCvFZbAaXzb4a9zBeZ7M8K5/c1ty+1xQZ+7Cyxeo7ckfP0NtnXm+XHz8jTwBpdMh5z3kq8jtNp+Pos1rrpVB7To00/skmwEAo/TCOQCgrnnSU5RDhVHauLyRvg8BoNXiSTKXR3zcDKm7BwAbI57YtLKSXnXfGPDVeHNehY6hJ7sQmaBgFyITFOxCZIKCXYhMULALkQkKdiEyYSvtn+4B8PsAzrv72yfbPgXgDwC8oit9wt2/s9m+HE4TEwrjrzulpSW2ZoO7325zqaPd5lIZBlz/mZvvJrf/9u3/jo558snHqe3v/vH71OakxhgA7GsfpLZRnZbYmmTeAaBJ5hcAyk76nAGgOcttJN8Jw5JLQ+ukbh0ADPpB7boyuHfIsLX1FT6mx+XXfpA0tLaSbr0FAKj4/VggfT/u6/D7tEnaUDWCDJ+tPNn/AsAdie2fc/dbJ/82DXQhxN6yabC7+/cABC9ZQohfBrbzmf1jZvawmd1jZjwxWwhxTXC1wf4FAG8FcCuAswA+w/7QzE6a2WkzO726wr+yKYTYXa4q2N39nLtX7l4D+CKA9JfGx397yt1PuPuJ2R6vUiKE2F2uKtjN7OgVv34AwKM7444QYrfYivT2FQDvBXDIzJ4H8EkA7zWzWzFOsTkD4A+3cjADr/3VDeSwTjMtM3SagTTR4BlZoyCDamHxZWo7e+755Pa33/Kv6ZhjNx2htvf1bqe2pcVFauv1+LnVZTpTaukir+FWE7luYqQmC9LU3NJSU9CdCCiCNlTGb9Wi5PdBXaSP2F/j0uagDmrhdbiPXnN58EDJ5bxylH7m2oDfpyuraenQa35emwa7u384sflLm40TQlxb6Bt0QmSCgl2ITFCwC5EJCnYhMkHBLkQmTLXgZFEUmJ9Nf7GmVXJXGkXaVhY8w6fZ4HLM/Mwcte3fx20rG0vJ7QcOH6Jj3hbIco8/8gi1HT10mNp++tRPqe1NNx1Lbm+XXJI5e4kXvhwR6QoAqiGXhqyRvjah9Gb8epZN3lrJAsnLqrTkaAWX14ZRhmA3kNBqfg+3RlyyG62uJ7cvnj9PxyxevpTeVyDX6ckuRCYo2IXIBAW7EJmgYBciExTsQmSCgl2ITJiu9GYFWo10kcLZoEBkrzeb3H7owHV0zA03HKe2A9dxqawzw6fkEJHYnnyaZ/jecCPPejt4iBf46TbT5wwAjz7Oi1hWnha3urN8f8UqP+dRkPWGoD8fy5YL6oqi1eJyacVVOYx4Qh/6RnqzBU3nhkFWZNAWD+uXeBHLhUVuGyykMxXXo15vQZFNhp7sQmSCgl2ITFCwC5EJCnYhMkHBLkQmTHU1vt1u4+a3pBNDDgeJH4fJKvh8bz8dUzb46n6/z1dbmw2+wnzrO34zuf3pZ5+mYx57+klqmw9eaucO8FX8cpaf24vnXkpuP/IGXreuGbQZ6tc8KSTIP0FBV/F5Qo4HrYuawepzEVyzaj2d8FI2+BL+IEjw2VjlK+Qri2TlH0B5np93s07Pf0FaPAFAVZL5DVp56ckuRCYo2IXIBAW7EJmgYBciExTsQmSCgl2ITNhK+6fjAP4SwBGM2z2dcvfPm9lBAF8DcBPGLaA+6O68ZxGA2dkefvO2dydt3RaXGZwkXBTBa9Xq2mVq+8cffJ/aUHJJZt/16fp5S31eK+zipQvUdrTHE2GWlpeprZzjctj6RvoSrNZBIkzB57FpXJZz40kybmmpqXAuDTWc+1EG1esGgQToCIyMER9Tb3DbHEnyAoB+M11nDgCsIjUWPZApK2KL5FBu+hdGAP7Y3W8B8C4Af2RmtwC4G8D97n4zgPsnvwshrlE2DXZ3P+vuP5r8vAzgCQDHANwJ4N7Jn90L4P275aQQYvu8rs/sZnYTgHcAeADAEXc/OzG9hPHbfCHENcqWg93MegC+AeDj7v6qD8Q+/lCd/LRgZifN7LSZnV5Y4O2QhRC7y5aC3cyaGAf6l939m5PN58zs6MR+FEBylcrdT7n7CXc/cegQrywjhNhdNg12MzOM+7E/4e6fvcJ0H4C7Jj/fBeDbO++eEGKn2ErW27sBfATAI2b20GTbJwB8GsDXzeyjAJ4F8MHNdmRWoN1KZ2zV4JKMFURPIG2hAGC1zzOQvv+Dv6W2hcWz1NaeT2dl9Ssu83WDDLUzl7hSud5Pt5oCgNX6IrWxuTp3gWdrVRtcbmzP8jm2Nr9mNZHe4DyzLZLevM/bNW0E13pQpccNg3P2de5HO2jjND93kNouD9LtmgBgY3ktuT1IzENB5ipIets82N39HwAaibdvNl4IcW2gb9AJkQkKdiEyQcEuRCYo2IXIBAW7EJkw1YKTgGPEspcCzaAepWWcKLPtzLO/oLZqFEgrnXlqaxZp3xcuLtAxL1/kMtlgg3+jsDKeJVU0uHzVqtP+r/LEPPRXeYbd0TfybLm2c1mxtnTRxroKCiIOuc3JPQAAFrSNmm2l56M94lLeALzgpPV59l27y6/LdddzWe6ljbQsOqy49sbuAQskbD3ZhcgEBbsQmaBgFyITFOxCZIKCXYhMULALkQlTld4qr7HST2f4nL/AtaGfn/l5cvuzZ56jY1Yu8SyjuU66dxwAdNs9arMyLddcrPmxfv7MGWqrOlyyazS51NQq0oUvAeD6Xrpg0KED19MxT730U2p74okXqG3fMV5gsSQuzjS4TDbf3UdtzRlua7V4lcXhIH2/VUEWHVa4vFYO+XWpmrwQ6EybS5i9+bRtacjvK3cmYfO50JNdiExQsAuRCQp2ITJBwS5EJijYhciEqa7GLy4t4Rv3fTNpO/fiS3Rcf5BOFKirYNXU+anVwUrs2nJQK2yQThhpsaVnAMevu5nafv4yX9ldW1mhtvYcXwWfI6u+zYInVRw9zqv+XrwUJFY0uY3lpjRa/Lo0u3zFutHktsr5Kni3k1ZXmrP83tk4y+e+HnL/14Nr1jTe3uzAwf3J7YMhT8hZvZxWGSL0ZBciExTsQmSCgl2ITFCwC5EJCnYhMkHBLkQmbCq9mdlxAH+JcUtmB3DK3T9vZp8C8AcALkz+9BPu/p1oXxtra3jsxz9OH6fgMk5ZputtjQJpYmOFSxPDNS7VtFpBfTdS96vd5GPmDt/Ibb205AIAFy++SG0zrSAZg8iUA+OSYrvH/Z+peOIKSi5fNZrpW6vV4XXr9u/nddoaHZ4Ic2mF1/nrb6TPO2rLdfjYYWq7/Bxvy+WDQCpb4fO/72D6vPcfOEDHLJP7m6fBbE1nHwH4Y3f/kZnNAXjQzL47sX3O3f/7FvYhhNhjttLr7SyAs5Ofl83sCQDHdtsxIcTO8ro+s5vZTQDeAeCByaaPmdnDZnaPmfH3HEKIPWfLwW5mPQDfAPBxd78M4AsA3grgVoyf/J8h406a2WkzO72+zmuhCyF2ly0Fu5k1MQ70L7v7NwHA3c+5e+XjkhlfBHBbaqy7n3L3E+5+otvl3+kWQuwumwa7mRmALwF4wt0/e8X2o1f82QcAPLrz7gkhdoqtrMa/G8BHADxiZg9Ntn0CwIfN7FaMV/vPAPjDzXbkdY3h+mrSNuhz2WI4TEtl1YgLDTNdLhl1Z/lrXKC8wUjLoNE6zyhbW0ufLwAM+nzc7JD7ePnCBWobttP7bF/H31W1Z/lJB6XTsG5cwnTShsi5aoii4JlhUbYcSn4fbCDt42DIP1K2OvxQMzN8HlmbMgDoD9OSKAAsk/ZbrS7PpuzNzSW3l2VQ15BaJrj7PwDJKxdq6kKIawt9g06ITFCwC5EJCnYhMkHBLkQmKNiFyISpFpwcjUa4uPBy0mY1z6BqtdKSTJdVNQTQafEsOgMvODnc4BLg4FJaItm4dJmOWVnlRQhbQbYcK0IIAFVQmPHl1cXk9v4lLgu1g5ZB7SG/LsM6yrFKH28tKJT44gbP9OteN09tGzXfZ58UFy0G/LxGgaTbrLlcWg+4LXquri2n/a9rfg/P9tKyXFHw4+jJLkQmKNiFyAQFuxCZoGAXIhMU7EJkgoJdiEyYqvRmBjRIf7CmcVfaJKuprHjW1fpSUHByI5BqiLwGAP3ldAabBYUvm85fT7sHeBHFogh6onW4jDZbpwsp9to8W6ta4PJgtcKztZoWFL5spK9NXXC5cQEvUFtjiReV7Pb4uXVKMo8Vl7X6qzwjbu0yn49On8t5naDXWzVIy4MrAy4BNmbT0ps7H6MnuxCZoGAXIhMU7EJkgoJdiExQsAuRCQp2ITJhqtJbYYYZIilVQ56J1r+clrzWl7lkNNjgmWg1KRwJAFZx+cRJQcFGIOPU4JlQQZ1ElCPuhxm39ZpE4iHZXwAwXORSUzNI5KqCTMWqSA9strkEhSCjrBpwSbSe4edWF+nMSK/45DuRwgDAl4OsyGHQr7DgMmVNHrn9Ab8ufXIvVhU/jp7sQmSCgl2ITFCwC5EJCnYhMkHBLkQmbLoab2YdAN8D0J78/V+5+yfN7M0AvgrgOgAPAviIu/NlTADVcIjl8+eStrVlvto6Ii2U6g2eCNMM6qrNNngyRtHkU9L39OqzB8vqowFfHfU+979e5wkXRcn32WikX78vL3F1ogzqzJVBnblixFfPZzrpVfDgsgDD4Fir/JxtlT+zNkibp4bxlfNW8AwcBolNVcXnox+0vbIifd6jYO77A1a3jl/LrTzZ+wB+x91/A+P2zHeY2bsA/DmAz7n7vwKwCOCjW9iXEGKP2DTYfcwrgnZz8s8B/A6Av5psvxfA+3fFQyHEjrDV/uzlpIPreQDfBfAzAEvu/sr7lucBHNsdF4UQO8GWgt3dK3e/FcCNAG4D8GtbPYCZnTSz02Z2uj/g3z4SQuwur2s13t2XAPw9gH8LYL/Zv5SXuRFIlxlx91PufsLdT7SDpg5CiN1l02A3s+vNbP/k5y6A3wXwBMZB/x8nf3YXgG/vlpNCiO2zlUSYowDuNbMS4xeHr7v7X5vZ4wC+amb/FcCPAXxpsx0NBwO8eOa5pM0q/ha/jbRM0iBSGAC0m/xdhPf5sfqBrSL189wCqQZBskiQkAPnWs1wnUt2nW66Hlsx4nJjNeD7QyAnGbkuAADWRiuQ1xqBLOd1IJdW3FYT+coDWasug2dgIDfWQXLNWpDkY2V6HuvgvgKT2II53DTY3f1hAO9IbH8G48/vQohfAvQNOiEyQcEuRCYo2IXIBAW7EJmgYBciEyxqF7PjBzO7AODZya+HACxM7eAc+fFq5Mer+WXz403ufn3KMNVgf9WBzU67+4k9Obj8kB8Z+qG38UJkgoJdiEzYy2A/tYfHvhL58Wrkx6v5lfFjzz6zCyGmi97GC5EJexLsZnaHmf3UzJ42s7v3woeJH2fM7BEze8jMTk/xuPeY2Xkze/SKbQfN7Ltm9s+T/w/skR+fMrMXJnPykJm9bwp+HDezvzezx83sMTP7z5PtU52TwI+pzomZdczsB2b2k4kffzbZ/mYze2ASN18zs6CXVgJ3n+o/ACXGZa3eAqAF4CcAbpm2HxNfzgA4tAfH/S0A7wTw6BXb/huAuyc/3w3gz/fIj08B+C9Tno+jAN45+XkOwFMAbpn2nAR+THVOABiA3uTnJoAHALwLwNcBfGiy/X8A+E+vZ7978WS/DcDT7v6Mj0tPfxXAnXvgx57h7t8DcPE1m+/EuHAnMKUCnsSPqePuZ939R5OflzEujnIMU56TwI+p4mN2vMjrXgT7MQC/uOL3vSxW6QD+xsweNLOTe+TDKxxx97OTn18CcGQPffmYmT08eZu/6x8nrsTMbsK4fsID2MM5eY0fwJTnZDeKvOa+QPced38ngH8P4I/M7Lf22iFg/MqOsObIrvIFAG/FuEfAWQCfmdaBzawH4BsAPu7ur+pqMc05Sfgx9TnxbRR5ZexFsL8A4PgVv9NilbuNu78w+f88gG9hbyvvnDOzowAw+f/8Xjjh7ucmN1oN4IuY0pyYWRPjAPuyu39zsnnqc5LyY6/mZHLs113klbEXwf5DADdPVhZbAD4E4L5pO2Fms2Y298rPAH4PwKPxqF3lPowLdwJ7WMDzleCa8AFMYU7MzDCuYfiEu3/2CtNU54T5Me052bUir9NaYXzNauP7MF7p/BmAP9kjH96CsRLwEwCPTdMPAF/B+O3gEOPPXh/FuGfe/QD+GcDfAji4R378LwCPAHgY42A7OgU/3oPxW/SHATw0+fe+ac9J4MdU5wTAr2NcxPVhjF9Y/vSKe/YHAJ4G8H8AtF/PfvUNOiEyIfcFOiGyQcEuRCYo2IXIBAW7EJmgYBciExTsQmSCgl2ITFCwC5EJ/x+mooovHjwBdAAAAABJRU5ErkJggg==\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 40 distortion 0.1385 num_queries 10781\n",
"Iteration 50 distortion 0.1288 num_queries 13170\n",
"Iteration 60 distortion 0.1218 num_queries 15531\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 70 distortion 0.1177 num_queries 17833\n",
"Succeed distortion 0.1148 target 3 queries 20109 LS queries 3872\n",
"\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"image batch: 8\n",
"Searching for the initial direction on 100 random directions: \n",
"--------> Found distortion 2.7662\n",
"--------> Found distortion 2.4056\n",
"--------> Found distortion 2.2235\n",
"--------> Found distortion 2.0248\n",
"--------> Found distortion 2.0189\n",
"==========> Found best distortion 2.0189 in 2.6418 seconds using 258 queries\n",
"Iteration 10 distortion 0.4267 num_queries 2999\n",
"Iteration 20 distortion 0.2861 num_queries 5562\n",
"Iteration 30 distortion 0.2402 num_queries 8007\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 40 distortion 0.2183 num_queries 10402\n",
"Iteration 50 distortion 0.2034 num_queries 12766\n",
"Iteration 60 distortion 0.1951 num_queries 15100\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPsAAAD5CAYAAADhukOtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAej0lEQVR4nO2da4ykZ5Xf/6fuVV3V97m0Z8Ye31iwCGvYkcMGQrysduOglQxKguADsrRoZxUtUpA2HywiBSJFChsFEB8ioiFYeCPCZRcQVoSSdazVIj6sYfCasbFhbczYM+Oe7pm+VnfXvU4+VE0yNs//6fZ0d/XA8/9Jo6l+Tz3ve+p531Nv1fOvc465O4QQv/5kDtoBIcRoULALkQgKdiESQcEuRCIo2IVIBAW7EImQ281gM3sAwOcBZAH8N3f/dOz5mUzGs5ls0OZm/DjeD24vF/J0zOzUOLXlsvxYAJci+x4eF5cvw74DQDYT8WOPFdHY7iJTj9hL6/X4a2u2u8HtrU54OwBk8/x8Gpl7ACiVCtRWLpJLvN/jxwI/lkdmMjbuhohMPrNcXlrD6sZW0JEbDnYzywL4LwB+D8BFAD80s8fc/Tk2JpvJYmZyOmjrZviJzrQbwe1vPXmYjvnDf/4AtR2dCr/hAEAXbWprt8MXVavNL3qzTWobL0Wmvxc50f03fhH0IxdiJs8/4PW6/Fgrq01q+/sLC8HtLy2u0DETh45SW975OXvLm05wG7lGMo06HVOIvPt1IgGYidxEMhb5EE3eNL3Lr6s+uYn84X/8MveBe7At9wF40d1fcvc2gK8BeHAX+xNC7CO7CfZjAC5c9/fF4TYhxE3Irr6z7wQzOw3gNABkMloPFOKg2E30XQJw/Zel48Ntr8Hdz7j7KXc/Ff3eIoTYV3YTfT8EcLeZ3W5mBQAfAvDY3rglhNhrbvhjvLt3zexjAP43BtLbI+7+k+ggA8Du7pEVZqYNLa2u0SFbTb6qPl47Qm2bHb563vGwYtDqRlZvI6vgvQ73sVouUVshx08bW6lvt1t8TL5MbbnxKrVVx/g5G2+F/W/N8xX88xevUtvJIzPUduzoHLVVq2PB7TEFIh+5B3YzXDrsZSKyXEQ67PfIPruRY5GFeovIubv6zu7u3wXw3d3sQwgxGvQlWohEULALkQgKdiESQcEuRCIo2IVIhH3/Bd3rYeKERbKJMkRqWt3kMs781WVqe9ubuVTTjiQfbBGlrJvlGXYoTlBTvRFOFgEAkvsDAJiY4LKck2yufKlIx/TyPGssW+Sy3Fi1Qm33lMIJT2sNPr8/OPsUtRVK/DVPzs5SW7YYvq7yPK8GmYhMBu/wccZtFks7JJmgXePhmemFj2WRJB7d2YVIBAW7EImgYBciERTsQiSCgl2IRBjtaryD1tWKrSI6SSZp9PiYC5eXqG2rwZNCGltbfNwGqYV3+CQdk6nxVeReha+Cr1ydp7Z8n6+sz0zXgttzkXJKhRJfmo7VXMv6G08Ymajw8mMnjh2ittvuOkltE4emqC3n4XPtrUgpLlI/DwC8H1nt7vN95mKF/hBWUHKxeoikjFssjVx3diESQcEuRCIo2IVIBAW7EImgYBciERTsQiTCSKU3M97yqBdrq0MSE5j8AAAXF3kizNXVVWrrtngNuiZJ4piOJJkUx3mShhlPoNlq8PZEiyv8tW1thrN1ypHMjyOHuB9F1j4JQLvDEz82yDzm8vw8zx7ldeaO33krtVmZXwcFkuRjzpN4Og1eGxBt/prR5bZepO0VSA26bmRMrx2+T0c7/3APhBC/TijYhUgEBbsQiaBgFyIRFOxCJIKCXYhE2JX0ZmbnAdQxSNvpuvupbUbQVk65iGTAxsTeqxaWuLx2aYFnxM1OcBknh7D01qzX6Zipo1wyKtYmqe1qpIbeqxd+qX/m/x+3tRg2sBZDANbWuTxYrYXbJwGARbLeluvr4TFVLvPNzRymttJEOJsPABbWV6itWgxLb9WIXJov87p7nSy/PooFbstGsg67rbDUl4+0RDPSOszyset39/yOu/MmXUKImwJ9jBciEXYb7A7gr8zsR2Z2ei8cEkLsD7v9GP9ud79kZocBPG5mP3X3713/hOGbwGkAyJL62EKI/WdXd3Z3vzT8fxHAtwHcF3jOGXc/5e6nMhl9axDioLjh6DOzMTOrXXsM4PcBPLtXjgkh9pbdfIw/AuDbw0KROQD/w93/V2yAAciTt5dupMgfyCcCi7xXbRA5AwCWI5LRm07eQW2NjXBWU894hlo+x49lEWmlOsYlr3KlSm1XF8PSW4VIUACwsLxBbS9dukxt0zUuo9W3wv2rJg/z1ltv+wdvpbbJaV5UcqtJ5EYA8LAUlXW+P4sUMs2yCxiA5/jX1EyWXyPZQrgopkXk6DK5rrL7Ib25+0sAfvNGxwshRou+RAuRCAp2IRJBwS5EIijYhUgEBbsQiTDSgpO1WgX33x9OjDv39Dk6bmUlnEGVz/M+avf/zruo7bfe/R5qq45zuaP+8oXg9m6by3ydDpdc+iSLDgBmpyaorXv7XdSWz4b99z4vhri5yYts1i/zvnhZC8trAJDLhC+tboP7UQKXjUpZnqVWj8i21Vq4f9yxo3fSMZ0WlyKzJX7NNbpNaru88DK1FchLK5V4Ucx8IZyZZ+r1JoRQsAuRCAp2IRJBwS5EIijYhUiEka7GT02P419+6J8Gbfe/97fouGfOPRfcXo7UCvuHv81X46s1Xs+s112jtnYzvOr+yiuv0DGlyglqu+WW8EoxAJTYEi2A2alpapsYCye8LF5ZoGNi9e6OHo8khXAxAbls+NIq5fglt7rE/ahM8XNt4KvxxXL4fuZZrqD0MlwxaLX5Sv1qpBbe0kpYyQGAsUr4tVVr/NrJF8LzaLReo+7sQiSDgl2IRFCwC5EICnYhEkHBLkQiKNiFSISRSm/ZXBbTU2HZq1rl0srMbLheWLnIEwVKlUjboshbnGW45NUlOS2tHpdxNpu8NdRGi/sYya1BrFNWdSxcn64RSXZZyXLbMklCAoCZKV7Hrd0P63JGtgNA17mE1mhwHw8d5lLk+GR4jtvOk1YKY5ELpMcTm+oLvBZeD1t8HKnXt7LGr+9jc+TaMV7XUHd2IRJBwS5EIijYhUgEBbsQiaBgFyIRFOxCJMK20puZPQLgDwAsuvtbh9umAXwdwEkA5wF80N15ys//21cGOVI7q+9ca6qUw1pTLsdlslh9ukKJv8c1NnjNtWYzLNccOTJLxzDpBwBakdpp2Ui7pkKea2/r9XDWXqPBs7VaW9xWIOcLAPoRDdMRloCaTL8E0OlyWW5tjUuY1Wk+x6VyuK6dZXi9O8vy85Lv8decIxl2AGCb/LWxhqerdZ4FWJsIy3K9Pvd9J3f2LwN44HXbHgbwhLvfDeCJ4d9CiJuYbYN92G/99W8xDwJ4dPj4UQDv32O/hBB7zI1+Zz/i7vPDx5cx6OgqhLiJ2fUCnbs7QL6gATCz02Z21szOrq7yn14KIfaXGw32BTObA4Dh//RHwe5+xt1PufupyUnez1sIsb/caLA/BuCh4eOHAHxnb9wRQuwXO5HevgrgfgCzZnYRwCcBfBrAN8zsowBeBvDBnRzMAOSIXJMrRQoKWtjNTofLGdmIPGU5Pq7T5dJFhbTjqVQm6ZiJGs9cyua4rdOMtF3KR4o2roW/Ki1cuULHLF7ltmKJF+esjfNPao1GWKYk3akGWJaaevy0YGWJy3Kt4+FzXRnjc9hBRB50/gIqVT5XV5Z4wc8+ac3V7XNJdH4xXOS00+ES9rbB7u4fJqbf3W6sEOLmQb+gEyIRFOxCJIKCXYhEULALkQgKdiESYaQFJwEHSB8t53XykM2EpZCecT2m3ebyWqRmIDxiPDwb7s3WaEay0NZXqa3MlRqsr3I5qZ7hk5Uvkh5rpJ8YAIxNTHBblduOzM1R28Ll8O+sqtVIIdAsl9480lcuk+EZgkye7UV2GJM2+xmeTVkb4wU4Jyd5Ucy19avB7R7xsUu0SJZtCOjOLkQyKNiFSAQFuxCJoGAXIhEU7EIkgoJdiEQYqfRmZsjlw+8vzQ7vvdUnckI3kuFTynEZ58qFS9TW3eT7nLv1juD2CwtLdMzilVeprf6LcOYSAFgkA+z48WPU1iOSY6vL5cG5I8ep7dAhXoSoY2EZFQAq4+GMvrHxcC86ANja4v3QtvihcPj4LdRmfSJF9fj15hk+V6Ucl96yFV7E8pajXBJrNMIvLpvj4Tk7HS5yms9xGVJ3diESQcEuRCIo2IVIBAW7EImgYBciEUabCGNG2+70Iyu7GQuvMGf6fMW62OMvbfNV3qmqucpXhN90973B7VMz/D1zgudGYLPOV/5jq+ezMzPUtrER9v/SxfngdgC4Os9tc9N8Nb7Hu2+hb+HX1o2oLlMzvJafGU9Q6kbq9eVzpHUYeBJVt8evq77zcWMFnuTTj9QpLBfDF8nYON/fWDWsamSy/LrXnV2IRFCwC5EICnYhEkHBLkQiKNiFSAQFuxCJsJP2T48A+AMAi+7+1uG2TwH4IwDX+gZ9wt2/u5MDGun/0+1x6c3Ie5Jl+HuV9bmtmuPJGKv1NWrLelg2nJwK16YDgK0Gl4VKZS7xbG1xiWp5mSfeZLPhRIi54yf4sUrL1LaydpnaZm8NJ2MAwHQtrMutLXPZ8+QtR6lts8Ul0aVI+6pfvBhOQLn77pN0TOYGWpEBQNf5uV5d46+7NhGW2KoT/Dq1SBsqxk7u7F8G8EBg++fc/d7hvx0FuhDi4Ng22N39ewD4W78Q4leC3Xxn/5iZnTOzR8ws8jsxIcTNwI0G+xcA3AngXgDzAD7Dnmhmp83srJmdXVkJtxMWQuw/NxTs7r7g7j0fVLH/IoD7Is894+6n3P3U1BTv5y2E2F9uKNjN7PpWIB8A8OzeuCOE2C92Ir19FcD9AGbN7CKATwK438zuBeAAzgP4450czMyQIXW1Yu2f1taIHNbi71U549LExBiXjC55uG0RACwth/2YuuM2Oqa+wTPblpbCbX8AntUEAJlIfb2Ntc3g9uo47zVVm+OS19Nnv09tfdugtuMnwnXyrl64SMfMv3Ke2saneBuqlcUFavvbv3k8uP3Nb7mbjvlH/+S91Hb0BK9312hy+XhlhV9XpbGw1Fcu8vPcarFj8UDaNtjd/cOBzV/abpwQ4uZCv6ATIhEU7EIkgoJdiERQsAuRCAp2IRJhxAUnedZbrsBdWdsI//Kut8Flhn6eS29Hq1zGues33kJtdVLMsdzmksvMzDS1VWv8R0ZjY7zY4MICl3HQC6cx5LIRGafZ4PsjxT4B4PI8b211/JZwJmA+0lqp1+aZfjMTPGtvczXcagoApsfCEubzTz9Hx2xECoH+xtv49VEq8/ZPnR7f5+Fjc8Htuci92Mn5zEQkZ93ZhUgEBbsQiaBgFyIRFOxCJIKCXYhEULALkQijld5gMAtLBoVSiY6qVMJZQZtNLtUUalyOQYFnlM1WeXbYaj98vJV1XrXr0DQvRjlR4/Javsx9vP0OPq5SDst59XWeoZaNyGuH5niW14Vf/Iza5l8NF4HM53mDuGykT1m7wQtOeovLWnfddntw+8wEl0Tnr6xS28s//Tm1TU5zSbfV4fJmj/hfLfC5mpgiveMi2aO6swuRCAp2IRJBwS5EIijYhUgEBbsQiTDi1XjASCJELs+TCKamZ8Jj+nyFeYytVgIAwi2SAKDf4cuZE2NhPxbW+Gr84gKvuVYq8USYQoW/tgJp8QTw2nX5SN26+TYv8X385Elq8x5vd3R1KTwnt93K6/UVS1xBuXKFt3haW+bzP01aKJWLXP2ZHI/VL+QtEsayfPW8t8Xnav4X88HtG1f5eTn55juD29tNfhzd2YVIBAW7EImgYBciERTsQiSCgl2IRFCwC5EIO2n/dALAnwM4gsHP7M+4++fNbBrA1wGcxKAF1AfdfWWbncFIskPeuZxUqYSTUzYLvPZbu9eltlKJJ5I0OzzhItPqBbdPRZJuGls8WaeLiP8rS9RWr4dbPAHA7JFwK6dSJAFlapInhdQmjlPb0dmwFAkAP/9puP1ftcLnaqvB52ol0iprKyI3jZPEpmw2nFwFAHNHeHuwsTL3v93m106srl0mE5Z7612ePPPCT14Ibm/uUnrrAvhTd78HwDsB/ImZ3QPgYQBPuPvdAJ4Y/i2EuEnZNtjdfd7dnxo+rgN4HsAxAA8CeHT4tEcBvH+/nBRC7J439J3dzE4CeDuAJwEccfdrP/25jMHHfCHETcqOg93MqgC+CeDj7v6a3/G5u4OkzZvZaTM7a2ZnV5Z5UQAhxP6yo2A3szwGgf4Vd//WcPOCmc0N7XMAgp0L3P2Mu59y91NT07Hfqwsh9pNtg93MDIN+7M+7+2evMz0G4KHh44cAfGfv3RNC7BU7yXp7F4CPAHjGzJ4ebvsEgE8D+IaZfRTAywA+uO2eHEA3nFGUiWSiFYqsZRTPDNus16mtkuPSW3ksIqNtho9XyfMxlSkuT3VJKywAWHj5ArWtXOVtl3Ll8Pv3eIZLb50+z4jLZvn9IF/k+zxyS1gC7Gzxc7Ywz1/zxiaXG6sTvPZbn0iO+TyX3koVnhHXiNQ9rK/zLLVOLyzbAkCZ+Oh9Pvfzr4RbgHUirci2DXZ3/z4AdlX+7nbjhRA3B/oFnRCJoGAXIhEU7EIkgoJdiERQsAuRCCMuOOnokWw0pwv+QCEXdrNY5u6vXuXSW78WkUEmeEHBcjEssfU6PMMuE3k/dfC2S2NZXoCzGMlg67WJNFTk8ppHZKH6Gk9kzBgfN/h5xi+zurpGxyxc5pJiZZz/IGt8nLfsylhY0u1H+iT1nV+L5GUBALr8dKJU5udsayuc3bZe51JeYzN8nntdfk50ZxciERTsQiSCgl2IRFCwC5EICnYhEkHBLkQijLzXGxM8Op1IQb5sWDaqlCM928D31+1yqSwmuxQL4Wy5fD6iuUTkteY6l6GKGf7ajk7zgohWC0s8BePSm4HLNdkCv0TaEcmx3QlnX62u8AImmRyXG2tjPFMxGxnXIT56JNOvGjnWZp9nlZVLXF4b1HcJs9IKXwd9PgTVWtjHTIbfv3VnFyIRFOxCJIKCXYhEULALkQgKdiESYaSr8e5Arx9enWbbAaDv4ZV1Nz4mliTTN76i2o0khfS6YT8yzv2wiI9bV3iSyYWfvkhtR0/cQm21Q+Haaq0t3pooF3nL9z5vJ5Rzvhq/sh5ORGKJUABQqURW3At8xT2mrmxthpNMMhm+v1aL15mLXad5krAFAMsr/FyXy+Gad7HV/TapNWdajRdCKNiFSAQFuxCJoGAXIhEU7EIkgoJdiETYVnozsxMA/hyDlswO4Iy7f97MPgXgjwBcGT71E+7+3e325/1wokm/H5G8PCz/NJu8JVChxBNaehkurXSdy3JZkjzRboflHQDwPk/I+dmPn6O2F576O2orlf8xtY0fmw77AS5PNRtcXoPxbIwGqZ0GAJtbpAZgRBrqdvg14JHro9nk/nfJuAy5DgFg8XK4tdIALr21O/y6itWuy1o4DOsbvI4im/t+RDreic7eBfCn7v6UmdUA/MjMHh/aPufu/3kH+xBCHDA76fU2D2B++LhuZs8DOLbfjgkh9pY39J3dzE4CeDuAJ4ebPmZm58zsETPjNZiFEAfOjoPdzKoAvgng4+6+DuALAO4EcC8Gd/7PkHGnzeysmZ1dWebFGoQQ+8uOgt3M8hgE+lfc/VsA4O4L7t5z9z6ALwK4LzTW3c+4+yl3PzU1zftoCyH2l22D3QatPb4E4Hl3/+x12+eue9oHADy79+4JIfaKnazGvwvARwA8Y2ZPD7d9AsCHzexeDOS48wD+eGeHDEs5fY9lm4Vlo3aLSz+tNpctepE+PVPjR6mtWAi3f+pHdJUOadMDALmI/FOycCYUAGQ7XA5rExlqI1Lvrh3xMUvq/wHAWmSfW2SfmxsbdEyny2XPWFujfo/Lm1sb4Wy/SqVKx1xd5m2XNiNyWHUsnHEIABNTvH0Vk50rJb6/UiGcEZfN8pDeyWr894FgI7ZtNXUhxM2DfkEnRCIo2IVIBAW7EImgYBciERTsQiTCyNs/sSSqfqRoYJe0hmpHWka1O1yW60QylxqRcZVS+BfBLBsOAJqRHj5zt/EUg5nxGrUdOn6I2paXrwS3b2zwtkvejhRsbPD5iGWbtUj7p8UlnlE2Pj5ObbFWU/0el+z6pEBkI/q6eHHOfp/70YgUqiw2uG2cnOtiRHrrNMP7y2S4nKs7uxCJoGAXIhEU7EIkgoJdiERQsAuRCAp2IRJhxL3e+uiRDCUmJQC8l5d3uMzQbnNZKNZvLOIGOpXw8WL9tbqRKS4c5plX1cPhDDsAqG/xQpvra+GeYs1IthlJRAQAdNs826zV4nO8sh7OHGtExszmeW+zWNabB/O0BuTz4fmPFTiNFZWM9QIsGPc/G2uoR7Im+5EsQDaPfecnU3d2IRJBwS5EIijYhUgEBbsQiaBgFyIRFOxCJMJIpbd+r4/6WliSWV7hWVkgfcryxTwd0etx+WRtjctQWxNce+vUwn5kjB8rm+EZcf2IHLMZkagaXW5rk2yzWIZaIV/gx4pka21Ger0tL4XPZyHHjxUudThggxSOBLi8BgClcrhwZzbL555lygFAscj9r0QKTnpEEquvh4tY9iOaaKsVlrA9kmWpO7sQiaBgFyIRFOxCJIKCXYhEULALkQjbrsabWQnA9wAUh8//S3f/pJndDuBrAGYA/AjAR9ydF4XDoL3PIqmRtkYSOACgRFbda3lep61U5EkJr27yOmiLr85T2+z44eD2Yp6v3sbIRxI/EEm4eHnxKrXNnz8f3O5tfmoKRb6KnMnxS2Qrohh0SOLKzBTv7N2M1BRERF0pFvgKec7C97NmxPdKhSch5SIr/1EFaJW3lMoVwvssl3gLsGo17GMmojLs5M7eAvBed/9NDNozP2Bm7wTwZwA+5+53AVgB8NEd7EsIcUBsG+w+4JownR/+cwDvBfCXw+2PAnj/vngohNgTdtqfPTvs4LoI4HEAPwew6u7XfmVyEQCviyyEOHB2FOzu3nP3ewEcB3AfgDfv9ABmdtrMzprZ2fV1XnRBCLG/vKHVeHdfBfDXAH4bwKSZXVtZOA7gEhlzxt1Pufup8fGxXTkrhLhxtg12MztkZpPDx2UAvwfgeQyC/l8Mn/YQgO/sl5NCiN2zk0SYOQCPmlkWgzeHb7j7/zSz5wB8zcz+A4C/A/Cl7XbU7XZx5UpYNlpeXabjxsbCEtVmgydHZAu8fldzk8sur9aDH1AAAMcO3RrcPj7OpZ92JAGl2Ywkkly9TG2vnH+F2l595UL4WBv8K9TYGK+FV5vkUlm7y6WycjW8z1jlt3aLn7McqdMGgPcUA9AiEmCsVluMtZU1amO1EgGgUOYya60yER4Tkfm6bTJXkde1bbC7+zkAbw9sfwmD7+9CiF8B9As6IRJBwS5EIijYhUgEBbsQiaBgFyIRLFYba88PZnYFwMvDP2cB8PSt0SE/Xov8eC2/an7c5u6HQoaRBvtrDmx21t1PHcjB5Yf8SNAPfYwXIhEU7EIkwkEG+5kDPPb1yI/XIj9ey6+NHwf2nV0IMVr0MV6IRDiQYDezB8zsZ2b2opk9fBA+DP04b2bPmNnTZnZ2hMd9xMwWzezZ67ZNm9njZvbC8H+ebra/fnzKzC4N5+RpM3vfCPw4YWZ/bWbPmdlPzOxfD7ePdE4ifox0TsysZGY/MLMfD/3498Ptt5vZk8O4+bqZxXpp/TLuPtJ/ALIYlLW6A0ABwI8B3DNqP4a+nAcwewDHfQ+AdwB49rpt/wnAw8PHDwP4swPy41MA/s2I52MOwDuGj2sA/h7APaOek4gfI50TDJreVYeP8wCeBPBOAN8A8KHh9v8K4F+9kf0exJ39PgAvuvtLPig9/TUADx6AHweGu38PwOsT+B/EoHAnMKICnsSPkePu8+7+1PBxHYPiKMcw4jmJ+DFSfMCeF3k9iGA/BuD6CgsHWazSAfyVmf3IzE4fkA/XOOLu14rWXwZw5AB9+ZiZnRt+zN/3rxPXY2YnMaif8CQOcE5e5wcw4jnZjyKvqS/Qvdvd3wHgnwH4EzN7z0E7BAze2YFIv9795QsA7sSgR8A8gM+M6sBmVgXwTQAfd/fXdFUY5ZwE/Bj5nPguirwyDiLYLwE4cd3ftFjlfuPul4b/LwL4Ng628s6Cmc0BwPB/3rZmH3H3heGF1gfwRYxoTswsj0GAfcXdvzXcPPI5CflxUHMyPPYbLvLKOIhg/yGAu4criwUAHwLw2KidMLMxM6tdewzg9wE8Gx+1rzyGQeFO4AALeF4LriEfwAjmxMwMgxqGz7v7Z68zjXROmB+jnpN9K/I6qhXG1602vg+Dlc6fA/i3B+TDHRgoAT8G8JNR+gHgqxh8HOxg8N3roxj0zHsCwAsA/g+A6QPy478DeAbAOQyCbW4Efrwbg4/o5wA8Pfz3vlHPScSPkc4JgLdhUMT1HAZvLP/uumv2BwBeBPAXAIpvZL/6BZ0QiZD6Ap0QyaBgFyIRFOxCJIKCXYhEULALkQgKdiESQcEuRCIo2IVIhP8LcrY09F+m7sMAAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 70 distortion 0.1898 num_queries 17381\n",
"Iteration 80 distortion 0.1868 num_queries 19668\n",
"Succeed distortion 0.1863 target 6 queries 20114 LS queries 3456\n",
"\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"image batch: 9\n",
"Searching for the initial direction on 100 random directions: \n",
"--------> Found distortion 2.3112\n",
"--------> Found distortion 2.2683\n",
"--------> Found distortion 2.0501\n",
"--------> Found distortion 2.0046\n",
"--------> Found distortion 1.6973\n",
"==========> Found best distortion 1.6973 in 2.6514 seconds using 258 queries\n",
"Iteration 10 distortion 0.4277 num_queries 2946\n",
"Iteration 20 distortion 0.2758 num_queries 5603\n",
"Iteration 30 distortion 0.2300 num_queries 8112\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 40 distortion 0.2082 num_queries 10464\n",
"Iteration 50 distortion 0.1947 num_queries 12803\n",
"Iteration 60 distortion 0.1859 num_queries 15135\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 70 distortion 0.1810 num_queries 17436\n",
"Iteration 80 distortion 0.1772 num_queries 19752\n",
"Succeed distortion 0.1769 target 6 queries 20209 LS queries 3551\n",
"\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"image batch: 10\n",
"Searching for the initial direction on 100 random directions: \n",
"--------> Found distortion 1.8646\n",
"--------> Found distortion 1.7071\n",
"--------> Found distortion 1.5587\n",
"--------> Found distortion 1.4811\n",
"==========> Found best distortion 1.4811 in 2.5018 seconds using 245 queries\n",
"Iteration 10 distortion 0.2857 num_queries 3128\n",
"Iteration 20 distortion 0.1661 num_queries 5662\n",
"Iteration 30 distortion 0.1356 num_queries 8154\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 40 distortion 0.1225 num_queries 10493\n",
"Iteration 50 distortion 0.1149 num_queries 12863\n",
"Iteration 60 distortion 0.1099 num_queries 15154\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 70 distortion 0.1063 num_queries 17468\n",
"Iteration 80 distortion 0.1037 num_queries 19741\n",
"Succeed distortion 0.1034 target 5 queries 20210 LS queries 3565\n",
"\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"image batch: 11\n",
"Searching for the initial direction on 100 random directions: \n",
"--------> Found distortion 5.2306\n",
"--------> Found distortion 4.9305\n",
"--------> Found distortion 4.5399\n",
"==========> Found best distortion 4.5399 in 2.4279 seconds using 239 queries\n",
"Iteration 10 distortion 1.2756 num_queries 3066\n",
"Iteration 20 distortion 0.8885 num_queries 5655\n",
"Iteration 30 distortion 0.7281 num_queries 8192\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 40 distortion 0.6596 num_queries 10584\n",
"Iteration 50 distortion 0.6157 num_queries 12982\n",
"Iteration 60 distortion 0.5834 num_queries 15381\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPsAAAD5CAYAAADhukOtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAfgUlEQVR4nO2daYyc15We31N7dVdvZJOtFimSIkUt1C5TihfZlmyMo1EGkI0xDPuHRz8McxDYQAw4QAQHiB0gPzxBbMM/Agd0LIwceGwrXmLBUEYjyxordrSRWkhJpMRFzbXJJntfq2s5+VHFCaW57+1WN7ua9vc+AMHqe/p+36lb36mv6751zjF3hxDiT5/UajsghGgNCnYhEoKCXYiEoGAXIiEo2IVICAp2IRJCZjmTzew+AN8FkAbw3939m7Hf7+3t9S1bNoeNMQXQwsP1yCRjkxbAliBFLlW8jHnoEast4aktYXmXhZMzLvV1udT+R48XuQZmZ2eprVqrUVupVOLnIy/oUp7zwMAxnD9/PmhecrCbWRrAfwXwZwBOAnjRzB5z9zfYnC1bNuPFPc+HjdUqPVedLMY8+OKmLM1tkRczVYvYyHglxefE3jsykaitRy7hVOTqTqXCz7sWcSQdOV7dIm+otYj/Fn5tYsGeMv6HZi2yVlaPvGZkWtXqfE6FH++1/a9R2+joMLW9/+67qS2fywXHa4j4SK7Gu+78QGTO0rkLwGF3P+ru8wB+AuCBZRxPCLGCLCfYNwA4cdHPJ5tjQojLkBXfoDOzXWa2x8z2nDt3fqVPJ4QgLCfYTwG46qKfNzbH3oG773b3ne6+c9263mWcTgixHJYT7C8C2G5mV5tZDsBnATx2adwSQlxqlrwb7+5VM/sygCfQkN4edvfXo3MA1BDeda/U+c76WwffCo739fTQOWuvXE9ttVl+rhdffJba5mbmg+Mf+NhH6Zx0ZIUrkd3stPP34Xpk97/qRNWI7HRbPaYK8B1hRHbB61QNicmlXJGpEZUBADKRnfU6UVc8w49X4ZcHTr8RvhYB4K2Bt6ntfR+I7JKTdYypRh65BhjL0tnd/XEAjy/nGEKI1qBv0AmREBTsQiQEBbsQCUHBLkRCULALkRCWtRu/JJjME5Gahk6dCY7nIhkh66/qo7Yjpweo7dCeV6gtlQv7OHbzTXROaW0HP15bgdqmzvCkilxbntrShWJ4PB2Rcepc8log64aaatPT4fEUl8lybW38XBE3qpHkJauS81UqdE46z8Oiq5vLvZ3p49Q2OzlCbfn8lcHxmCRKM6wiipzu7EIkBAW7EAlBwS5EQlCwC5EQFOxCJIQW78Y76h7eBU2neWJCNh1+T5ocHqVzjh08SG3/59e/praJY/8sS/ef6N2wMTi+59nf0zml3m5qe98HP0RtLzzzW2rbuv06att+6y3B8Upkx90z/DKYm52htlyG7xa/eTScMFKdDScTAcCdH/gg96PMt5lzkav49LkTwfHh87y2wrYbrqW2syOD1Hb++FFqe+F//z213fuXnwuOVzP8XpxOhZ80q/0H6M4uRGJQsAuREBTsQiQEBbsQCUHBLkRCULALkRBaLL0ZnJzSnSdIVGfmguNPPvmPdE5bnh+vWJ2gtso0tx09dCA4PnYynKgDANkunuxy/fVc4qlNRdoMzYaTTACgOh+WNquRTJJauUxtB15+idpK7e3cj6nwazY3wX2vzHNZrhYpDBdxH5Oj4fPNDHE/TmYHqO3g3v9LbV2RDkWn9vF13H/ttuD4lm1cYu3sXBscj3Ug0p1diISgYBciISjYhUgICnYhEoKCXYiEoGAXIiEsS3ozswEAkwBqAKruvjP2+9MzM3jh5f1B29njJ+m8+dOng+NjA2/SOe3r11Db+nWd1Jbv4vLP4Gg4A2x6bJzOKUZaGj39s19R29zpc9Q2fPoste17KdyBq1qL9DQybjtz/Ai1lfI8U7HUEc72m5zgtd9OHjlEbahwKTXTwyXA2bHJ4Ph0JOstE6lB11HhWYD9PSVqq1X5ffXgE08Ex4du4BmYH73/geB4TMK+FDr7ve6uXsxCXOboz3ghEsJyg90B/IOZ7TWzXZfCISHEyrDcP+PvdvdTZrYewJNmdtDdn7n4F5pvArsAoO+KK5Z5OiHEUlnWnd3dTzX/HwLwSwB3BX5nt7vvdPed3T28RJMQYmVZcrCbWbuZdVx4DOATAF67VI4JIS4ty/kzvg/AL83swnH+zt15VT0A4xPTeOLpZ4O280NDdN61hXBa0/XruORSKHBZaG6Kp0nlM3xeFznmyTKXk8rgUt7IK/uozWr8fbjY0UVt+Wlyvjr3o1LmGWCljnA7KQDIRWTF2mRYoJmc4WlZ02/zTL+ZCZ6N2LNpA7X19q0Ljh97+206p1Dj18dV63n7p/E5vh45j7RyGg8XsTxd43PK934iOO51vr5LDnZ3Pwrg1qXOF0K0FklvQiQEBbsQCUHBLkRCULALkRAU7EIkhJYWnJwvlzFwZCBoG53kmWNbejuC41mL9CiL9C9Dbx81ZWamqK0N+eD4Fb1ZOqfUyb9IVOrspbZ6PkdtmXaeXbVxQ1iGKhba6Jz5Mpe8ivnwcwaA+SqX87waliNvSvPjTc9yP/LO581lY5JXWEY7/RbPmKyPDEfOxaXZEeOvS2dECu6ZDa+VRSTdymQ4m8/rPINRd3YhEoKCXYiEoGAXIiEo2IVICAp2IRJCS3fjq5UKzp0M19U69PZhOu+qa8I7zBuuCO/SA0B7lteZS61ZT21tGzZTW4bsTPcX+Lnc+E59PR1JWnD+0szPhXdiASCTJ4krbTyhZV1PuJUQAKTBfaxGatcVcuG1Gp3hO/h9Of6cLVKDrl7kO93nyfXWU4zUi8uGE1MAIF3l7bwswxWUXBu/DjBCEm+meR3CI6+G21CVI2qS7uxCJAQFuxAJQcEuREJQsAuREBTsQiQEBbsQCaGl0lu5XMaxgYGgrRqp37X3WFg+2XTNv6Bz7rjlnxW6/SdSPbyk9VyF1x+bqYZ9rM5z3+uR49WcJzpkLPY+zGWoCmnzVBnnksyR4+GWXABQibQTqs3PUVtbKVwnr6OLJ//sO3Ocn6sSkQDBa7X1doTlsPFZXncvFWnV1BVJGlpb5HXyamPcfy+EfbQyv67+8LtwLcepqcjzohYhxJ8UCnYhEoKCXYiEoGAXIiEo2IVICAp2IRLCgtKbmT0M4C8ADLn7Tc2xNQB+CmALgAEAn3H30YWO5e6Yr4TlpnqNyzgbr9sZ9q1/O50zleeZaAXiAwDMTEekMpJ51dHJM6jKKf68yrMRWQuRWmKRVkJVC0s8zzzxFJ3zu989TW2dXTwjbi4iQ33w7g8Hx6+/kdeSe/bZl6htuspfl2qZr8c9d98eHO/bvJHOSRd59loXyeYDgHPO1yNXi2Q4js4Ex/N1Lr2NVonM58urQfe3AO5719hDAJ5y9+0Anmr+LIS4jFkw2Jv91kfeNfwAgEeajx8B8MlL7JcQ4hKz1M/sfe5+IcP/DBodXYUQlzHL/rqsu7sZ+aAIwMx2AdgFAOlMpFqHEGJFWeqd/ayZ9QNA83/aXN3dd7v7TnffmU639Kv4QoiLWGqwPwbgwebjBwH86tK4I4RYKRYjvf0YwD0Aes3sJICvA/gmgEfN7AsAjgH4zKLO5gCqYbkpn+eF/G699Y7geEcXb600M81lkAzJhAKASPcczJbD8s/IyXfvX/5/8gW+xLk0LwKZjbSvqme51HT+XLh10W+f+S2dc+edd1Lb1du4vDk6MUZt60h227p1POvtw/eG5ToAqPGnjEyk0GOqHv6EWV3TQ+fk+rZRWzVSFDPvvJjm/NtHqK125iSZxKXZU+Phta9EMjAXDHZ3/xwxfXyhuUKIywd9g06IhKBgFyIhKNiFSAgKdiESgoJdiITQ0m+5uDvmiXzV38e/cWv5sLQyV+ZSR1d7pP9apH9Z7O1vcux8cHzk7Gk6p8wT7HDDjuupzVJcisyneY+7l18MZ47NRXqsbdh0NbU9/8IL1Lb3xVep7V/df39wvJzifdmOD/HeZtksf2FmJnjvu2IhLG9ORQpYtuf4ufo6Iz0Es/y59XXw7MFBIpelpnimXz4Vzr4z4xql7uxCJAQFuxAJQcEuREJQsAuREBTsQiQEBbsQCaHFCeYOkN5hfev76az6bFg2yre10TnFApdBKpGCk+lIj7UySUJq6+GZXJ28rgfyGe6jpSOZeWWemnfubDjrLZfjazU8zLPXDh3l2VrjY7zGqM2Hfcyn+POqVflaTY7xHmbnzp+htoKFL/HxSAHI6zbxXoDtXXzt1/fwTLp6hb/Wrw+HJbaeKi9W2r5+XXA8leIhrTu7EAlBwS5EQlCwC5EQFOxCJAQFuxAJoaW78ZZKIVsMf4F/y6bNdB6rSpuJ7GZXKzzxI5vjSSbVSPucTflwkkF3bpzOSUfeT8crfId5rtBObWa8Ntm2a7cGx98+eozOyRhfx6lxnmTiFb5WdQuv/9RkOJkIAOYmSEsjAK/uf5Pa2vPc/yND4cLHVuAtu2yW+7GldAO1zbfx15p0eAIAzKbDSklHjV8fJ8dOBccrNX7d684uREJQsAuREBTsQiQEBbsQCUHBLkRCULALkRAW0/7pYQB/AWDI3W9qjn0DwBcBXCga9jV3f3zBY8GRI4khvX1ddF5ffzjBYHySy0Jr1vLjzUaSIJDiSTId0yeC44WBvXTONLgUYu/jXbPm0tzHVI23+Hlu72vB8dmIFJmKNNd1krgEABXwpJbDZwaD4742LL0CwOj5cBIPAExPTfF5p7muZcTFUorXdxsb5vLgyChP/hmOJAbNF3mrslJPuK5d/RTtl4rR2XCSTDVybS/mzv63AO4LjH/H3W9r/lsw0IUQq8uCwe7uzwDgnQuFEH8ULOcz+5fNbJ+ZPWxmPJFXCHFZsNRg/x6AbQBuAzAI4FvsF81sl5ntMbM9tVqkH7IQYkVZUrC7+1l3r3lj9+b7AO6K/O5ud9/p7jvTaf4dZiHEyrKkYDezi2tIfQpAeAtYCHHZsBjp7ccA7gHQa2YnAXwdwD1mdhsABzAA4K8XdzqDkZpgxUi7po5SWEabnObZSeV5LjUVOnhG2fQE/6iRTYePOTfNa6C1t3HJZSbSgqg2zSWvHMm+A4B6NTyvXufHy2e59raudz21zU1yaShP2jyVp/hrNlPhUmpPF89UTK/lGWxt2XD7p4kpnqm4tpe/ZoOjXLKLlH9DeY7LchPDYclxU6TWYK4evgYiJQ8XDnZ3/1xg+AcLzRNCXF7oG3RCJAQFuxAJQcEuREJQsAuREBTsQiSElhacLBRzuO6mTUFbOseloWqatBIqcPdrVZ4ZNk8yhgCgo43LOLPpjuB4b/81dM5cmmd51VPcx3Qk+84jkkwmG9ZeKhHprdDOZa2Pffweahs4dJLaujvDRRQHDh/lxzt5jtq8zp9zKSLbTsyF0zqmp3gxx2qZvy5Hq5FWU+BrXCrxa3V7ezg1r73Av4VeqIbXI5Xh92/d2YVICAp2IRKCgl2IhKBgFyIhKNiFSAgKdiESQkult1wmjQ3rwzLJOq7+IFMOS2WVGS51pCLHq85x6W10khc2LLeHZcPx6/uD4wCAuVl+vAov2HhlO5cAa3WeedW3dk14TpVnAa7pDkuKALCmxG2VeS6HOcLy1T3bPkznbD3JZblcmb8u6VRY5gMAb18XnpPjmYPTc/y66u/hUuqGPE85i0mpx8rhNX71uX+kc6ZIH7i68eelO7sQCUHBLkRCULALkRAU7EIkBAW7EAmhpbvxqUwKbWQ3s1Dg2+dr14Rrxg2P85plM9N8x7pY5FVup2f5rnU2H67VNlLhO6ClYrgGGgCkZnnCxbGBY9TW2c1rpPV0hW2lIt+x3tS/kdpyGf7cunt4i62h0XBSy9YtYUUDAO68fQe1TR3YR22ZDq5cjLSFa+i99PpbdE57R6QOYSTp5two76Xizq/HqfFwXb6+9WvpnLXt4SSZ3HNc4dGdXYiEoGAXIiEo2IVICAp2IRKCgl2IhKBgFyIhLKb901UAfgigD412T7vd/btmtgbATwFsQaMF1Gfcnfe4AZDO59B5zZagrVLgEtXAiXCboYkZXkfs3IlT1Lauh0s1mUjNOJC2Ufkilw0rFS7jtJX4uXJtvCXT1CSXcdqL4WMeGeKtmn7z2z9Q25Yrr6C2UjeX3kq5sAQ0/haX0P7XH16htmPjPJGkPMklr7PDM8HxyTmeWINILTmvc7m0p8RlufYOnlB0XXdYCt5xzx10Tn5dOHQLxeVJb1UAX3X3HQDeD+BLZrYDwEMAnnL37QCeav4shLhMWTDY3X3Q3V9qPp4EcADABgAPAHik+WuPAPjkSjkphFg+7+kzu5ltAXA7gOcB9Ln7YNN0Bo0/84UQlymLDnYzKwH4OYCvuPs7vt/n7o7G5/nQvF1mtsfM9kxP8s/YQoiVZVHBbmZZNAL9R+7+i+bwWTPrb9r7AQR3gNx9t7vvdPed7ZG+6EKIlWXBYDczQ6Mf+wF3//ZFpscAPNh8/CCAX11694QQl4rFZL19CMDnAew3swvayNcAfBPAo2b2BQDHAHxmwSOZAVlyyjSXmmYr4ey2wWPH6Zzf/+Y33I9Illo+zzPi6m2kTU83zyhb29ZLbV0d4XpxALDhKi55tbfx8z333J7g+PQ0r4XXWeR/cU2u5ec68/oAtW3avjU4nj3P2ycNH3mD2saMZ4BVI/ImSNurrRuvpFPmZiIZk3kuEdfA5+XT/JrLpML33Lkaf82yqbCU5/w0Cwe7u/8eADvExxeaL4S4PNA36IRICAp2IRKCgl2IhKBgFyIhKNiFSAgtLTgJONIezhqyLM8mWr8+LF/tf/U1Oqd7DZe8Zkb5N/nmp8LF/wCgNhvOvHr74GE6p72Ny1o5JkMCqNd4K6FiG8+WG58MJx5G6mhi8MQJavurv/wEtW1o4zLl7Gg4yy6f4hJrPsXXoxC5VGsF7kdHe1g6nJ0OZ8MBQD5yvNl5Lq+lItly5QqfN9kdlhVH5vmLNnJuODg+X+FxpDu7EAlBwS5EQlCwC5EQFOxCJAQFuxAJQcEuREJoqfRmVkc6Hc7kGTzL5avMfNjN7k4uQcWKITpXSJB2XrCv2BYuLDk8xuW6apW/n9Yj77WVKi+IODbJe9xliI+FAs8Mm44UX3z0cV6MspTlKVZeCkte268I914DgNEaX4+JsbDUBAAzzufVSIHIeiYik41yWa4S0TALKX493nrzddS26cbNwfGRGn+da3Ph51Vz/jrrzi5EQlCwC5EQFOxCJAQFuxAJQcEuREJo6W583rLYXuwP2mppnvjR29sdnjMUqdF14w3U9soBvvOf7uWJGkZ2djNH+A5orc7bFlVrPGkh9tJk09xWrYTfv9vXhNcQANpTvK7auRG+U3/G5qgtM0j8qPLX+dOffoDavr/7h9yP02eprVInbZK6+XPesmMbtXXm+I77kf2vU9vpM6eprX88nLSVKnDFIDsXVkKsxhUS3dmFSAgKdiESgoJdiISgYBciISjYhUgICnYhEsKC0puZXQXgh2i0ZHYAu939u2b2DQBfBHCu+atfc/fHY8cqprPY0bkuaJue45JMbSacEJCaGaFz+nu2UNuhLJfX1m8IJyUAQHsmvFyvP/c8nVOt8Hp3qYgMFSlBh3wmnOwCAD2FsDTUlucJPn2R55wirYkA4M3D+6ktPRt+ArVZLtcdPHCU2iam+TrW61xuMg9Ln/kql9A6I62aEKnxVokk5Ox7gddLnBkKy5v/7qtfonOybeFzPZbnbc8Wo7NXAXzV3V8ysw4Ae83syabtO+7+XxZxDCHEKrOYXm+DAAabjyfN7ACADSvtmBDi0vKePrOb2RYAtwO48Hfrl81sn5k9bGY9l9g3IcQlZNHBbmYlAD8H8BV3nwDwPQDbANyGxp3/W2TeLjPbY2Z7RsZ5kQchxMqyqGA3sywagf4jd/8FALj7WXevuXsdwPcB3BWa6+673X2nu+9c09V5qfwWQrxHFgx2MzMAPwBwwN2/fdH4xRktnwLAtxuFEKvOYnbjPwTg8wD2m9krzbGvAficmd2Ghhw3AOCvFzpQHY4Zkuk1Pcuzq84PhyW2csT9gcNvUNuRNw5Q23yVZxr1dIbb9NSc62SxOnPZHPc/VY/UrqtGsuwQtqXzJTrHweWw/j4uy50fXENtg+PHg+NvDXAJbe+BQ9SWyXOpzCNKWboellmnI+2fXn7uJWqrRQoYxlp9ffxffpDabr7x5uB494Y+OidLliMdaSm2mN343wMILWdUUxdCXF7oG3RCJAQFuxAJQcEuREJQsAuREBTsQiSElhacrNcAlrw0Ns+zicrpsKTR0cHlpPIkL0Z589VXUNvZcyep7eWDB4PjM9O8qKSTTDkAqFb5PItkUKUix8xbWJPJpHmBxWPHuOQ1PjlGbcW1vIhl7vxQcDzdxrPvrt6xidomp8ep7Wyk4OQUueByxjMfvczltVqav2ZXb9lIbZ//4l9RW1sxfH2Xy/xctfmw3hhRgXVnFyIpKNiFSAgKdiESgoJdiISgYBciISjYhUgILZXe3IBqNiwZ5KptdN5YLSz/dESyjApX8vexNZG+Z+fGucQzPHQuOD5xZbiIJgBMzfFsvrlI9trcLJcipyKSTNbSwfH2DJeT1m7mffGmyvPUNngi1mMt7P9HPnovnXPVZp5hNzl6ntqmJnkG23N7Xg6Onzl2gs7xVHgNASCf4bYbr7+W2hBZx/HpcNZhIdLTr25Eeqvz11l3diESgoJdiISgYBciISjYhUgICnYhEoKCXYiE0FLpzQAUSF+ueecyVGcpnMnVnuZFCGfHeRXCYp73s+iY6KC2W7aHG+HMjo/SObVg+b4G80QmA4CRId7HDhWe0Tc5HpZxXjs+zOfM8ec8NsYlwOkR/rzZXWTfS68QC/D6Xt47rtTJMxxL3Vy27SqGPRmO3ObSKS6Tbd3MM/P61/B1HBqIFNMshHv3WRsvvZ4h/eicFHQFdGcXIjEo2IVICAp2IRKCgl2IhKBgFyIhLLgbb2YFAM8AyDd//2fu/nUzuxrATwCsBbAXwOfdnW9jAkihjpyFd5LX5njxrPlsuF5YzPmi85pr6RSf2VvnfrTnwjug4zX+tHMlvoscazW1tp3XamtP8/foEyfDCSPFIt8pfvbgALXVwJNM0l1cDanWwus4P8YTjYpZvh7Tk1ydmBnm9eRy5DK4ZWu4lRcAdJE2XwCwtpfvkOdrvI1Wap6v1ZpS2MlMpC1XjihRqUgrrMXc2csAPubut6LRnvk+M3s/gL8B8B13vwbAKIAvLOJYQohVYsFg9wYX8jSzzX8O4GMAftYcfwTAJ1fEQyHEJWGx/dnTzQ6uQwCeBHAEwJi7X1DwTwIIf+NECHFZsKhgd/eau98GYCOAuwBcv9gTmNkuM9tjZntGJ3ghByHEyvKeduPdfQzA0wA+AKDbzC7sdG0EcIrM2e3uO919Z0/kK49CiJVlwWA3s3Vm1t18XATwZwAOoBH0n27+2oMAfrVSTgohls9iEmH6ATxiZmk03hwedfdfm9kbAH5iZv8JwMsAfrDgkQxIkbeXVCSpJUuSZNKRXjeZKpfe6mmedNOb4kkVtWpYYuvo7OJ+ZPnzykcSLvJFLidVZ/i8q7deFRzfsIE/5+tuuJLaZmdIvy4AU5EWW3VSx61SLtM5qHAfjSR+AIAZv2dlCmFbLs3XN53h1062wJOX2klCCwAU2/h1UCyF5bx0lodnIR+2pSOy7ILB7u77ANweGD+Kxud3IcQfAfoGnRAJQcEuREJQsAuREBTsQiQEBbsQCcE8Il9d8pOZnQNwrPljLwDe06d1yI93Ij/eyR+bH5vdPdiPrKXB/o4Tm+1x952rcnL5IT8S6If+jBciISjYhUgIqxnsu1fx3BcjP96J/HgnfzJ+rNpndiFEa9Gf8UIkhFUJdjO7z8zeNLPDZvbQavjQ9GPAzPab2StmtqeF533YzIbM7LWLxtaY2ZNmdqj5P+9RtbJ+fMPMTjXX5BUzu78FflxlZk+b2Rtm9rqZ/ZvmeEvXJOJHS9fEzApm9oKZvdr04z82x682s+ebcfNTM+NVSUO4e0v/AUijUdZqK4AcgFcB7Gi1H01fBgD0rsJ5PwLgDgCvXTT2nwE81Hz8EIC/WSU/vgHg37Z4PfoB3NF83AHgLQA7Wr0mET9auiZotEUsNR9nATwP4P0AHgXw2eb4fwPwr9/LcVfjzn4XgMPuftQbpad/AuCBVfBj1XD3ZwC8uzbyA2gU7gRaVMCT+NFy3H3Q3V9qPp5EozjKBrR4TSJ+tBRvcMmLvK5GsG8AcOKin1ezWKUD+Acz22tmu1bJhwv0uftg8/EZAH2r6MuXzWxf88/8Ff84cTFmtgWN+gnPYxXX5F1+AC1ek5Uo8pr0Dbq73f0OAH8O4Etm9pHVdghovLOj8Ua0GnwPwDY0egQMAvhWq05sZiUAPwfwFXefuNjWyjUJ+NHyNfFlFHllrEawnwJwce0kWqxypXH3U83/hwD8EqtbeeesmfUDQPP/odVwwt3PNi+0OoDvo0VrYmZZNALsR+7+i+Zwy9ck5MdqrUnz3O+5yCtjNYL9RQDbmzuLOQCfBfBYq50ws3Yz67jwGMAnALwWn7WiPIZG4U5gFQt4XgiuJp9CC9bEzAyNGoYH3P3bF5lauibMj1avyYoVeW3VDuO7dhvvR2On8wiAf79KPmxFQwl4FcDrrfQDwI/R+HOwgsZnry+g0TPvKQCHAPwGwJpV8uN/ANgPYB8awdbfAj/uRuNP9H0AXmn+u7/VaxLxo6VrAuAWNIq47kPjjeU/XHTNvgDgMID/CSD/Xo6rb9AJkRCSvkEnRGJQsAuREBTsQiQEBbsQCUHBLkRCULALkRAU7EIkBAW7EAnh/wFIRFfxRPXCGQAAAABJRU5ErkJggg==\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 70 distortion 0.5636 num_queries 17719\n",
"\n",
"Failed: distortion 0.5512\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"image batch: 12\n",
"Searching for the initial direction on 100 random directions: \n",
"--------> Found distortion 1.5752\n",
"--------> Found distortion 1.2898\n",
"--------> Found distortion 1.1248\n",
"--------> Found distortion 0.9397\n",
"--------> Found distortion 0.7663\n",
"==========> Found best distortion 0.7663 in 2.6340 seconds using 254 queries\n",
"Iteration 10 distortion 0.1060 num_queries 3039\n",
"Iteration 20 distortion 0.0709 num_queries 5610\n",
"Iteration 30 distortion 0.0604 num_queries 7938\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 40 distortion 0.0555 num_queries 10243\n",
"Iteration 50 distortion 0.0525 num_queries 12540\n",
"Iteration 60 distortion 0.0506 num_queries 14840\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Warning: not moving\n",
"Iteration 70 distortion 0.0501 num_queries 17437\n",
"Iteration 80 distortion 0.0492 num_queries 19868\n",
"Succeed distortion 0.0492 target 4 queries 20094 LS queries 3640\n",
"\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"image batch: 13\n",
"Searching for the initial direction on 100 random directions: \n",
"--------> Found distortion 4.6099\n",
"--------> Found distortion 3.3010\n",
"==========> Found best distortion 3.3010 in 2.3114 seconds using 227 queries\n",
"Iteration 10 distortion 0.7701 num_queries 3091\n",
"Iteration 20 distortion 0.5121 num_queries 5669\n",
"Iteration 30 distortion 0.4143 num_queries 8251\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPsAAAD5CAYAAADhukOtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO2da4yd13We33Xucx+SM7wOxYtMXSjKouQxda2tWLYjuwZkF6kroTD0wwiDIgZqIP2hKEHtAv3hFLUFBwVc0LUQpXAtq7FVM4ZTS1Esy4oVSaTEOyVRFG9DcmbIud/nXFZ/nMOCUva7Z8ThnGHyvQ9AcGav2d+3zj7fOt85e513LXN3CCH++ZNaageEEPVBwS5EQlCwC5EQFOxCJAQFuxAJQcEuRELILGSymT0I4LsA0gD+h7t/K/b36XTaM9nwKXNkHACKpWJwvFwu0Tn5bJ7aZmf5PBhPRRqMGSix1GalUonYIn4YP2EqRV6/IxlWv0L/I9OoH7kMf54z6TS1sWsAAMpF/nw68TK2hrHHHE1VR66dWIKbHTJ6KjJecUfFw8+oXWme3czSAN4B8BkAPQBeB/CIux9hc/KFvHd1rQ7a1pNxAOjtPx8cHxy5SOds7tpMbWdO91Gbpfh65NPZ4LhnynROcYZfiBMTU9Q2NTlDbdl82A8AKBSag+Pm/IWlFHl/NzvL52V4bKK5Ifxiu6Gzg85pb2ultv6+XmobvMCvg4qHX1wy2RydMzszS23FMn/R8TRfK4+8uMzMhOdFXsOQJy8sw7NFlCqV4MkW8jZ+B4B33f09d58F8DSAhxZwPCHEIrKQYF8H4Mxlv/fUxoQQ1yAL+sw+H8xsJ4CdAJCJve8TQiwqC7mznwWw/rLfu2pj78Pdd7l7t7t3pyIbMEKIxWUhwf46gC1mtsnMcgAeBrD76rglhLjaXPHbeHcvmdnXAPwS1dTbk+5+ODanVCqif6A/aJucGqHz1qwL79TnCyv5nK611NaQbaK2Eyfepbbx8bHgeLnCd84r4O9mvMh38TMshQbAyjxjsGFd+HEPjPL1nZiapDZP8R3mYmma2qbGwrY+4495psh3wbMFvnu+YjV/rlEK74KPTvDHXJzgfpTTfO1nI4mtdIk/7lkP2yy8qQ4A8BxZD+Nb+Av6zO7uvwDwi4UcQwhRH/QNOiESgoJdiISgYBciISjYhUgICnYhEsKif4PucgqFArbevCVoe/voMTpvsG8wOJ7N87TW+PAwtWULjdS2/WMfo7YVK5YFx8+c7qFz9u89QG1F8LTWTJmnahoy/DV6ZGQgOO4RFV0+xdex0MxFN6OjEcEIyQAVjR9vcjqiYizxS7WprYXaWKavKcNTeY0Ffry2tW3UNh0RLx0/fZLaUmMTwXHjLsIybB25D7qzC5EQFOxCJAQFuxAJQcEuREJQsAuREOq6G5/NZrF6dbi+xdQ0F1VMEqHGyMgQnXP40FvU1tG5itpWr+qktpHB8PmGx7gfhdYCtfkIFzpkZsM7tADQ2srLNw0Ok1JXkfJjG65fQ20p45dIOsV3z0dGw7vCabqLDAxEMihrOrjYpbGBC5tKpXDGYMft3XTObbfeQW3rN/Lyab96+Tfcj1+/TG1D/eGyWmMTo3ROsUjiJVIHT3d2IRKCgl2IhKBgFyIhKNiFSAgKdiESgoJdiIRwxR1hroTGxoLfcOOGoO18X7jrCwBMTxHBSKSeWXGWizRSkdpeTQUuCmHNXXLpSL24HE81TY/z7iIl54KG1pZw1xcAKJfC55uJ1Mn7xL138ePN8pToa3vfpDZH2I9CpBNLeztPKSLNn7NlLXze9o/dGRy/u/seOqer6zruRoG3FXtjz2vUVmjkj7un50xw/M//25/TOZPj48HxUom3f9KdXYiEoGAXIiEo2IVICAp2IRKCgl2IhKBgFyIhLEj1ZmYnAYwBKAMouTuXEgEol0sYHQ4rfFav5kq082fDc4aGuDIslYmotSo8ZWfOUyT5fPi1MWX8NTOX4qmaqTJRqAFAhR9zdJSnw5oawqnDpkg7qYHeXmrb1NVFbWnwtO3YFFNl8RTa8DRfj80bN1HbZz/zu9S2bNny4HjLCp6uO/wOr4f4zI+fprZ1a/g1/PifPk5tk9Ph6/j1N16hc1759W+D4+ORFOvVkLj+jruHo1EIcc2gt/FCJISFBrsDeM7M9prZzqvhkBBicVjo2/j73P2sma0E8LyZveXuL13+B7UXgZ0AkI58rVQIsbgsKPrc/Wzt/34AzwLYEfibXe7e7e7d6cj3m4UQi8sVB7uZNZlZy6WfAXwWwKGr5ZgQ4uqykLfxqwA8a9VUSgbA/3L3/xub4A7MFsNpr8HhcIsnAMjlwwqq2McCK/LWSpUUTxlZlqfKlrWH20Zt2rCRzpllfZAAHNz/NrWNT4eLbAKA80NicnIkOF5I85TiwMV+altBHjMAdCxbQW2DY+GWWJVZfsmtbO6gtt/59APU9tFbt1Lb+FT4euvq2kjnvHXsJLVlc9x/z/Fr53TvOWrbvu3m4Pgd3f/ojfL/Z8+esOLQZriS8oqD3d3fA3Dblc4XQtQX7ZgJkRAU7EIkBAW7EAlBwS5EQlCwC5EQ6trrLZPJonNluK/YQC8vODk2SnqpOX+tiojG4JGHPVviqYsJok6yBp7Wamhs4Oeq8KKYK1aE1VoAMD41Rm2TE+GUY6qJ95yzAu+VdqqPp0RnIgU/m5vaguNNTfxxbb+Vp5puXLeN2lry/JjtLeHnetWacM9BAFjRxgt6jo2FU5tAvDfby7/+e2q74SNhRd9168LFWQEgnWLXVbgQJaA7uxCJQcEuREJQsAuREBTsQiQEBbsQCaGuu/HlchmjQ+HdTK9w4Uq5HBauWOS1KiadL0faP81Mcz9WdIZ3rU+eOsVPFhHkzJS4bX0H32FuK4d3ugHg2LvvBcdTOb4bX6rwDES2zBdyYopnE1auCotaPnkvrxd367aPUVtDM89qLFuxktraSa25TOR627dvH7W5R56zrvXUds894TZUANDY2hIcL+S5CCmTC1/DkXKIurMLkRQU7EIkBAW7EAlBwS5EQlCwC5EQFOxCJIS6pt4qlQomJsLtaTKRVkK5VNjNTC5cmw4AKgi3QQKAjHMBx+wMt+Uz4fRP7FyN7Vxk8if/9lFqu73749TWlOe1zl781UvB8d3PPkvnnD7P66Plurj/TQXeQumjW8NptE988hN0TmdnWCQFAM0xsVGGXwcdRFDU289bXh17+y1q8yJPUw5cuEBthw7up7YtGzcGxy9e5OKwlJP0MQ8j3dmFSAoKdiESgoJdiISgYBciISjYhUgICnYhEsKcqTczexLAFwD0u/u22thyAD8GsBHASQBfdndSKO4y3FEmCqtcJGXQtjys8sq2hNVCAHDmLHenqcBf47Kk1RQAFBrCtck2fmQznfPpBz5NbXd2c5XX2ut4Gqohy2uk3XfvXcHxhx/5N3TOi38fTtcBwGSk5lo5UuhvZWe4xltrC1ffrV7N20ktW8ZVgKWpcDoXABpJS6ZKcYrOmS1zWynFVW+jIxep7c3XXqO2fD6cuj1z5gydM1MMKw7deSDN587+FwAe/MDYYwBecPctAF6o/S6EuIaZM9hr/dY/WGL0IQBP1X5+CsAXr7JfQoirzJV+Zl/l7pe+3tOLakdXIcQ1zIK/Luvubmb0g4KZ7QSwEwBSKV4hRgixuFzpnb3PzNYAQO1/2uDb3Xe5e7e7d6dMwS7EUnGlwb4bwCUVx6MAfnZ13BFCLBbzSb39CMD9ADrMrAfANwB8C8AzZvZVAKcAfHk+J0ulU2gkhQNbs1zV1NgUnlNKR+Y08DY4nSt5gcKPbruJHzMbLgBYaOHKsJtvvJnaWlvaqa29laeashGVV5EUUty4KdxiCAB+bzXfcslwQR8uDPB2R709fcHxUimiOCyVqC0buS1lG/l1AJLWKkbafKUjHzezGZ7amhzl/v/21Ze57fWwrXNVJ51j5Wli4anBOYPd3R8hpgfmmiuEuHbQN+iESAgKdiESgoJdiISgYBciISjYhUgIdS04mclmsWr12qAt1tssnw2nT84NTNI5t20L9xoDgB07eDHHUpmnT/a+8kZw/MabbqNzli/jSq6Odu7jzAxXcqXTPDU0NR5WbGXS/KluyPJU3tQ0TzU1pLiCrbUtrEiMFWyM9XMbGRygtlUruUIwTYqLXug/S+cUI2ufj+QiZyKFTMuRQqZDY+HHNjs+wc81Hb5OnfRFBHRnFyIxKNiFSAgKdiESgoJdiISgYBciISjYhUgIdU29pS2NNlK08cYbttB500QN1bCMp9623LCN2jrXcrXZ24ePUVuxHFYUlY2n66ZneSqk0BJW0QGAO0//DAzzIpBNTeGUlzlXQxUjPrY3cUXfuSL3sbk5/DwPjfIU2uQ4fz4HL/Jijh2dvOfczFQ4rfjiS7+hc6amuJpvtsjXcWgwrPQDgOY8f65b28Lp6PY2npo99tY7YUOkZITu7EIkBAW7EAlBwS5EQlCwC5EQFOxCJIS67sZbypBrDIsnKuBCgXGy+7z5I7fQOZsjLZkmJ3h9uqZmvrNbIZvWzZE2VF7iO929Fy5QW2s792Nigu9al4rh7di2Vr4bnAEXdxRT3P/O5VzkMzAYLjhcGQy3LQKApogQBoNcrDMcEYxYJrweZ0+fonNGR/nxfIavxzQRpwDxdlMr28I1Eacj12k2F44jm+FCI93ZhUgICnYhEoKCXYiEoGAXIiEo2IVICAp2IRLCfNo/PQngCwD63X1bbeybAH4fwKXc0ePu/ou5jlWplDE+Gk6j7X+LC1C61oSFAjdExDPZNBcsDM6MUVshx1sJzUyF550+w+uZufGUYgo8jTMxyn2cmeapoQJpDVUs8tRVa0tYtAIAM1Nc7FIpcdVFOznmSIELa8bHeKqprYnXuyMdngAAExNh/6cm+fMSE+RMRmq8lSK3zonIczZy4kRwPJ/la9XSFE6lpiLpuvnc2f8CwIOB8SfcfXvt35yBLoRYWuYMdnd/CcBgHXwRQiwiC/nM/jUzO2BmT5rZsqvmkRBiUbjSYP8egOsBbAdwHsC32R+a2U4z22Nme4pF/nVCIcTickXB7u597l529wqA7wPYEfnbXe7e7e7d2Wxdv4ovhLiMKwp2M7u8BceXABy6Ou4IIRaL+aTefgTgfgAdZtYD4BsA7jez7QAcwEkAfzCfk80Wizh9/nzQNnp4mM5b8682BMcLJP0AACMj/HhtEZXa8AVe321qNqzY2rd/L53z3N89R20P/+svUVuBqJoA4Oihd6lt7bqwgqrruuvonPIsV0oVGvPU1pTnKbuR0XD66ugR7vvMJE953X/vPdTW2M5TVD0nzwTHz50JjwPAaCTdWCzzlN1seZraMhWe+rRU+J67chVXFTaRFGbfML/u5wx2d38kMPyDueYJIa4t9A06IRKCgl2IhKBgFyIhKNiFSAgKdiESQl2/5VIqljDQF27jk2/garNMPmw7c76Hzsmn+PE6VvCUUT7SpidNVmt6hCvUfvncC9S27eabqO32O7ZT29k+/rjPniOFFEkhSgBYu24VtXmkxdMUeKqpkAun7N47cZLOGRngLZ7u3HEHta3I8XZer735WnB836EjdE4lkl4rlSMFHZ2HUyWifiwQ2d5spHjkyuVE9UbSeIDu7EIkBgW7EAlBwS5EQlCwC5EQFOxCJAQFuxAJob4Cc3eUZ8MFLFpXcoXPUH+4J1pPpF/XTVt4H7jWNp6qyeXCPcoAoFQMF7G0FK942NvL02TvHDtObV3r11Dbz5/9a2pLEXHVsePhooYAcHf37dS2du16auvs5M9ZNh1ODR0/+jadMzjCe98NDY9SW1MDVwiOEBVYNsvvcxORIitmvJBpGdyWMa4enJoMqymHwBWY7S3h4lCVSEFM3dmFSAgKdiESgoJdiISgYBciISjYhUgIdd2NT6XTaG1vDdpWrQ63eAKAs73hunU50uoIALbedDN3xPmO5bIOvlPfuSpc3+29E7+lc1JDXFhz+K2D1PYv7vk4tV0c4BmDQ0fCAo+D+w/TOf/wysvUtnl9uP4fAHQu5xmDdCG8+/zKq3ytLFJ9+PU9r1Jb8eNcJPPJ+z8VHJ+ItHj6P7t3U9vho+9QW6XCd/HLKS5qYaKtyTEusDp3OlxDr0jqJAK6swuRGBTsQiQEBbsQCUHBLkRCULALkRAU7EIkhPm0f1oP4C8BrEK13dMud/+umS0H8GMAG1FtAfVldx+KHSudzqC1NSyeSHsDndfX3xccb23gbeP7+7ioor2tjdpyGV67rpANC15SiNTPS/M03743eduoU2c+Q21tKzqprTgbFmP09fP6boOD/GmbHJugtonJN6mt93z4OUOFi0Wamnja84knvktt227dSm2/++Bng+MXBwfonAc+9QC19V/k8870hFPEAJDO8PvqtIdr+WUj9eSKJM3nWJgQpgTgj9x9K4C7APyhmW0F8BiAF9x9C4AXar8LIa5R5gx2dz/v7m/Ufh4DcBTAOgAPAXiq9mdPAfjiYjkphFg4H+ozu5ltBHA7gFcBrHL3S+9belF9my+EuEaZd7CbWTOAnwD4uru/r5KAuzsQ/rBgZjvNbI+Z7SlH6nELIRaXeQW7mWVRDfQfuvtPa8N9ZramZl8DIPiFbXff5e7d7t6dTvOKLkKIxWXOYDczQ7Uf+1F3/85lpt0AHq39/CiAn11994QQV4v5qN7uBfAVAAfNbF9t7HEA3wLwjJl9FcApAF+e60CpVAqNzWEV2NAoT6OVKmElTwW8pdHFYZ5O6prkbYtKZa5cmpycCo5vvn4znXP3ffdR20u/4a2h9r7xBrW1NTdRm1k49ZLLR17XuSALY+NceVWc5q2hrBj+yGYpfslNT/A6c+eHx6ltcjr8vADAju47g+MHj3AV4Np1XIHZtjxc+w0Aes7y1FsMJ5ex80sRlUI4hckTb/MIdnd/GaBRxROSQohrCn2DToiEoGAXIiEo2IVICAp2IRKCgl2IhFDXgpOVimNqIpyumZ7i6qqW1rAaqhxpddNz4iw/XgNvxTM+zQv29Z47FxxvbudtkG655VZq27PnH6jt7cNHqa11GVeHtZC03Mws//ZiOpKWm5rgaS0r8vXPpcPHjLVIgvFUKrI8D3WxjyjsABx7O1wg8q4dd9M5+Qy/PgaGeHrwyKFwsU8AKDl/3Ll0OAw71/LrahlpeTUZUd7pzi5EQlCwC5EQFOxCJAQFuxAJQcEuREJQsAuREOqaeitXyhghKio3nppoyYRTMrG0UM/5HmqbnOVKrpFIamVwdCQ4PlPhaa2zPe9Rmxe53MyyPP2zedP11JZvCBfTLJa4asxL3I/Ccl4IdGgovB4AUGHuR664DJN/AShGFI7ZEi/4efrEqeD45uu30DnpSM+5zrbl1Ba7dWZTvJZDhhSjXL16NZ3DeiOevMDVnrqzC5EQFOxCJAQFuxAJQcEuREJQsAuREOq6G49KBaWZcP03j4ggRsmu7xTZHQeAxuZmapuZ5bv4YyN8N75SJC13SpHKXylum5rmthMnw7vIAHDXjruobe36DcHxI/sP0DmdK1qprX15C7WVI0KYgRGyKzzDMxelDBe7pBr4jvvaNeuorZIOn28ikslZs3YNtd18w83U1tHK13FklJ+vQq6fowd5nbyeM2FR1uTkJJ2jO7sQCUHBLkRCULALkRAU7EIkBAW7EAlBwS5EQpgz9WZm6wH8JaotmR3ALnf/rpl9E8DvA7hQ+9PH3f0XsWO5GTwdTrGlLUvnjU+Q+nSRjNfwGE+h5S7y17gUESUAQGNTWBRSqkT69EQa13Ys56ma3v5eauvr5XXGrutcGRw/U+BCjBRpGQUAPs0fW2crT29O9V8kJ+OCp5lizEfux3Uk3QgAHa3hdk2NuZjYhbd4Gh8bprZ8mouXslle29Bnw3UZsxm+HiOD4dRmOdK+bD559hKAP3L3N8ysBcBeM3u+ZnvC3f/rPI4hhFhi5tPr7TyA87Wfx8zsKAD+LQYhxDXJh/rMbmYbAdwO4NXa0NfM7ICZPWlm/L2PEGLJmXewm1kzgJ8A+Lq7jwL4HoDrAWxH9c7/bTJvp5ntMbM9XonUDBdCLCrzCnYzy6Ia6D90958CgLv3uXvZ3SsAvg9gR2iuu+9y925377aUNv+FWCrmjD4zMwA/AHDU3b9z2fjlaoEvATh09d0TQlwt5rMbfy+ArwA4aGb7amOPA3jEzLajmgA7CeAP5jqQATBSZ6whkhoqknTNeKw1kfHjTU3wGnQWUamlM+GWO/lIvbh8A6/htmnDRmrb+9oeajuwby+1bb3lluD48hW8ldDAAEmTASjP8JTR2nXhNB8ANObI+hf4esTSfDMzvE5eNpJuKhFlZN853h7svgfup7bdu5+ltpELfB0bGhuprak9XNeuNMlbolkmnNOdrnD16Hx2418GgtX+ojl1IcS1hT5EC5EQFOxCJAQFuxAJQcEuREJQsAuREOrc/qmCiamwwqdc5vKwFJG3WYqnGfI884biVORcJX7MSon4HlGNzU7x9MltW3nxwr9tCqf5AODksWPUtum6jcHxjevW0zlj/X3UZln+rcf+8xEFGFHEVSItnlbkeVpubIynS8+8d4LaNnWFH3dlhqdtB8+FizkCwGyRz9u8eSO1tTS3U1tTS/hxF/K8yGaRXKcvv8FTtrqzC5EQFOxCJAQFuxAJQcEuREJQsAuREBTsQiSE+vZ6c8CJQml2liuXyqVwqsyD+pwqkRKQiNSUxCzp5wYA7uF8XmUy3L8OAF58/u+o7U//+I+p7XNf+By1/fLnv6S2nuMng+N33hUsNwAAOH82PAcA4Fxt1r48rNYCgCypXdC+jKvv3HkKc3yY9/VraeKKss72sDJvKpIS7e/jBT1nIv3thkYiaspIgcvR/nBx1I6VHXROiTwt5UiBGN3ZhUgICnYhEoKCXYiEoGAXIiEo2IVICAp2IRKCxdIdV5tUKuX5TLg4o2V4Go0JpcpFXgwxVeGPK2M8PVGpRPrAEVM6y9Mqqcjr6fUbrqO25mauemttbaO2ZaRP2ef/5RfonKNHeWHgv/k5LzWYiqQ+K5VwurQxz4tzTkxPUlshkrrasHYVteWyTcHxwSHeC3Ayci32Rea9e5yrES3S9K80E74ePaLqBLmEZ91R8XDE6M4uREJQsAuREBTsQiQEBbsQCUHBLkRCmFMIY2YFAC8ByNf+/q/c/RtmtgnA0wBWANgL4CvuzrfHq0eDpUhxOOc75Kw8XTrSKLLaoi5MW2sLtaXTWWpraAzbWkn7HgCoRNonDQ/xdkE5cMFIKcePeeLi8eD4oUP76Zzbbr2d2o4fOUpt53q5YGSMCFeyTeHdcQDI5/hOfUOkqGCxxMVLg0Ph+npH3uI75zMNPBNy89Zt1Ha2r5/ahiLPdbjhEuCk9iIApNmlzzf953VnnwHwKXe/DdX2zA+a2V0A/gzAE+7+EQBDAL46j2MJIZaIOYPdq4zXfs3W/jmATwH4q9r4UwC+uCgeCiGuCvPtz56udXDtB/A8gOMAht390vunHgDrFsdFIcTVYF7B7u5ld98OoAvADgA3zfcEZrbTzPaY2R7U8dt6Qoj386F24919GMCvANwNoN3MLm3wdQEINrx2913u3u3u3YhsmgkhFpc5g93MOs2svfZzA4DPADiKatD/Xu3PHgXws8VyUgixcOZTg24NgKfMLI3qi8Mz7v5zMzsC4Gkz+88A3gTwgzmPZADyJM0ww3MGTLdSirxUZdL8XcQ0aeMEAC0Fnv5pISm75S28tU+2naeM1i0Li1YALv4BgOI09398JFxb7cXnX6BzZiM19CwiKMql+eXT2hpOsU1HUpFe4ueqpHhqdmKC18mbmAy3a2psa6VzMinux6ljb1HbdKRFVdoiaeJc+HzlIr920qSQYqnC05BzBru7HwDwjxKx7v4eqp/fhRD/BNA36IRICAp2IRKCgl2IhKBgFyIhKNiFSAh1rUFnZhcAnKr92gEgJgWqF/Lj/ciP9/NPzY8N7t4ZMtQ12N93YrM97t69JCeXH/IjgX7obbwQCUHBLkRCWMpg37WE574c+fF+5Mf7+Wfjx5J9ZhdC1Be9jRciISxJsJvZg2b2tpm9a2aPLYUPNT9OmtlBM9tnZnvqeN4nzazfzA5dNrbczJ43s2O1/7kkbnH9+KaZna2tyT4z+3wd/FhvZr8ysyNmdtjM/n1tvK5rEvGjrmtiZgUze83M9tf8+E+18U1m9motbn5sZrkPdWB3r+s/AGlUy1ptBpADsB/A1nr7UfPlJICOJTjvJwDcAeDQZWP/BcBjtZ8fA/BnS+THNwH8hzqvxxoAd9R+bgHwDoCt9V6TiB91XRNUxeDNtZ+zAF4FcBeAZwA8XBv/7wD+3Yc57lLc2XcAeNfd3/Nq6emnATy0BH4sGe7+EoDBDww/hGrhTqBOBTyJH3XH3c+7+xu1n8dQLY6yDnVek4gfdcWrXPUir0sR7OsAnLns96UsVukAnjOzvWa2c4l8uMQqd79UiL0XAG9Nuvh8zcwO1N7mL/rHicsxs42o1k94FUu4Jh/wA6jzmixGkdekb9Dd5+53APgcgD80s08stUNA9ZUdiHQIWFy+B+B6VHsEnAfw7Xqd2MyaAfwEwNfd/X29keu5JgE/6r4mvoAir4ylCPazANZf9jstVrnYuPvZ2v/9AJ7F0lbe6TOzNQBQ+5+3F1lE3L2vdqFVAHwfdVoTM8uiGmA/dPef1obrviYhP5ZqTWrn/tBFXhlLEeyvA9hS21nMAXgYwO56O2FmTWbWculnAJ8FcCg+a1HZjWrhTmAJC3heCq4aX0Id1sSqvbp+AOCou3/nMlNd14T5Ue81WbQir/XaYfzAbuPnUd3pPA7gT5bIh82oZgL2AzhcTz8A/AjVt4NFVD97fRXVnnkvADgG4G8BLF8iP/4ngIMADqAabGvq4Md9qL5FPwBgX+3f5+u9JhE/6romAD6KahHXA6i+sPzHy67Z1wC8C+B/A8h/mOPqG3RCJISkb9AJkRgU7EIkBAW7EAlBwS5EQlCwC5EQFOxCJAQFuxAJQcEuREL4f6fVlTV/3sUAAAABSURBVKtpPAeIAAAAAElFTkSuQmCC\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 40 distortion 0.3746 num_queries 10625\n",
"Iteration 50 distortion 0.3536 num_queries 13040\n",
"Iteration 60 distortion 0.3366 num_queries 15447\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 70 distortion 0.3266 num_queries 17773\n",
"Succeed distortion 0.3198 target 6 queries 20046 LS queries 3819\n",
"\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"image batch: 14\n",
"Searching for the initial direction on 100 random directions: \n",
"--------> Found distortion 4.4494\n",
"--------> Found distortion 3.9155\n",
"--------> Found distortion 3.3046\n",
"==========> Found best distortion 3.3046 in 2.4470 seconds using 238 queries\n",
"Iteration 10 distortion 0.8499 num_queries 3070\n",
"Iteration 20 distortion 0.4501 num_queries 5697\n",
"Iteration 30 distortion 0.3652 num_queries 8192\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 40 distortion 0.3217 num_queries 10551\n",
"Iteration 50 distortion 0.3024 num_queries 12961\n",
"Iteration 60 distortion 0.2857 num_queries 15355\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 70 distortion 0.2764 num_queries 17678\n",
"Iteration 80 distortion 0.2703 num_queries 19976\n",
"Succeed distortion 0.2699 target 8 queries 20202 LS queries 3764\n",
"\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"image batch: 15\n",
"Searching for the initial direction on 100 random directions: \n",
"--------> Found distortion 5.1076\n",
"--------> Found distortion 4.0314\n",
"--------> Found distortion 3.7263\n",
"--------> Found distortion 3.3133\n",
"--------> Found distortion 2.9816\n",
"==========> Found best distortion 2.9816 in 2.6866 seconds using 260 queries\n",
"Iteration 10 distortion 0.1626 num_queries 3308\n",
"Iteration 20 distortion 0.0946 num_queries 5819\n",
"Iteration 30 distortion 0.0781 num_queries 8252\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPsAAAD5CAYAAADhukOtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAfQElEQVR4nO2da4ycV5nn/09Vd1ff3d2+dNpu2+0bduwMcZImwyxZJsAOZGCkgHYXwQcUadFktBqkRZr9ELHSwEr7gVktID6sWJklO2HFANkhWcKIYYCAiBKYxI7vlzix43bsdl/d3e5rdd2e/VBlrROd/+l2X6pN3v9Pslx9njrvOXXe96m36vzreR5zdwgh3v2k1noCQojqIGcXIiHI2YVICHJ2IRKCnF2IhCBnFyIh1Cyns5k9AuCbANIA/qe7fzX2/LaOdu/q3hK0zedytF+hVAqPHxmrJhV5H0vxnsVieCwAKJaKwXYHly9TFhmLvC4AKBYK1GaR1xYbjxGTX6O2yOtmpiULvTGJeEkHXdpMljz/JZyX2Lk0YrsxOo7ZqemgccnObmZpAP8dwJ8AuArgsJk95+5nWZ+u7i347nPPBG0Xrl6mY43NTQXb0xF372hqobZ0XS0fazI8FgBMZqeD7cUif6PKNPCxpibDxwOAGzcm+DHr66mtvjYTbPfIG0uhyN9Y5ufnqc0Re2MMu0WxGH7DBPgFDAClPO9XKnAbc5iS87lb5I0lTy0ALPKmn07zbmSOdTX82mHXwP/666/xOVDLwjwI4IK7v+nuOQA/APDoMo4nhFhFluPsWwBcueXvq5U2IcQdyKpv0JnZ42Z2xMyOTFwfX+3hhBCE5Th7P4Ctt/zdXWl7G+5+yN173b23bX37MoYTQiyH5Tj7YQB7zGyHmdUB+AyA51ZmWkKIlWbJu/HuXjCzLwD4J5Sltyfd/UysT206jY3r1gVtc7Prab+OfHOwPZ3iO5w1fLMVc8Z3b4cKWWq7MTUZbC+V+G58fY7vqMZobGigtthufLYQ3i+emeM7/6WI3BiT3qLyJiG6406kTQAolrhi4JH5l4jMGlMnYrZ8ZBc/Jq+lIq8tnQ5fI4VURLnIhdcjplAuS2d3958C+OlyjiGEqA76BZ0QCUHOLkRCkLMLkRDk7EIkBDm7EAlhWbvxt0sqlUJzY1g22tHVRfvlc2E5KSa5jFwfobbh0TFqa28Jy3wA4DVhaWU+O0v71EbkwVSaL//k5A1qm5vl8uB4NhzIk83yPrHoqpoaPkczLiuymBAWOQjEg2SKkWAXI0E3FWuwtRSR10qReXgkeC0mD6bBrwOnAV0xSZRIihFpUHd2IRKCnF2IhCBnFyIhyNmFSAhydiESQlV3490d88VwmqN1rTyNVJakipqaDAemAEA6lmcux3emazJN1LaJBPFYOw/djeWSm5jgqadaGxupbWaKp87Kz8yFDZEIiboMD6yJBRshsgvOds/zJFAHAIrOd8Fj809F0pPRnfXI8WK78ZEZopSK5OuLqAlp1q0YuRd7+LzEAmF0ZxciIcjZhUgIcnYhEoKcXYiEIGcXIiHI2YVICFWV3nKFPK4MDwRtXa1cvmrLhGWoUhOXp2aNS17v2bOb2qbmeFDLwFB47hNzRO4CkI8EfkySnHYA0NTIJcDuLd3Ulh4On9LpmRnap6W1ldpykbJcc5G1ys6H5c3Y8WL1vDKR6igWKcrEgqViMl+sWoxHgoY8IkXGAlSYXJaq4ffiJZUioxYhxLsKObsQCUHOLkRCkLMLkRDk7EIkBDm7EAlhWdKbmfUBmEI5GKjg7r2x5+fzBQwNh/O/TY+N0n4PbN8XbM/NcOnn7MBlauvq4tLVdJFHZdVnwvJPS47LOJcmw3IdAOScy4M1OX5qaiOnbdumzmB7IRJ9Nz7NS0PdmOeReaNTkTx5ZLyYTLYhEnHY3c7Lgw1Frp08kdhKkXxxsZR2bvz+WIi8NkRsRmQ5i8TYZUjUW2wKK6Gzf8jd+WoLIe4I9DFeiISwXGd3AD83s1fN7PGVmJAQYnVY7sf4h9y938w2AfiFmb3m7i/c+oTKm8DjALDxrvD3SSHE6rOsO7u791f+HwbwLIAHA8855O697t7b2hZO6ySEWH2W7Oxm1mRmLTcfA/gogNMrNTEhxMqynI/xnQCetXIUUA2Av3P3n8U61NbWoKtzY9A2NnaV9jv+u18G26dmwskrAeCHF05R275991BbIcePmSGJKh+++320T/cOLvNduPQGtXU0h9cJAGJ5GS9eeT3Y3tTEZa25eS69DU/yUlkTczxxZzEVvo/UsLpQADKRhI3dbR3Udv0Gn2M2H45ItHQkoixSdqkYKeOUy/N+EcWOJvU0Jq8BqOOHoyzZ2d39TQD3LrW/EKK6SHoTIiHI2YVICHJ2IRKCnF2IhCBnFyIhVDXhZCplaGoKD1nXyCWqK6dfDbZ7ROpo72imttnJQWq7OjxEbcPXwxFgsQi1z3zsEWrr3nmA2sanIkksmxuobT4dlg4PHznMx5rjySinSlyKLBUi9eNqwrJRbaR0XGMdF5Q8clvKlngSS1Z/rRSJKMtHIuIKkajIfC6S7DGSqLK2Nnz9pCJ6Xc7Dx/NoTTwhRCKQswuREOTsQiQEObsQCUHOLkRCqOpuvLnBCuEhf/ZPz9N+fup8sH37XTxYZEsHz1lWM8Nzp83k+E7slbmw7VevHqV9tpKccADwwZ17qC1Tx0/NmT4eQDNbCO+e9+zYQftMnD9LbV6MBK5E6jW11Ibz9cUCYRpIHwDIznN1YnqWqwluYcWG6zhAifQBgHwuEiQTUSdiZaPSpMxTocivxXmSKC9Wukp3diESgpxdiIQgZxciIcjZhUgIcnYhEoKcXYiEUFXprVRy5KbCgQRDl3gOusLYVLB95Dov/9SHPmp7aNsmattU5JEaqemwrT9SBul7P/m/1DbzIM9d19vLbShyeeXS6+EcdD27dtI+XZ13Udv1vgvU1pzhATn7tm8PtmdSXILyaS6h5SPSm0eCU1JkvGwkf14hIswVinz+pYjNSGAQwOXNmIwGJs1GJD7d2YVICHJ2IRKCnF2IhCBnFyIhyNmFSAhydiESwoLSm5k9CeDPAAy7+z2Vtg4APwTQA6APwKfdfXyhY6W8iEwxXGroYA+Xcc6VWoPtr13iktfA9Ulqm4zkQZtP83lMjIQlnkxdPe2TruGRXIfP8dJ42zZ1UVtXPS/lNN0VzuV3/SrPu3djmp+6hhqeF+6udh5ZuL8nLPW1ZPjxzp08QW35SFmu9ga+HvUN4XPTn+e5BnN5Hm02m+U2q+XXAUoRyY5IbDXpSB8qDy4vB93fAnhn1sQnADzv7nsAPF/5WwhxB7Ogs1fqrb+zct6jAJ6qPH4KwCdXeF5CiBVmqd/ZO919oPJ4EOWKrkKIO5hlb9B5OVE1/aJgZo+b2REzOzI2Hs67LoRYfZbq7ENm1gUAlf+H2RPd/ZC797p7b0d72xKHE0Isl6U6+3MAHqs8fgzAj1dmOkKI1WIx0tv3ATwMYIOZXQXwZQBfBfC0mX0ewGUAn17MYCUvYq4Ylsu29fBItDELy2hX67lMlj3HI6Euj79zv/H/Yw0bqK1I5JPODC819Qdb+HbGVN9r1NZ/+GVqayPyGgBsfs+uYPuu7m20z+uXL/Oxprm8iUjyyAuXwkkxN7bwtSpFyjg1NPBLdevmDmrr63sr2P4HnVton0Ijlwd/c/wktbnxklKlSLQfSCmnWMLJQjE8VokkogQW4ezu/lli+shCfYUQdw76BZ0QCUHOLkRCkLMLkRDk7EIkBDm7EAmhqgkn8yVgcCYcrZNuDCcoBIBdO8ORY6ONvObZSIFHctVd4WFvxTSPXNpFapEVc1wySs+Eo/wAYK/x99q6cR6ldnK8n9o21YVlnA8+9Me0z+ZNm6ltepYn9RwYHqC21y6GE182dnIpcsP2HmqbHb1Obesbw1GRAFBsCkuHuzu4xDpfz8/LqTS3jYJfB7EklimSQLRQ4lJepjZDbXSc2+4hhPi9RM4uREKQswuREOTsQiQEObsQCUHOLkRCqKr0ViwWMT4RrtvW3sijoRpqwwkFD2ziCQ9bs+FxAKDgNPwe/ZO8ptiB7rBsdPiVs7TPieO8hl1vI09G2dS9kdquz3AZavjcqWD7hvXttM/d++6mtrvaeA6Cfe08+i49EZaNhgZ4ApPOHT3U1kASRwJABvzaee9HHwz3aeCy1uTx49R2Nsej1yZqeaRlPhL0xgLV8hHvNBIRV1pmwkkhxLsAObsQCUHOLkRCkLMLkRDk7EIkhKruxrs7CrnwjuXE/Cjt19kRzgnWVcN3irdtD5cfAoBXIqWhunt4oMbeXe8Ptv/zb4/SPqfPnae2UkOk1FRkV9W28Zxr88WwmnDsxGHaZ+rGCLW998ABasO2PdS0a284sGnjNR7A0d66jto27tlLbcXIVncqHQ5OKf74Bdpn9pmfUltjBw9oqeniuesct1/KqRDJaQeyG1/O7B5Gd3YhEoKcXYiEIGcXIiHI2YVICHJ2IRKCnF2IhLCY8k9PAvgzAMPufk+l7SsA/hzATc3mS+7O9YoK6ZoatG4gctkcD0BJk1xtdSkuQTU180CSA3/IbSdu8ECNkVxY7viXH3uY9pme5rnwrl/jtteu8vxujc38PbrjrnAZrVQtz7s3eO0KtWWMB3fYdS6Xbt4Qnkf3pnBQEwAUB3mAEk5xCTMNLqXOTcwH29/47Tna56V0ltoGIwFFAF+rXIHLaMViWC6bNy7zOTEtV3r7WwCPBNq/4e4HK/8WdHQhxNqyoLO7+wsAeCVEIcTvBcv5zv4FMztpZk+aWeyzjRDiDmCpzv4tALsAHAQwAOBr7Ilm9riZHTGzI5MTkfK/QohVZUnO7u5D7l509xKAbwMIpwMpP/eQu/e6e29rG//tsxBidVmSs5tZ1y1/fgrA6ZWZjhBitViM9PZ9AA8D2GBmVwF8GcDDZnYQgAPoA/AXixms6CVMFsIS2/6d22i/8cthaWiSKx2YT7VQW1sz/4Sxp+0uartM5LD6jTw/2vs+9gFqK17k+57N9fzUDKa4TDl2I1xual0sx18zn//VNy9RW3cpklhtPFw26uLpy7TLYN81apsrcjmstZVHm82OhvtdqON9sg8/wOeR5edsYpRLmLlU5L5KVLl5cLk0VRu+Prjwtghnd/fPBpq/s1A/IcSdhX5BJ0RCkLMLkRDk7EIkBDm7EAlBzi5EQqhqwsm53DxO9V0M2upq+fvOPT3h5JFXrvEySEM3Zqjt/laeVLKQCktXANCyOywP/naCSy5tW3mJqm1beRLFA1u5FHnq6pvU9tqFt4Ltb126QPs092yhtu1dW3m/TV3UNjYV1pNeGOby2liGR4Y1rN9MbVMzXIMd7wwn9Wxr5tJsR8R2/BqPvhuZ59dOupYn2qwthCXMovE+XsMi4pRwUojEI2cXIiHI2YVICHJ2IRKCnF2IhCBnFyIhVFV6m87P43dDfUHbRDFckwsAdmwM1w27e3u4HQB+e4zXNjt7OTwHANi0nUe95camgu1/eOB+2udE3xvUdu4Sl+ze08Jr1e3exKWyDQ1hqW90M5fJhof6qa0QibzqWM/Xf2JdODln/v330j5NOZ5gcUdLOIElANSneATbkIUTTs5keeTgsdfPUNu1qfA1AABzHn7NAIAclxWbiCxXn+bRiFYkEYceqXtHLUKIdxVydiESgpxdiIQgZxciIcjZhUgIVd2NL5RKuJ4NB6icuxoO4ACAl06eCLY/cm8v7XP3br6bfeLkSWpLD/Gd3daWcO66/AwPgGiNBFVMZ7gC8ZuLr1DbBuMllDrIrvXmzh20T7bEd6bnpsO72QBQqm2ktr17d4X7tJLyXwDGx3l+N8vyeWzu5OW81s2Gc9CdvsRz6zU1RPIX1rdS29DgCLUVIsnhattrw+1FvoOfyoTv0xZJC6g7uxAJQc4uREKQswuREOTsQiQEObsQCUHOLkRCWEz5p60AvgugE+UEV4fc/Ztm1gHghwB6UC4B9Wl3H48dK2WG+lR4yNk5Lv+c6g/nrTuwg8tJ++7iwSL33fNeart4kedqqyWSTH06nOcMAOqyPLhjaxfPhdc/zKXI81O8Gm5rIZyrrdjP87RtrOES2qYmHoxxaXSU2vY8EJZFD9TzvGonT3NJ9MWjR6nt+gzPk9e+PizLtTVxCe1Az3uobYZIxwAwOzVJbZfHhqhtfj4swaYjJapa6tn5XF4OugKAv3L3/QDeD+AvzWw/gCcAPO/uewA8X/lbCHGHsqCzu/uAux+tPJ4CcA7AFgCPAniq8rSnAHxytSYphFg+t/Wd3cx6ANwH4GUAne5+s6zpIMof84UQdyiLdnYzawbwIwBfdPe3fTlxdwf5smBmj5vZETM7UpjhZXeFEKvLopzdzGpRdvTvufszleYhM+uq2LsADIf6uvshd+91996ayGaPEGJ1WdDZzcxQrsd+zt2/fovpOQCPVR4/BuDHKz89IcRKsZiotw8A+ByAU2Z2vNL2JQBfBfC0mX0ewGUAn17oQOlUGuuaw5JHsY5HNfVNhss8/ersq7RPnXHJa9f2HmrrLvI8YpcuhCXAe7ZzCfDABl7GqTTOx+rcxSWq04O8/NP5XFjimSjM0j7bmnl+ujPX+qituZv3yxbDUmpdiodlbd7It3227uBRjLlI7reZufB1VSpyiWqG5BoEgEyW9+vdfQ+1jb7MVenZmbD0Vmrg13A2H17fkvM+Czq7u78IgJ2hjyzUXwhxZ6Bf0AmREOTsQiQEObsQCUHOLkRCkLMLkRCqmnDS4SiyqJwULzNUyIT7HLvCI9RGhgep7d59+6ltZzeXypp6whFlpWYe9daR5hFlB+sjy9/IJaqdW7kM9Y8kUeXvroVlQwA4X+ARWfXhlwwAeC3Lj3l58Gywfe+G3bTPxvZ2atu2tYeP1c8jBGenw5Jj/5WBYDsAnDlxjtoGh65S2x995CFq62zdQG2Xx8OJKmt4oCLms+FklOUfs4bRnV2IhCBnFyIhyNmFSAhydiESgpxdiIQgZxciIVRVeit5CdPzYSnE8jxap0hqXs1EIqjmwCOhrpx6mdo6Lpyhtu6N4Tpqm9aFa8ABQFMk4WRvz15qa8xxOW9bKlwbDAD+ddfBYHs6zU/1Ty7z6MHper6Op0bDNfgA4MVj4TnW7/pj2mfjBp7ocW6aJyQdGw5HRQLA+Fg4OedLL/0z7fPWVS7L1dRyaWt0hCfg3NTGpbeRiXBEXG6cJ3spkMsqFs2nO7sQCUHOLkRCkLMLkRDk7EIkBDm7EAmhurvxJcdcluTOyvFd30IhHBGQquO70nPG38fSeb5j2T89Rm0nSBmqTA1XBTbU8V31kWleLqinJVy2CAD2dN5FbV3tYdvHtvC1mpjj5aR+1X+c2i5keb9f9r0YNlznQTcf2vEvqC13hY91/Fg4+AcArvWFA6JGxvna3yjxHHQx5WVohL+2fXvuprZULnx9nxzkwVzZybC/eFi4Ko/DTUKIdxNydiESgpxdiIQgZxciIcjZhUgIcnYhEsKC0puZbQXwXZRLMjuAQ+7+TTP7CoA/B3AzgdaX3P2nCx2PhYXESvhk82FpoibFdYYCeE47Z3nwAOSJDAIA8/Nh2dCyvHTVWJq/n46f4nLSR/c/SG0NkQKZA6PhYIyNrbzPv7v7X1Fbc5pLdn939BfU9sJoOAfd9DWe321y6A1qa7jRRG2ZIR4IUz8XPmctrVwuza7j5+zffuJD1NaW5uWwUixyBcAwk5DTdbSP0UuYv67F6OwFAH/l7kfNrAXAq2Z28yx/w93/2yKOIYRYYxZT620AwEDl8ZSZnQOwZbUnJoRYWW7rO7uZ9QC4D8DNgPAvmNlJM3vSzHgeYCHEmrNoZzezZgA/AvBFd58E8C0AuwAcRPnO/zXS73EzO2JmR4ozPBhfCLG6LMrZzawWZUf/nrs/AwDuPuTuRXcvAfg2gOCOkrsfcvded+9NRzaWhBCry4LObmYG4DsAzrn7129pv3Xr8VMATq/89IQQK8ViduM/AOBzAE6Z2c0QqC8B+KyZHURZjusD8BcLHcjhKJKwnHyBS29GpDKPyBmo4e9jJZLTDgCKRT4PkNI6XuJjzZb4WH03eJTUr84dprb5Apf63rd5V7C9lOPzmDs3TG2f6OISoO/n6//sq88G24/m+FhXJvn9Yluxg9q2bGmltp7mcPmtLVl+nme52ojuEpdmO9v5PE6d55Lj3ExYLq2L5LubmQvPo/xBO8xiduNfRFi8W1BTF0LcOegXdEIkBDm7EAlBzi5EQpCzC5EQ5OxCJISqJpwEQOWrSCAaUqlwBJuleYRPISrlcSxSUsosPI9UJOFkIZIAMF/HI/MuTnJZbvTIr6ltpCfc7+MP8GSOzTUZasNgjpoeaudJFE81Hgm2Hy3wRI9vpflYU3M8sm3oerikGADMXQlHvdXNcglt+8YWavv1L39ObUU/Rm1bN2+mts2knFffDb5WA9nwr1FLRS696c4uREKQswuREOTsQiQEObsQCUHOLkRCkLMLkRCqL71ZWKZKRWqz1dSFp1mIRKiVIlJe7C2uGImIY/JgDZFOymNFJlLPJa+6FJdQ5mZ5EpCX3gpHjo0Upmmf+7fto7b9ndupLTPH5/ihngeC7cXLfD3G53lEXKaZJ18c7efS28RkuG5bU+ScdXZxmQyNPPFlbixyHdRyV/OB8LnJXejnYzWE18Mj16/u7EIkBDm7EAlBzi5EQpCzC5EQ5OxCJAQ5uxAJobrSmwMlponF5DASwZYv8CgpEqBWnkYkMsgjmh1RDZGOJJysMS7HFCOvOQMelVUTkexSteHxzoz00T7nBy5R231bd1Lbw/vupbbePWHpbW9E5suXuITmNfyEXr6H18y78ua1YPvu9Rton4f27Ka2unruMr85dpHafvb0j6lt8OT5YPv1Of6ai+0kMk9Rb0IIObsQCUHOLkRCkLMLkRDk7EIkhAV3482sHsALADKV5/+9u3/ZzHYA+AGA9QBeBfA5d+fb4wsQi1splsK78awdADxiS6f5y06n+Q4o28U38B3QqC2SoM5JmayykR+z4OFd/NoMVwVyKR5Yc/zqa9R2begqte1Z3x1sv3/vPbRPaysPMjGWuxDAnro2anvf/T3B9oY6vh5tHc3UNjQ6Qm0/efYn1PbKkePUZuS6KtQ10D4pUobKI+u0mDv7PIAPu/u9KJdnfsTM3g/gbwB8w913AxgH8PlFHEsIsUYs6Oxe5mYMXm3lnwP4MIC/r7Q/BeCTqzJDIcSKsNj67OlKBddhAL8AcBHAhLvf/Kx8FcCW1ZmiEGIlWJSzu3vR3Q8C6AbwIAD+M6h3YGaPm9kRMztSjCRdEEKsLre1G+/uEwB+DeCPALSZ2c2drm4AwbQa7n7I3XvdvTfdWL+syQohls6Czm5mG82srfK4AcCfADiHstP/m8rTHgPAf/wrhFhzFhMI0wXgKSvXPkoBeNrd/8HMzgL4gZn9FwDHAHxnoQO5O3L5sGRQKPDAD6bolZzLa4hIXhF1Ah6tDUVGSnOZzCIyWTEirxWKfJJTEVnRyDFrIjn+0hFbPlIsa3COlycau3Im2P7qtXDQBwBYZKxsdp7aOjPrqe0TBz8cbG/PcHntH17hgUHHjnMJ7fjZ8GsGgFJMgm0JBzaVInIp6sg5G+ddFnR2dz8J4L5A+5sof38XQvweoF/QCZEQ5OxCJAQ5uxAJQc4uREKQswuRECwWJbPig5mNALhc+XMDgNGqDc7RPN6O5vF2ft/msd3dN4YMVXX2tw1sdsTde9dkcM1D80jgPPQxXoiEIGcXIiGspbMfWsOxb0XzeDuax9t518xjzb6zCyGqiz7GC5EQ1sTZzewRMztvZhfM7Im1mENlHn1mdsrMjpvZkSqO+6SZDZvZ6VvaOszsF2b2RuX/9jWax1fMrL+yJsfN7ONVmMdWM/u1mZ01szNm9h8q7VVdk8g8qromZlZvZq+Y2YnKPP5zpX2Hmb1c8ZsfmlndbR3Y3av6D0Aa5bRWOwHUATgBYH+151GZSx+ADWsw7gcB3A/g9C1t/xXAE5XHTwD4mzWax1cA/Mcqr0cXgPsrj1sAvA5gf7XXJDKPqq4JysHUzZXHtQBeBvB+AE8D+Eyl/X8A+Pe3c9y1uLM/COCCu7/p5UD1HwB4dA3msWa4+wsAxt7R/CjKiTuBKiXwJPOoOu4+4O5HK4+nUE6OsgVVXpPIPKqKl1nxJK9r4exbAFy55e+1TFbpAH5uZq+a2eNrNIebdLr7QOXxIIDONZzLF8zsZOVj/qp/nbgVM+tBOX/Cy1jDNXnHPIAqr8lqJHlN+gbdQ+5+P4A/BfCXZvbBtZ4QUH5nR7xuxmryLQC7UK4RMADga9Ua2MyaAfwIwBfd/W1pcKq5JoF5VH1NfBlJXhlr4ez9ALbe8jdNVrnauHt/5f9hAM9ibTPvDJlZFwBU/h9ei0m4+1DlQisB+DaqtCZmVouyg33P3Z+pNFd9TULzWKs1qYx920leGWvh7IcB7KnsLNYB+AyA56o9CTNrMrOWm48BfBTA6XivVeU5lBN3AmuYwPOmc1X4FKqwJmZmKOcwPOfuX7/FVNU1YfOo9pqsWpLXau0wvmO38eMo73ReBPCf1mgOO1FWAk4AOFPNeQD4PsofB/Mof/f6PMo1854H8AaAXwLoWKN5/G8ApwCcRNnZuqowj4dQ/oh+EsDxyr+PV3tNIvOo6poAeC/KSVxPovzG8te3XLOvALgA4P8AyNzOcfULOiESQtI36IRIDHJ2IRKCnF2IhCBnFyIhyNmFSAhydiESgpxdiIQgZxciIfw/DvTx8JDcNR8AAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 40 distortion 0.0722 num_queries 10570\n",
"Iteration 50 distortion 0.0674 num_queries 12905\n",
"Iteration 60 distortion 0.0645 num_queries 15174\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 70 distortion 0.0629 num_queries 17480\n",
"Iteration 80 distortion 0.0615 num_queries 19758\n",
"Succeed distortion 0.0614 target 6 queries 20220 LS queries 3560\n",
"\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"image batch: 16\n",
"Searching for the initial direction on 100 random directions: \n",
"--------> Found distortion 3.1759\n",
"--------> Found distortion 2.3486\n",
"--------> Found distortion 2.3457\n",
"--------> Found distortion 2.2553\n",
"--------> Found distortion 2.0741\n",
"--------> Found distortion 2.0402\n",
"--------> Found distortion 1.9794\n",
"--------> Found distortion 1.8364\n",
"==========> Found best distortion 1.8364 in 3.0387 seconds using 290 queries\n",
"Iteration 10 distortion 0.4081 num_queries 3178\n",
"Iteration 20 distortion 0.2790 num_queries 5707\n",
"Iteration 30 distortion 0.2325 num_queries 8198\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 40 distortion 0.2126 num_queries 10548\n",
"Iteration 50 distortion 0.2011 num_queries 12936\n",
"Iteration 60 distortion 0.1923 num_queries 15270\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPsAAAD5CAYAAADhukOtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAfiElEQVR4nO2de2xd13Xmv3VffEukSOthPS1LtizLkewwTjL1dDxuk7hpWidI4TpAAwMN6qJNMBOg84eRASYZYP5IB3lMBijSUSZG3UGax+SBGJ20qeumcJ2mjmXHlmRLth7Ri6LEN3nJe3mfa/64VzOysb9NSiQvlZzvBxC83Iv7nH33Oeuce/d31lrm7hBC/PKTWu0BCCFag5xdiIQgZxciIcjZhUgIcnYhEoKcXYiEkFlKZzN7EMCXAKQB/E93/2zs/9tzOe/u7AzaYgLgcouDZjEbNxrS17EzbmrvaKO2jnZuQ70WsYVnyzI52qVS49ubL8xRm9fr3EYkXY/MR0wFzs8WqK1cqlCbkQOQTfP7XOwOWI2853rkDdQjZ3Emmw22b92xnfbpJH504fw5TIyPB9/0dTu7maUB/BmA9wC4AOAFM3vK3V9jfbo7O/GBf/1vgrZaZDKqpL0Wmdx0hh+ydCrSL82dIpvuDhsiJ2k6x42379tFbfvu4Dafm6Q2mw87brpvK+0znJ+mthMvvEBtlSK/EJSrYQesRpysUuNz9exzP6O20yeHqK090x5s39ATdhYA6HB+8Zua4+95rsYvOrORC3T/+puD7Z/7739O+9z99nuC7b/1nvtpn6V8jL8XwEl3P+3uZQDfAPDQErYnhFhBluLsmwGcv+rvC802IcQNyIov0JnZY2Z2yMwOzZfLK707IQRhKc4+BODqL4Jbmm1vwt0Puvuguw+25/j3YSHEyrIUZ38BwG4zu8XMcgAeAfDU8gxLCLHcXPdqvLtXzewTAH6IhvT2hLu/ukAflMvhFctaiksabJG2RmQmAKjXuExWT/O3Xc/wVdN6fSbYvm39AO0zuP8Oatu9m6+Qt4cXkQEAx86eoLaZkfAYd/+r8IovANx5329Q29qIBDj86nPU1pkKayidXWton6LxT36jFy5QW35igtqmp8Pn2+QsP84zVX4uVjwskwFAJcXvnTWqKQHnhi4G2z/32f9G+/zxx/9dsH02zyXKJens7v4DAD9YyjaEEK1BT9AJkRDk7EIkBDm7EAlBzi5EQpCzC5EQlrQaf624A3USZBAJJoKTSJNY9JpHItTc+dsuleapbfeusHz1wOAttE9bYZzaXn+GB3dUKnwc/bfy/a3dNxhsr3es5fuKSEZ77ryT2ooXjlBb/sKxsGFqmPappbuo7Z1buWS3tX0ftb34+kiw/eQ5HkxUi8yHRc4djwS7pMBPcCbmnXzjLO3zxtlLwfZ5Im03xiCESARydiESgpxdiIQgZxciIcjZhUgILV2NhwF1C19fLBIIkyaRMFblgTCROBjMga+a7tjEV33f9/ZwTrDuMl/ZnbwYXg0GgEyRp4OqFGapbeJSH7Xt27872N62YSftU5jleQY6OnuorXs9T511+rXjwfbKxCjtc3H059SWNX5A05FEf3ds7gi293XzgJbXTvIxTuZjeeb4Nt14IIwRhSpPUowBwNli2F/KkeAw3dmFSAhydiESgpxdiIQgZxciIcjZhUgIcnYhEkJLpTezFHIdYSmkXOfSRJZUd8nyoh5Ys4Yncdu8vpfa9m/vp7bO8lSw3ee5TNbZxnO4zU3xoAVWPgkA0pFgjKqH56orxydrvliitlREwuzffiu19ZIqJxOTPDCoXuTnwPAcn6v+dTyAplwIy6J9ufB5CAD33M7z9b10nAfyXJ7l1WLqHsmxSIJkygU++X//47C0OTPLA6h0ZxciIcjZhUgIcnYhEoKcXYiEIGcXIiHI2YVICEuS3szsDIA8gBqAqruHE6A1SWfS6FsXlr0KJS67gMhQu7ZxmeyeXdx2Uz0soQFAYSJcigcAxkbD8k8bD3bC3BiXY2byXLJLdfOccTft2ENt/Ru3BNurxqUfr3NZK1Yqy7q7qW3N+puC7bPnuCR6Ux+POByZ4yWe8qVYxGT4fjY3xaMR+wY2UtsdO3mpr/lT/FgX53gEW41Fy0XyEF46/FKwvVpcofJPTf6tu48tw3aEECuIPsYLkRCW6uwO4O/M7EUze2w5BiSEWBmW+jH+PncfMrP1AJ42s+Pu/uzV/9C8CDwGAN1d/LFGIcTKsqQ7u7sPNX+PAPgegHsD/3PQ3QfdfbAjVnRcCLGiXLezm1mXmfVceQ3gvQCOLtfAhBDLy1I+xm8A8D1r1GDKAPgrd//bWAczQyYT3mWuxJMebuwPfyIYvIVHr3XO8qSBl0e4vFYu8nEUa+Gxn5nickdlissxvQP8k056YD213bx3P7Vlu8PJKD1SFqg9w6Orxme4PFgpc8mrrS0cVVZP8+SQnX38a17vHD8uIyM84efG3rCEmY1EveXneCLQ3o6IpEv2BQCX5iLSsoWlt7TzcdQvv0gMKyC9uftpAPysE0LcUEh6EyIhyNmFSAhydiESgpxdiIQgZxciIbQ04WQqZejsCu+yry1H+71jTzgKKZPnkUuXhnhiwPGIHFaMJF9cQ6SV0+d5EsVslUtGnRt5HbX123hkW8+mbdRWs3CEYL3KI6imJ3kU4HwpkhQzEpU1RbY5NMSP2eQ0n6s6uDxYjyQrZbXPalw1RDWW7LPIpciOLA9/zKS4rezk3Hd+nqYQnvt6pI6h7uxCJAQ5uxAJQc4uREKQswuREOTsQiSElq7Gp9NAb294VXX7Oh740VbNB9t/fuIE7ZPP8xXaVIoHoNQj179aOmybLPNV6YE+vq+ezTzX2S2330VtxQJXDCYvXAi2V+f4ym6pwlefS5H5qNf4OGYmwsfs0iUe3HFxlAdxbInMVQk8uKZCSiuRimIAgPkSn4+5Cp/HapVv1J3PldEVdN4nTcpJ8bV43dmFSAxydiESgpxdiIQgZxciIcjZhUgIcnYhEkJLpbdcJo3N68LBH+u7eCDMxVdPhtsv8txj9VQbtXV3cVuVSBoAkCPBOhWP5FXr5iWNOjt5IMypV39GbdOVY9R2+tTZYHtHB5cAd+19G7W1rQ2XcQKA9gwv/zSwcWewPdu9jvep83vPun6eM+4ij0PCyGRYztvez/PdTUzzAkeW5gE5+fkitVWdy4og8mAKXAJ0KjfyPrqzC5EQ5OxCJAQ5uxAJQc4uREKQswuREOTsQiSEBaU3M3sCwAcAjLj7vmbbOgDfBLADwBkAD7s718Ga5DIpbO8ncs0MlzvmZ8KyRZmnLIPl+FsrliIRcVkuXWTINjNlvr38OM9ZNhzJXTd5ituOn+Llq8bGw7nf7n7HIO3T0cUltJ5+XmIrF8m51jP4rmD78Agvy3X4n5+mtmyWH896xDZXCMeBlSORbVbjtrV94fJaAHCmwPPrVYm8BgA5C8t5FpHRSGo9MBkPWNyd/S8APPiWtscBPOPuuwE80/xbCHEDs6CzN+utT7yl+SEATzZfPwngg8s8LiHEMnO939k3uPuVXM2X0KjoKoS4gVnyAp27OyLP6JnZY2Z2yMwOTeV5lg8hxMpyvc5+2cw2AUDzN12ZcPeD7j7o7oO9Pfx5ZCHEynK9zv4UgEebrx8F8P3lGY4QYqVYjPT2dQD3AxgwswsAPg3gswC+ZWYfA3AWwMOL2Zl5HZkaif6p8uR6daIzpFI8Ug6RckGlSEmj9iy//lWq4X6xYeRTfHsD++6mtncfeDe17Tp+itrGLobLXq3r55LRmoitf/0AtdWNpzfMDIT7vfd3f5f2ae/kUtPYuTeobXOVS4BHfvZ6sL0Skdd6OvknUE9zl5me4+dwCjzSMk3OVXcu6abJfboSSTm5oLO7+0eI6dcW6iuEuHHQE3RCJAQ5uxAJQc4uREKQswuREOTsQiSEliacrFermB0NRz11RaSybDacLNHSkQR/FS5bcNEFqEYi6SqkJlpfP0+i2L3tNmrbuPcd1Jbp4bXNtu7ppLYtt90ebF+zhke29a7lkW2ZNJe1Otq5nDQyFa711tG3lva564H3UdvZ41uo7fyPfkJt6XS4HmDaeHRYJcfPxTeGeMRhvsgl3RSJbAOAEsJPlmaNu2fawzae+lR3diESg5xdiIQgZxciIcjZhUgIcnYhEoKcXYiE0FLpzQHU6+GonJlZXgsrkwtLPKk0v1ZZNZJ4L9KvVuNRQxWSqHLHju20T9dWbiuVIpF+keil3rW8flyGKDzZNl7rbR2JUAOA+WIkkqvO57gnF57jqRmubXZ28ei79Vt2UVul/iK1lSvhMdbqXJqdyM9Q2/BEOKEnAKTAwx9Tzo8nLDxXKedynVGpmotvurMLkRDk7EIkBDm7EAlBzi5EQpCzC5EQWroan8rk0DGwLWi7NB7OFQYA6Vx4lbOrna8wz5bDgRgAUI4EyWTJyigAlArhleS1N/PVbMvwsJupmbfW3vj/bLg5PE8AkM3yVd+O9rCtFCl5VSzwFfeONh7sMpvnpa2yNbLqPs3LP6XI/AJAb0RN2LRxM7Vlch3B9gJ4gM/YPFcZ5ut8tdsipZeykVXyqoXHUifBLgCQYYE1kSgv3dmFSAhydiESgpxdiIQgZxciIcjZhUgIcnYhEsJiyj89AeADAEbcfV+z7TMA/gDAFR3lU+7+g4W2lcq2o2PzHUFbemicd5wOy2jt7Vw+KRb4dawtUpKpGgmEmcuHg3XWRhJ/tXWEpR8AKEcS3hWLXDpsy0RKEE2F8/J19/DgmRyR6wCgFgl2yRBJFAAKY+Hjeen1l2if6bFpahsr8nFs2cBzAN7xtgPB9hOv8uCZkXl+QN0itb4i5ZoyEUm3TtzQI3kZ+X16aYEwfwHgwUD7F939QPNnQUcXQqwuCzq7uz8LgD/9IYT4hWAp39k/YWaHzewJM+OByEKIG4LrdfYvA7gVwAEAwwA+z/7RzB4zs0NmdmhymicFEEKsLNfl7O5+2d1r7l4H8BUA90b+96C7D7r7YF8kw4oQYmW5Lmc3s01X/fkhAEeXZzhCiJViMdLb1wHcD2DAzC4A+DSA+83sABoxNmcA/OGi9pbOItUbLmu0cc8+2m3kjXAJn556JAddRJ6aHOX57lIZLvEUSuEyPakcL610y228/FM+wyO5UpHxw7m80t0TLuXUuaaL9qnVeahUOsX3NTt+idqOvfQvwfbixfO0z8Wf84i4k+cuU9vanTw/3V3vvDPYfubSOdqnPMIlwHokrCwVkdeqkfsqrURlERmNHBeLpLpb0Nnd/SOB5q8u1E8IcWOhJ+iESAhydiESgpxdiIQgZxciIcjZhUgILS//xBL2XTD+wE3nnvAzO+suc/kEr75MTaV0THqLXP/S4Si7mzaG5UQA2LSB23KRqLfOLB9HLsslmfaOcFRWvco1mVKFj6Na5rZKaZ7a5vLhfi+/dJz2Ofn6GWorlLkkett6HvW286494fbbuSQ6MsQlwPkxLgGWY9keY5IduefWvEL7ZGrhiLjYCHRnFyIhyNmFSAhydiESgpxdiIQgZxciIcjZhUgILZXeLJVCrj0cfXVqvpP2m5mYCrY/sGFTsB0AUh0nqa2jM7w9AEg5l6jqJGnj5tt30z7ZTv6+qpfCUXQAMDpxgdrWb9xKbeNTk8H2nh4emdfRzpNilua5vFYsclmurSM8VzORxJHT8xEpspdLsx3d3MYkxx07d9I+Z0/zuR+d5hnaDuy7i9ruuns/taVJ7b5Xjx6jfY6//Fqw3Yo8QYzu7EIkBDm7EAlBzi5EQpCzC5EQ5OxCJISWr8a3k9XpgodzpwFAWzr8eP+27Rton8LoRWorFnggTKkwS22b994ebF+7jedAq6R5nrm+3vXUNh9ZmY7lOqsUwyv858d5cMfaXh5Ikk7x0IqxSFDImQvhFe1UO5+Pzbdt4+PItlHb3HwksImUQ7rnnrtpn2KRB6CsX8fn6vd+/1Fq233nXmrLdITnZGKa58J74s++Emz/P9//K9pHd3YhEoKcXYiEIGcXIiHI2YVICHJ2IRKCnF2IhLCY8k9bAfwlgA1opLg66O5fMrN1AL4JYAcaJaAedvdwFEaTWh2YLoalnMlpHnDx8P5w0MLO27bQPht3cNvJo1wGmSWBJACwfU9Yemvv5nJMpUpN6FzDg2S61vA8czXncthaD1+/i0Ue3HHyeDioAgAqpRK15afGqG1kMiz1tfXygJysR8phtYXz/wHAwKbt1LZuYCDY3tXN9/XrD9xHbfl3DlJb/4abqK1c51KqV8PHOtPB3fO3H/lwsP25f/ob2mcxd/YqgD9x970A3gXg42a2F8DjAJ5x990Anmn+LYS4QVnQ2d192N1far7OAzgGYDOAhwA82fy3JwF8cKUGKYRYOtf0nd3MdgC4G8DzADa4+3DTdAmNj/lCiBuURTu7mXUD+A6AT7r7myLk3d1BUlab2WNmdsjMDk1NRr/SCyFWkEU5u5ll0XD0r7n7d5vNl81sU9O+CcBIqK+7H3T3QXcf7O3rW44xCyGugwWd3cwMjXrsx9z9C1eZngJw5cn/RwF8f/mHJ4RYLhYT9fYrAD4K4IiZXamp9CkAnwXwLTP7GICzAB5eaEPlah3nRsNRZf3t4TxcALB3Z3g5IBXJ77amN5zrDgD23/8AtVUrPOKpXArbKmWet87SPOdavc4ltHKZS17VGt8mUXHQ1x+WoIB4ZNvI0BC1eSfP/eYbwwOpr+MSayHP86dlIsd6yy07qG2AlN/KpPl9rjRfpLZyhbtMjpTeAoA2kmcOAJAKz5VV+XHuIJFyqRR/Xws6u7s/B5A4QeDXFuovhLgx0BN0QiQEObsQCUHOLkRCkLMLkRDk7EIkhJYmnCyVqzh5YTxo293LEwp2dZGIpwy/VtVrXE6qc0UDETUMsHS4ORNuB4B0+MFCAECtzCOhYPzQVGpclqtUw9uMSXlMUgSAlHHJKJfjIX3dneFJrmT4+2KlmgCgay2X+W7espna+m4KJ/WsV/nYJyf4OLzOS3a1pXmkYjbiaVVyQmacn6hsc3wEurMLkRjk7EIkBDm7EAlBzi5EQpCzC5EQ5OxCJISWSm/VOjBRDMtUv3U7j1LLWlgmqUWuVSkSSQQAlWokoqzKpbIKkYYqkT6lSMbJSolLb9Ua71eu8H6zc2FpaPzSJdpn7DK3eUSWq8xz2zRJ3FkucOmqGKmzt//mcPQaAGzayG25rrBkV4jsK3LqIJfjMmusXyqSJLRWCZ+P1TKf3zZS+64RkU7GQC1CiF8q5OxCJAQ5uxAJQc4uREKQswuREFq6Gm9myKTDq5lbe/kqJw8HiKycR1bBY0EyZZbEDUCJrLpXIwEtpYitGllVL83zXG2TE+FgIgC4fOF8sJ2tjgNALaJOFPN81frsz3lJqQvnwrZMJEfaXXftobZbd99GbSkSoAQAZbKiPRt5XzNTU9RWnOP56SKp/JCKrJJniU8UnR8Xvitu0Z1diIQgZxciIcjZhUgIcnYhEoKcXYiEIGcXIiEsKL2Z2VYAf4lGSWYHcNDdv2RmnwHwBwBGm//6KXf/QWxbuRSwtScsQXTV+UP/tXq4TzaSS65c4rJFYZ5LXpXI9a9MJLt6necsq0VynRVmebmjifFRahsf5oErLNDE5/l8jI0Ga3ICAF5/4zi1nT8blvkAYMuWHcH2hz/8Ydpn56286vdsPk9tw+f5OKw9HGA1M8PnfjoivVkmXHYJANI5nq8vFclTaPXwOZKK5LSzaLLEMIvR2asA/sTdXzKzHgAvmtnTTdsX3f1z17xXIUTLWUytt2EAw83XeTM7BoCn8xRC3JBc03d2M9sB4G4AzzebPmFmh83sCTNT8XUhbmAW7exm1g3gOwA+6e4zAL4M4FYAB9C483+e9HvMzA6Z2aHZ/PQyDFkIcT0sytnNLIuGo3/N3b8LAO5+2d1r7l4H8BUA94b6uvtBdx9098HunrXLNW4hxDWyoLNbI8/NVwEcc/cvXNW+6ap/+xCAo8s/PCHEcrGY1fhfAfBRAEfM7OVm26cAfMTMDqAhx50B8IcLbSiXcmxvD8sMLDoJADKlcKSRt/G8dbFSQrUal94sFrlE8ogVClwWmpriEWqTI5epbXpigtpqRS6jjZJccydOnKZ9hi4MUVt+lr+3NWv4Ms1v/+b7g+0H9t5K+5x4/UVqK0Zy4ZVS/DyYJnPlEelqvsgj29Zv3kZtNefnXCynYFtHZ7C9VOHvuTBXCBsiue4Wsxr/HMIlpKKauhDixkJP0AmREOTsQiQEObsQCUHOLkRCkLMLkRBamnAyhxpuToWfopuZ4TJDZ1c4Cind2UP7uPHrWKzsUqHAo6Emp8PjmIokgJyd4k8Nzo3xfiMkcSQAvB6R0c5dDMt5pUIkqrAWSdhYiZQtqnKJ6vArbwTbRy7yiL32NB9j95qwPAUAo5EIttHp8BjnC0S6AjA3y4/Zjl13UFuKq2vwcqQMGJEBC6SUFwCU5sIJSet1HgqqO7sQCUHOLkRCkLMLkRDk7EIkBDm7EAlBzi5EQmip9JY2R28mLHvlZ3nEUP7c2WD7+k4e7VRKc6lmcmqM2sYuXqS2aZIEcppEmgHA8Llz1Hb5HJfX5iKS3WUiJwHAVD4sX+VneaTc9BSXoUpl3q/mXCo7cuRksD0VqfXW08uP2fbN/dTWv26A2oZHwzXupiLzmzEuX63ru4naqu/kx2X3Hl7HDqTW2+gwTzr63HPPB9tnZniUou7sQiQEObsQCUHOLkRCkLMLkRDk7EIkBDm7EAmhpdJbzR1TJIleR51H+MxNhqOaqikekdW1fiO1pSZ5tFltiEtll46EE+iOnT1D+3Rk+RTfuYnLSW2376K2fz7K93f0xy8H26dn+PxWY4kSwSMEgSy1pJzcR2q8ftnoeFgmA4DL4zw5J98iUEf4HEmDR/qljG/xH3/0D9T29nsHqS3XzmXF00Seff5ffkr7/PW3nwq2T0/yOnW6swuREOTsQiQEObsQCUHOLkRCkLMLkRDMI+ViAMDM2gE8C6ANjdX7b7v7p83sFgDfANAP4EUAH3X32NItNg30++//5vuCtkc+8OuRQYSvSXMFHsywpmsNtfV085XR2Ug+udFREggzzoMP2ts7qK2zbx21/eRwOIcbAPyPr3+X2i6RoJa6cVWgUZszTA082AWI5TsL768eub+kItuzVGTlP6IKsHJIsRyFXuf54jrb+Dzuv+dt3DZ4gNrSbWFl4G9++Le0z5nXzgTbi7VZ1LwalBMWc2cvAXjA3fejUZ75QTN7F4A/BfBFd98FYBLAxxaxLSHEKrGgs3uD2eaf2eaPA3gAwLeb7U8C+OCKjFAIsSwstj57ulnBdQTA0wBOAZhy9yufdy4A2LwyQxRCLAeLcnZ3r7n7AQBbANwLIBKJ/2bM7DEzO2Rmhwrz4VzXQoiV55pW4919CsCPALwbQK/Z/1v12QIgWOTb3Q+6+6C7D3a2ty9psEKI62dBZzezm8yst/m6A8B7ABxDw+l/p/lvjwL4/koNUgixdBYTCLMJwJNmlkbj4vAtd/9rM3sNwDfM7L8A+BmAry60oWrdMVYMSzm1nj7ary0dviZZdTbYDgAzxUhAQJYHfmR7+aePTWtuDrYPrOfbc+dTfHGC5yz74T+9QG2Xp3nOOC5ecWqRwI+oMBuV7NhXNh6AUkcbtaXrXF7ziKzIpLfYO0tFZL5yWNUCAPz4J4eo7ZUjr1Fb30D43B8fG6F9OtvCpc9K8/zcWNDZ3f0wgLsD7afR+P4uhPgFQE/QCZEQ5OxCJAQ5uxAJQc4uREKQswuREBaMelvWnZmNArhSy2kAAK/D1Do0jjejcbyZX7RxbHf3YI2qljr7m3ZsdsjdeYY+jUPj0DiWdRz6GC9EQpCzC5EQVtPZD67ivq9G43gzGseb+aUZx6p9ZxdCtBZ9jBciIayKs5vZg2b2upmdNLPHV2MMzXGcMbMjZvaymfGQpeXf7xNmNmJmR69qW2dmT5vZieZvHga4suP4jJkNNefkZTN7fwvGsdXMfmRmr5nZq2b275vtLZ2TyDhaOidm1m5mPzWzV5rj+M/N9lvM7Pmm33zTzHLXtGF3b+kPGjGOpwDsBJAD8AqAva0eR3MsZwAMrMJ+fxXAPQCOXtX2XwE83nz9OIA/XaVxfAbAf2jxfGwCcE/zdQ+ANwDsbfWcRMbR0jlBo3xdd/N1FsDzAN4F4FsAHmm2/zmAP7qW7a7Gnf1eACfd/bQ3Uk9/A8BDqzCOVcPdnwUw8Zbmh9BI3Am0KIEnGUfLcfdhd3+p+TqPRnKUzWjxnETG0VK8wbIneV0NZ98M4PxVf69mskoH8Hdm9qKZPbZKY7jCBncfbr6+BGDDKo7lE2Z2uPkxf8W/TlyNme1AI3/C81jFOXnLOIAWz8lKJHlN+gLdfe5+D4DfAPBxM/vV1R4Q0LiyY4EkMSvIlwHcikaNgGEAn2/Vjs2sG8B3AHzS3d9Up7uVcxIYR8vnxJeQ5JWxGs4+BGDrVX/TZJUrjbsPNX+PAPgeVjfzzmUz2wQAzd88J9EK4u6XmydaHcBX0KI5MbMsGg72NXe/UvKm5XMSGsdqzUlz39ec5JWxGs7+AoDdzZXFHIBHAIQry68gZtZlZj1XXgN4L4Cj8V4rylNoJO4EVjGB5xXnavIhtGBOzMzQyGF4zN2/cJWppXPCxtHqOVmxJK+tWmF8y2rj+9FY6TwF4D+u0hh2oqEEvALg1VaOA8DX0fg4WEHju9fH0KiZ9wyAEwD+HsC6VRrH/wJwBMBhNJxtUwvGcR8aH9EPA3i5+fP+Vs9JZBwtnRMAb0MjiethNC4s/+mqc/anAE4C+N8A2q5lu3qCToiEkPQFOiESg5xdiIQgZxciIcjZhUgIcnYhEoKcXYiEIGcXIiHI2YVICP8XuxrGqtLJRgEAAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 70 distortion 0.1870 num_queries 17539\n",
"Iteration 80 distortion 0.1829 num_queries 19843\n",
"Succeed distortion 0.1824 target 3 queries 20076 LS queries 3586\n",
"\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"image batch: 17\n",
"Searching for the initial direction on 100 random directions: \n",
"--------> Found distortion 3.3154\n",
"--------> Found distortion 2.9592\n",
"--------> Found distortion 2.7642\n",
"--------> Found distortion 2.6346\n",
"==========> Found best distortion 2.6346 in 2.5690 seconds using 248 queries\n",
"Iteration 10 distortion 0.7947 num_queries 3053\n",
"Iteration 20 distortion 0.5043 num_queries 5714\n",
"Iteration 30 distortion 0.4066 num_queries 8243\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 40 distortion 0.3592 num_queries 10648\n",
"Iteration 50 distortion 0.3359 num_queries 13026\n",
"Iteration 60 distortion 0.3166 num_queries 15444\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPsAAAD5CAYAAADhukOtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAfdElEQVR4nO2daWxk15Xf/6cWVhXJItlkL2Tvq3ZLLQ+lccZL5LHGkTUDyEYyXhIY+mBYTjAGYmCCQHCA2AHywRPENvwhcNAeK6MJHG9jGxYCY8aO4kDjBJDd9kjdLbVaWy/qjexu7mTt7+RDVTst5/4vqWaz2J73/wGNLt7D+96pW+/UY91/nXPM3SGE+PtPZr0dEEJ0BwW7EClBwS5ESlCwC5ESFOxCpAQFuxApIbeayWb2EICvAMgC+HN3/0Ls9/O9/V4cGg4fK8PfdywJy4MGLhtmM0Zt7gm3Ja3IvLAtIf4BgBn3A8afs0eOmbUstWUsPC+yHNF1TCLSbEy1TRBe41aLr28mE3lekdtS0mpyI13/yIJEbRwnzxkAMpHX2sg9N7a++Ww4dOdnZ1BZWgw+gesOdjPLAvhPAP4AwFkAvzCzp9z9RTanODSMg5/610FbqVCi58pUauHjeYPOKfflqa3aCh8PAJqLU9xWXQiO12r8eJYvUlsuy59zfYkfc7A4QG2lTPiCK+V4kPXk+FW1VOd+1Ov84q4m4XlTc3N0TrkceV5Ffq6luWlq8wy5DiJvLJ6JhEUkApPIdVUq9lJbDoXgeKvK3dgyvDk4/t0nvkrnrObP+PsBvOrur7t7HcC3ADyyiuMJIdaQ1QT7NgBvXPPz2c6YEOImZM036MzsMTM7bGaHG0vhP4OFEGvPaoL9HIAd1/y8vTP2Jtz9kLuPu/t4vrd/FacTQqyG1QT7LwAcMLM9ZtYD4KMAnroxbgkhbjTXvRvv7k0z+zSAv0FbenvC3V+ITjLAsuHdTI+oHaX+8K51vs7nLNW50cObn+1jjpSprX4lfEyLnKvH+ftp3rliUOjnTlovP2YPWcdyRMqbmpiktguzfPd8YDgsowJAqxlWSpKItFmr8+3nYoarGlmymw0ArVZ4F9+yPXSOR+TSapXvuCc1rg7lweXBXC7sS3+JP+e9+/YExwsFvhar0tnd/UcAfrSaYwghuoO+QSdESlCwC5ESFOxCpAQFuxApQcEuREpY1W78W8YdIDKVgctQ2QKRJopcZmhUuNRxZZrLSV6KZGX1kPfGHF/GJJKQlUSMfXm+Hv2NRWrbRBKAkukZOmfyzGvUdrnBZahMgT9vI8kkpQKXk1imHMAlNADo6+Ff1mKyViTHBK2I9Jbv5f7HjlnM8aSnXTt3BcdHBobonLvuvCU4XirxmNCdXYiUoGAXIiUo2IVICQp2IVKCgl2IlNDV3fhsJoPh3vCuZCHLdxH7suESQkXnSQljQ3wnszdSg+7M1AVqW8xWguPlIt+hrU9HSlbxykgoLCxR245cJPHmynxw/OSl83TOwuIVatuw9QC1Vap8/5nZ8n2R8kx5viA1/pKhv8R348c2bwyOL7X4uayH75yPjm2itlMvH+fzNvF5wxvCCUXFPE/WyWVYXUaO7uxCpAQFuxApQcEuREpQsAuREhTsQqQEBbsQKaGr0lshm8HOoXCNt7xxV0Y3DAbHW5WwzAQAhUjNsq0RGWToLBcvTpz7/4rntv2oc98HIp1YSgs8OWXEeJKMV3kiz9mpS8HxK5Gaa/nRfdyPsXCSBgCcu8ATaNzCkmM2kvCUy3AfYXxepBQhMqRv1J4tW+icSoPLcpsHwp1YAGBqILz2AJBkuf/nJi4Hxxfn+etcb4a1yEqNr4bu7EKkBAW7EClBwS5ESlCwC5ESFOxCpAQFuxApYVXSm5mdAjAPoAWg6e7jsd/PZzLYXgpnFOUi0tuWDeHMpWpxgM5pJpE6YpH2T/tGt1JbIRv2vVLj5yrM8tZKGwv8vXbq4mlqOz3Fj3mS1JprlXk37YGt26mtd9NOahtscZkn2wzLohv6eXut/iLPXks8khFX5RLswmJ4PUaInAsAizO8xt/5SKuvpSrvUjy3yOe16uG2UX0kQxQAEjBJl7f5uhE6+3vdPSwUCiFuGvRnvBApYbXB7gB+bGa/NLPHboRDQoi1YbV/xr/L3c+Z2WYAPzGzl9z9mWt/ofMm8BgADI2EP3sLIdaeVd3Z3f1c5/9JAD8AcH/gdw65+7i7j/eV+YaaEGJtue5gN7M+MytffQzg/QCO3SjHhBA3ltX8Gb8FwA+s3SonB+C/uftfxyZkMoa+vvApZxd4YcYTJ08Fx2sN/l51ZYJnIA338HNtYi2eANy++7bg+KVLvGDj0sSr1NYfKRx5MpIR99rcBLVdIm2vKtNcyhtpcYmnd4RneW3fGm5BBABbBsOFJQ9s58cr5bhsNHGZv57nL/MioVcmLwbH5+b4azY6NsbPdZ4LT4tzU9RWbfACooO9fcHxW/aHrzcAKJM2VFmS5QesItjd/XUA91zvfCFEd5H0JkRKULALkRIU7EKkBAW7EClBwS5ESuhqwcl6s4Ezl8MZWy8ee5HOm5sMyyTbN/LCkdsi2VW3lsJSBwC0KrxAJObCclgh4RLaG1fOUtt8lctJFyfPUFumws/3u7eE5Zr5K1z6ee0iLxx58nl+idz7O/dx233hBMg79++mc6amwzIZAJw6zddxdoZLqRUiRZYKvLjl7bdzSbEn0n9tam6a2gYHeIHLUj68xhuHRuicQk+4gGU2y+/furMLkRIU7EKkBAW7EClBwS5ESlCwC5ESurobX12o4IW/PRK05Zf4Tua7h8P1wt62kSdwjBR4XbieFj/XXI0nYzTqpKXRME/dzQ/x3dvLZ3nttN489/9dQ7wu3MFde4Pjte18x/pvi8ep7fmZ16lt8iVezG/2QHhH23btoXMqFb72cK6gbBnkdQM3FMLXyM5t3I+RAb4LPjNc4ecq8wSl3j5eXy9HklfqlXCLJwDY0B+OiYzxWn26swuREhTsQqQEBbsQKUHBLkRKULALkRIU7EKkhK5Kb6VMBvf0heWaLSM8qWVXX/g9aag+S+c0KlVqqzfD7XYAIFfjcl59NHy+eZKUAAC9w7yeWfWNl6jt9j1cXrt97FZqGyyGa78tVubonPv38NZQ2dd5csrxi1yWe+7oc8Hxe+65l87py/LL8fZtvEUVcnzefD0ss27fyde3Bf56shZgAFDMhOvCAcBweQO1lfrCx2wshZN4AKCvJ/w6Z0yJMEKkHgW7EClBwS5ESlCwC5ESFOxCpAQFuxApYVnpzcyeAPBHACbd/a7O2DCAbwPYDeAUgA+7O08l61DIJNjXF86+6i1wmaHZCM+5VOEZSI0sz6DKNrmtNc0lu6nz4VptrWEu1eQL4ewkABjOc6kmU+M1405OnKe28mA4Y2tucYHOMfDstY2ju6mtd/IctZ0980J4/OWjdM6tdxygtlovv1QtwzMEB4n02dsblq4AIBfJHOuN1Hhr1vn1OHuFt4baWN4RHB/ayOsojgyFr53cKmvQ/QWAh35j7HEAT7v7AQBPd34WQtzELBvsnX7rv/m29AiAJzuPnwTwwRvslxDiBnO9n9m3uPvV1pkX0e7oKoS4iVn1Bp27OwD6IdjMHjOzw2Z2eCHyGVsIsbZcb7BPmNkYAHT+D3d+AODuh9x93N3H+0v8e8VCiLXleoP9KQCPdh4/CuCHN8YdIcRasRLp7ZsAHgCw0czOAvgcgC8A+I6ZfQLAaQAfXsnJsnCUPdy6qFnl0tDMUli2qFV4EcVmhssnOeNPO9vgstz5l8JtqAYjBScNXF6rOJeMMk3+3M5e4AUiF5OwjFYe5Zlt/Rt3UdtsL5d/LCIPZhfD2XILE8fonMp+vvVTzPPXs17jcmllMbyOA4NcesvU+Nq3IvJaFrxA5PQElynP5cOy89aD99A51mI+ch+WDXZ3/xgxvW+5uUKImwd9g06IlKBgFyIlKNiFSAkKdiFSgoJdiJTQ1YKTnrRQr4SLNi5UedJcphB+T+od4v2zJqZ4McqFRW7rbUSki2Z4uZZOnqZztr39fmqbjGS9NZ0XxSxs4rLRbKUVHH/50iU6J5nlz9n6N1Pb4jxfx/2kCGdrZpHOmTp7ktomZsLPCwAWapECokOkR1w/v3aSBs/AnInIfMUyf12m5meo7ZWT4cKdg2XuY7Ue9qNe52uhO7sQKUHBLkRKULALkRIU7EKkBAW7EClBwS5ESuiq9NYCMO9E5ilwGaraDGfKzS3x7KTFOW6ba/C+Z6WIHLZnNNyPboY9JwBLtbDvAFAc4dlmSxd5ltSScfmntxx+SYcLPGvswuQ8tc3PvExtsxUuo23ftic43qhyP6ZPcQnz8ElaMgEXiSQKAANj4dfs52+coXP6SR81AChF+srVuGIHlLiMtlQNX6uvnuOFRa0Qzm6sN7kTurMLkRIU7EKkBAW7EClBwS5ESlCwC5ESursbn7QwvRje+W3VI/XkWuEdxkaV73RXIrZSvofahou8ldNALpyMUSWJOgAwTXZaAWAusutbK/Ld2+YSTwpxolz0RBJrtkcSayoNXidvIQm3mgKA4sBwcHx6MdKy6w3eIqmY5YpHqYevVakv/HrmM7zS8fQMT1qxSHJKEmkbVYsk17Sa4ec2F7mGnz91KjheidTP051diJSgYBciJSjYhUgJCnYhUoKCXYiUoGAXIiWspP3TEwD+CMCku9/VGfs8gE8CuFrY7LPu/qPljuVwJB6WjZpNLidVGmEJotaIdIXNccmoL8elt1wkkaBCutBerF+mc16cfoHa5mPPeZrXjBsd4P73tMLtq3LGpas6aZEEAANlXoOul3fKAhph+aqVcN+bS7wF2L7yILVt2BBOCgGAiWpY6h0YILXpABT6uLzWMC5hLkbaYU1Ph1uHAUBPM7yQGXApbykbtiUWaSlGLf+PvwDwUGD8y+5+sPNv2UAXQqwvywa7uz8DgH/bQQjxW8FqPrN/2syOmNkTZrbhhnkkhFgTrjfYvwpgH4CDAC4A+CL7RTN7zMwOm9nhxSr/vCOEWFuuK9jdfcLdW+6eAPgaANoJwd0Pufu4u4/3Rb53LoRYW64r2M1s7JofPwTg2I1xRwixVqxEevsmgAcAbDSzswA+B+ABMzsIwAGcAvCplZzM3dD08PvLElcMUCFZb03n2k85UksOGS6vzde4HLZo4fM1ylzGSRL+10zRuWS0Ycc+atuzf5TaXj1yJDjuizyDqkCy+QCglOFrPDA8QG21hXCdv0ydt4waLHGpCZe4dFXO83Vc2hzOblsk0iAAZIl8CQCFiByGCpcOS5HrO2MkDJuR68PCtfWykZBeNtjd/WOB4a8vN08IcXOhb9AJkRIU7EKkBAW7EClBwS5ESlCwC5ESulpw0gHUEdYg5pzLYQv1cLujXCMiC5X4+9gsOR4AzFV5dljOwsfs2c4zw4oL/Hj9w+GijAAwP88z6V46+hK13bX/juB45SI/3sS5CWqbXeCtocp9/PLZ2BfObisYl/l6I4UjM2WuXdWcy5sHdoRbbBUiWXQLE3ytFpf4emSbkUy6Fn/ely+GZcDFK9yPXC78nD1yHt3ZhUgJCnYhUoKCXYiUoGAXIiUo2IVICQp2IVJCl6U3R51IA3MNLofNk6y3DVneo6ye8PexczNcPskkPFuu3Be2bUwi/dAun6W2pIfLcnt3jFHbi8+8TG3zSTgra8ett9M5VuLZaydfOk5tlye5NNS7qRwcbxV4JtdsJDNv2vnrMhe5jLdOh4tpFkjPQQAY7eM+zmT5ddrXw3vf9eW5j3094fM5Kc4KAP3kJYucRnd2IdKCgl2IlKBgFyIlKNiFSAkKdiFSQld341uJY74W3lmvRnZiM2TTukSSLQCg2uA7mXNN/rSbzm0N0qZnQ5Pv0Jaq4VpsAFCo88QPLPHnNprju/iZmXBSy6kXee23mUi9vlqGr6M1uR9nJsO73b4tvEsPAC9d5D727QnXXAOAfbt2U9vJn/3v4Phcwq+3+95LiyXjttv2Ulszw1/PmDrUTMIxkZBxAOghtQH/y5+Ha+4BurMLkRoU7EKkBAW7EClBwS5ESlCwC5ESFOxCpISVtH/aAeAvAWxBu4zcIXf/ipkNA/g2gN1ot4D6sLtPx46VJMBCJSzXLC5wKWSgN5zwMlDiNb8mI0kalRZv4XOlFk6cAIBadTE4vr3Gpbdsg3eu9bOnqe3MieeobVsfT7wZ2xCWthYTLmtVZ8LPCwAKCa+TV094DcAlkrjSW+TJIvMj/FxbtnDp7cqx/0Ntuxrh62DXMJeoll7jaz86yuW1/l3cxwXS9gwAYOHrsVXn0lvRwtdVNsOv7ZXc2ZsA/tTd7wDwDgB/YmZ3AHgcwNPufgDA052fhRA3KcsGu7tfcPdfdR7PAzgOYBuARwA82fm1JwF8cK2cFEKsnrf0md3MdgO4F8CzALa4+4WO6SLaf+YLIW5SVhzsZtYP4HsAPuPub/oOqLs72p/nQ/MeM7PDZna4Gvn8KoRYW1YU7GaWRzvQv+Hu3+8MT5jZWMc+BmAyNNfdD7n7uLuPF/O8mL8QYm1ZNtjNzNDux37c3b90jekpAI92Hj8K4Ic33j0hxI1iJVlv7wTwcQBHzeyqJvFZAF8A8B0z+wSA0wA+vNyBEk9QIfIVwCWDnp6wTHL+Mlf6zlzg0ttkg8t8XuR17QZGNgTHW/mIlFdZorbhBpf5thS4vFbOcpsvLATHM+AyzihpyQUAZSLxAMB0P5evLpP2RLOLU3TO1vJGapv62f+itpEsryc3tC1crK13kD/nTBJeQwCY/rtfcD9yPKOvb4TXFFzycIZjKyZtkvt0ZMrywe7uPwPo1fC+5eYLIW4O9A06IVKCgl2IlKBgFyIlKNiFSAkKdiFSQnfbPyUJGrVK0DZQ5BlsOYSliTNTwe/xAACqxqWVrTv3U9uDf/gBanvgPe8Jjp+/EC7yCACVCpf5Thx+ltqaw3w98iNbqe38dFhyrNS5nDTYywtO9kb6CTVaXDpcaIZt/UUu1+XnuDxYAs8sLESu4iUPZ1nOh7/wCQAoRjLUlqa43Ns6fZLatg1wWTGbCT+BxLmky7yPKG+6swuRFhTsQqQEBbsQKUHBLkRKULALkRIU7EKkhK5KbwDgJC2nJ8d7m7G2bQt13mtsx4G7qO2Tn/zn1HbHnbdSW64YlkI2j47SOUMbNlPbi++4j9pOHHue2iYXuES16ZZdwfHm7CU658o0lzAv1XjWW3ETf95FIlEtXTxP59RHeDHH0k5ezLGe4ddOhUh9s1kubb6xNENtV+a4beQMl2AHbouIYmVS5yHSj85BgsL4eXRnFyIlKNiFSAkKdiFSgoJdiJSgYBciJXR3N94MWVJh1iLFsy7NXgkb8nwX9sGH/pDa7nnbQWprRBJGqgvh5I5MnieS7Nod3h0HgL37eULL+Pjd1Pb0j5+htpMnXg6Obx/jNdB69+6hthMneYuqYu8QteFc+DVbrMwFxwFgqhApNb51BzVl+3jLgimyoX1lkSs5F2e47eQFci0CGJjgyTr77vuH1LZ9mCgNVb4bn8uGd+N5+pfu7EKkBgW7EClBwS5ESlCwC5ESFOxCpAQFuxApYVnpzcx2APhLtFsyO4BD7v4VM/s8gE8CuJph8Vl3/1HsWJmMoac3fMpqlcsutVbY9nvvfjedc987f4faFpq8XZDluHiR1MO2vHPZ0Or8XPUqnzc2zOWkf/rH/5jaTr9xNjx+8lU6Z2IyIieN8GQXr3GpaXhkMDg+OxWuQQgAs9yE/GWS+AGgJ+FSWbUUTl6an+MSa4XUzwOAhQUuh527wpNk3jh3kdp27d0XHO+J1KBDEpadLSK+rURnbwL4U3f/lZmVAfzSzH7SsX3Z3f/jCo4hhFhnVtLr7QKAC53H82Z2HMC2tXZMCHFjeUuf2c1sN4B7AVytgfxpMztiZk+YWbjFqRDipmDFwW5m/QC+B+Az7j4H4KsA9gE4iPad/4tk3mNmdtjMDtcavOiCEGJtWVGwm1ke7UD/hrt/HwDcfcLdW+6eAPgagPtDc939kLuPu/t4IdJwQAixtiwb7GZmAL4O4Li7f+ma8WszKz4E4NiNd08IcaNYya32nQA+DuComT3XGfssgI+Z2UG05bhTAD613IEcQEKkgekKl0L23hauC/eRj/8zOmdwiG8heKSumkdknEw+7Hu9waWaYg/PzKtXudbUcO5jNs/fo1mW3f59PLPtlVd426Knf/o/qe2Wt/E6f3fcGm6xdfncGTrn+NHnqO3k+Vlqm7rEa+glpXCWZU8Pl7WqVS4pWpPLpb2xNlqDvdSWNMNyXhK7BhIisUVK3a1kN/5nCGfORTV1IcTNhb5BJ0RKULALkRIU7EKkBAW7EClBwS5ESujqt1xaSYK5haWgLVPkEtX7PvD+4PjYGC/Y2Ghw2SKTjbzHRTLYnOgaFjlepc79yEW+ZGQRF1sNLg82iVzjOX7A3bt3UttHPvJPqK3YQ9oWASgWw89t106eVrFjz25q++73nqK2s8dPUNvSVHg9+spcCmtGpLdGnX8LtL/M21eNDA1QW2KkeGSklRPNzoxUnNSdXYiUoGAXIiUo2IVICQp2IVKCgl2IlKBgFyIldFV68yRBpRaW3n7vwQfpvLvHx4PjzUgxDG9yeQoZLmm0IvNyPeS9sRWR6yJSiEeMTOYDEJVX8kSSSSLZfN7i6zhQ5plcGfDMsVYrLCfNN7isVRoKF6kEgG07eK+6oyd4dnWtEi74OTc7RecQJQwAkFS4lLrn7t3UNjQY6Yvn5IRsHECDFPtsl5cIozu7EClBwS5ESlCwC5ESFOxCpAQFuxApQcEuREroqvRWLBVx+513Bm0Pf/CDdF6htxQcbyVcmshEpKuYDNWKyB0tUqgyYzz7q12cN0yjwfuG5fNc1srmY+cLv3+zbDgA0Uy/pBmRNyMSphM/IoIiYpfj3fe8jdpapBcgAPzq6JHg+PnzvL/dluGN1LZzG88QfO/7H6C2gYHwNQwA1Vq4YGnLI30WjF3DfIV1ZxciJSjYhUgJCnYhUoKCXYiUoGAXIiUsuxtvZkUAzwAodH7/r9z9c2a2B8C3AIwA+CWAj7s7314GMDA4jAcf/uOgbfMQrydXXwwfNpOJJZLw3exYzThEdkAzmfAueC7LzxXb+e8p8F31jEVemogKkdC6ZXytMhbZ+edewFv8mEyFyEbuL0kkoWjT5lFqe98/CtcoBIB7xn83OF6r8dZbw0PD1FaIKCG5HK+jWCM77gDQSsLXXCSnJVJHMfI688P9mhqA33f3e9Buz/yQmb0DwJ8B+LK77wcwDeATKziWEGKdWDbYvc3Vrov5zj8H8PsA/qoz/iQALpQLIdadlfZnz3Y6uE4C+AmA1wDMuP/6b96zAHiNYCHEurOiYHf3lrsfBLAdwP0AblvpCczsMTM7bGaH5+bDhQSEEGvPW9qNd/cZAD8F8A8ADJn9ehdpO4BzZM4hdx939/GBcnlVzgohrp9lg93MNpnZUOdxCcAfADiOdtBfbRfyKIAfrpWTQojVs5JEmDEAT5pZFu03h++4+383sxcBfMvM/j2AvwPw9eUOVCgWceCW8CeAVoPLLlkiM8SSTDyS3JGNzIslmWQzxI+IBJiNiFcZj8hQkTpzSTNyPiZ5ReTBWCJMpAMRLCLz0FZZkTkxCdMja5zP8Mt4+2i4hl4riT3nSL2+WAHAyHWVb3EfnfiSS7iSzeTjWEwsG+zufgTAvYHx19H+/C6E+C1A36ATIiUo2IVICQp2IVKCgl2IlKBgFyIlWEyiuuEnM7sE4HTnx40ALnft5Bz58Wbkx5v5bfNjl7tvChm6GuxvOrHZYXcPN3GTH/JDftxwP/RnvBApQcEuREpYz2A/tI7nvhb58Wbkx5v5e+PHun1mF0J0F/0ZL0RKWJdgN7OHzOyEmb1qZo+vhw8dP06Z2VEze87MDnfxvE+Y2aSZHbtmbNjMfmJmr3T+37BOfnzezM511uQ5M3u4C37sMLOfmtmLZvaCmf3LznhX1yTiR1fXxMyKZvZzM3u+48e/64zvMbNnO3HzbTPjFS5DuHtX/6FdsPQ1AHsB9AB4HsAd3faj48spABvX4bzvAfB2AMeuGfsPAB7vPH4cwJ+tkx+fB/CvurweYwDe3nlcBvAygDu6vSYRP7q6JmiXiO3vPM4DeBbAOwB8B8BHO+P/GcC/eCvHXY87+/0AXnX3171devpbAB5ZBz/WDXd/BsDUbww/gnbhTqBLBTyJH13H3S+4+686j+fRLo6yDV1ek4gfXcXb3PAir+sR7NsAvHHNz+tZrNIB/NjMfmlmj62TD1fZ4u4XOo8vAtiyjr582syOdP7MX/OPE9diZrvRrp/wLNZxTX7DD6DLa7IWRV7TvkH3Lnd/O4APAPgTM3vPejsEtN/ZsVx347XjqwD2od0j4AKAL3brxGbWD+B7AD7j7nPX2rq5JgE/ur4mvooir4z1CPZzAHZc8zMtVrnWuPu5zv+TAH6A9a28M2FmYwDQ+X9yPZxw94nOhZYA+Bq6tCZmlkc7wL7h7t/vDHd9TUJ+rNeadM79lou8MtYj2H8B4EBnZ7EHwEcBPNVtJ8ysz8zKVx8DeD+AY/FZa8pTaBfuBNaxgOfV4OrwIXRhTaxdOO3rAI67+5euMXV1TZgf3V6TNSvy2q0dxt/YbXwY7Z3O1wD8m3XyYS/aSsDzAF7oph8Avon2n4MNtD97fQLtnnlPA3gFwP8AMLxOfvxXAEcBHEE72Ma64Me70P4T/QiA5zr/Hu72mkT86OqaALgb7SKuR9B+Y/m311yzPwfwKoDvAii8lePqG3RCpIS0b9AJkRoU7EKkBAW7EClBwS5ESlCwC5ESFOxCpAQFuxApQcEuREr4vzaNUUd2bmPSAAAAAElFTkSuQmCC\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 70 distortion 0.3055 num_queries 17775\n",
"Succeed distortion 0.2988 target 4 queries 20071 LS queries 3823\n",
"\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"image batch: 18\n",
"Searching for the initial direction on 100 random directions: \n",
"--------> Found distortion 3.4631\n",
"--------> Found distortion 3.4505\n",
"--------> Found distortion 3.2685\n",
"==========> Found best distortion 3.2685 in 2.4372 seconds using 237 queries\n",
"Iteration 10 distortion 0.9632 num_queries 3125\n",
"Iteration 20 distortion 0.6208 num_queries 5744\n",
"Iteration 30 distortion 0.4975 num_queries 8215\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 40 distortion 0.4429 num_queries 10607\n",
"Iteration 50 distortion 0.4154 num_queries 13052\n",
"Iteration 60 distortion 0.3908 num_queries 15454\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 70 distortion 0.3755 num_queries 17792\n",
"Succeed distortion 0.3651 target 6 queries 20117 LS queries 3880\n",
"\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"image batch: 19\n",
"Searching for the initial direction on 100 random directions: \n",
"--------> Found distortion 21.5133\n",
"--------> Found distortion 19.9324\n",
"--------> Found distortion 14.0204\n",
"--------> Found distortion 12.8130\n",
"--------> Found distortion 10.0172\n",
"==========> Found best distortion 10.0172 in 2.5876 seconds using 249 queries\n",
"Iteration 10 distortion 0.7309 num_queries 3566\n",
"Iteration 20 distortion 0.3454 num_queries 6237\n",
"Iteration 30 distortion 0.2710 num_queries 8785\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 40 distortion 0.2398 num_queries 11169\n",
"Iteration 50 distortion 0.2242 num_queries 13550\n",
"Iteration 60 distortion 0.2132 num_queries 15937\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"Iteration 70 distortion 0.2069 num_queries 18229\n",
"Succeed distortion 0.2034 target 2 queries 20074 LS queries 4225\n",
"\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "stream",
"text": [
"image batch: 20\n",
"clean count: 20\n",
"acc under attack count: 0\n",
"avg total queries used: 406371\n",
"avg stop queries used: 20112.0\n",
"average distortion: 0.19576918184757233\n",
"robust accuracy: 0.050000000000000044\n"
],
"name": "stdout"
}
]
}
]
}