From 5069f1d33c198a0cf06ab203af84bf6f49ab96c3 Mon Sep 17 00:00:00 2001 From: bushuhui Date: Fri, 20 Dec 2019 17:53:43 +0800 Subject: [PATCH] Add order to some notebook --- 5_nn/Perceptron.ipynb | 29 +- 5_nn/mlp_bp.ipynb | 4090 ++++++++++---------- 5_nn/softmax_ce.ipynb | 3 +- 6_pytorch/0_basic/autograd.ipynb | 22 +- ... => 1-linear-regression-gradient-descend.ipynb} | 0 ...egression.ipynb => 2-logistic-regression.ipynb} | 199 +- ...l-module.ipynb => 3-nn-sequential-module.ipynb} | 0 6_pytorch/1_NN/{deep-nn.ipynb => 4-deep-nn.ipynb} | 0 ...m_initialize.ipynb => 5-param_initialize.ipynb} | 0 .../1_NN/{nn_summary.ipynb => 6-nn_summary.ipynb} | 0 6_pytorch/1_NN/bp.ipynb | 128 - .../1_NN/optimizer/{sgd.ipynb => 6_1-sgd.ipynb} | 0 .../{momentum.ipynb => 6_2-momentum.ipynb} | 0 .../optimizer/{adagrad.ipynb => 6_3-adagrad.ipynb} | 0 .../optimizer/{rmsprop.ipynb => 6_4-rmsprop.ipynb} | 0 .../{adadelta.ipynb => 6_5-adadelta.ipynb} | 0 .../1_NN/optimizer/{adam.ipynb => 6_6-adam.ipynb} | 0 6_pytorch/1_NN/optimizer/adadelta.py | 169 - 6_pytorch/1_NN/optimizer/adam.py | 182 - 6_pytorch/1_NN/optimizer/momentum.py | 231 -- 6_pytorch/1_NN/optimizer/rmsprop.py | 198 - 6_pytorch/1_NN/optimizer/sgd.py | 222 -- .../2_CNN/{basic_conv.ipynb => 1-basic_conv.ipynb} | 0 ...alization.ipynb => 2-batch-normalization.ipynb} | 0 .../2_CNN/{lr-decay.ipynb => 3-lr-decay.ipynb} | 0 ...regularization.ipynb => 4-regularization.ipynb} | 0 ...umentation.ipynb => 5-data-augumentation.ipynb} | 0 6_pytorch/2_CNN/{vgg.ipynb => 6-vgg.ipynb} | 0 .../2_CNN/{googlenet.ipynb => 7-googlenet.ipynb} | 0 6_pytorch/2_CNN/{resnet.ipynb => 8-resnet.ipynb} | 0 .../2_CNN/{densenet.ipynb => 9-densenet.ipynb} | 0 6_pytorch/2_CNN/CNN_Introduction.pptx | Bin 13418101 -> 16708905 bytes 6_pytorch/PyTorch_quick_intro.ipynb | 163 +- References.md | 3 + demo_code/2_logistic_regression_1.py | 5 +- demo_code/2_logistic_regression_2.py | 4 +- requirements.txt | 6 +- 37 files changed, 2345 insertions(+), 3309 deletions(-) rename 6_pytorch/1_NN/{linear-regression-gradient-descend.ipynb => 1-linear-regression-gradient-descend.ipynb} (100%) rename 6_pytorch/1_NN/{logistic-regression.ipynb => 2-logistic-regression.ipynb} (63%) rename 6_pytorch/1_NN/{nn-sequential-module.ipynb => 3-nn-sequential-module.ipynb} (100%) rename 6_pytorch/1_NN/{deep-nn.ipynb => 4-deep-nn.ipynb} (100%) rename 6_pytorch/1_NN/{param_initialize.ipynb => 5-param_initialize.ipynb} (100%) rename 6_pytorch/1_NN/{nn_summary.ipynb => 6-nn_summary.ipynb} (100%) delete mode 100644 6_pytorch/1_NN/bp.ipynb rename 6_pytorch/1_NN/optimizer/{sgd.ipynb => 6_1-sgd.ipynb} (100%) rename 6_pytorch/1_NN/optimizer/{momentum.ipynb => 6_2-momentum.ipynb} (100%) rename 6_pytorch/1_NN/optimizer/{adagrad.ipynb => 6_3-adagrad.ipynb} (100%) rename 6_pytorch/1_NN/optimizer/{rmsprop.ipynb => 6_4-rmsprop.ipynb} (100%) rename 6_pytorch/1_NN/optimizer/{adadelta.ipynb => 6_5-adadelta.ipynb} (100%) rename 6_pytorch/1_NN/optimizer/{adam.ipynb => 6_6-adam.ipynb} (100%) delete mode 100644 6_pytorch/1_NN/optimizer/adadelta.py delete mode 100644 6_pytorch/1_NN/optimizer/adam.py delete mode 100644 6_pytorch/1_NN/optimizer/momentum.py delete mode 100644 6_pytorch/1_NN/optimizer/rmsprop.py delete mode 100644 6_pytorch/1_NN/optimizer/sgd.py rename 6_pytorch/2_CNN/{basic_conv.ipynb => 1-basic_conv.ipynb} (100%) rename 6_pytorch/2_CNN/{batch-normalization.ipynb => 2-batch-normalization.ipynb} (100%) rename 6_pytorch/2_CNN/{lr-decay.ipynb => 3-lr-decay.ipynb} (100%) rename 6_pytorch/2_CNN/{regularization.ipynb => 4-regularization.ipynb} (100%) rename 6_pytorch/2_CNN/{data-augumentation.ipynb => 5-data-augumentation.ipynb} (100%) rename 6_pytorch/2_CNN/{vgg.ipynb => 6-vgg.ipynb} (100%) rename 6_pytorch/2_CNN/{googlenet.ipynb => 7-googlenet.ipynb} (100%) rename 6_pytorch/2_CNN/{resnet.ipynb => 8-resnet.ipynb} (100%) rename 6_pytorch/2_CNN/{densenet.ipynb => 9-densenet.ipynb} (100%) diff --git a/5_nn/Perceptron.ipynb b/5_nn/Perceptron.ipynb index a438284..f104f9b 100644 --- a/5_nn/Perceptron.ipynb +++ b/5_nn/Perceptron.ipynb @@ -59,7 +59,7 @@ "\n", "假设训练数据集是线性可分的,感知机学习的目标是求得一个能够将训练数据的正负实例点完全分开的分离超平面,即最终求得参数w、b。这需要一个学习策略,即定义(经验)损失函数并将损失函数最小化。\n", "\n", - "损失函数的一个自然的选择是误分类的点的总数。但是这样得到的损失函数不是参数w、b的连续可导函数,不宜优化。损失函数的另一个选择是误分类点到分里面的距离之和。\n", + "损失函数的一个自然的选择是误分类的点的总数。但是这样得到的损失函数不是参数w、b的连续可导函数,不宜优化。损失函数的另一个选择是误分类点到分类面的距离之和。\n", "\n", "首先,对于任意一点xo到超平面的距离为\n", "$$\n", @@ -124,10 +124,11 @@ "输出:w, b;感知机模型f(x)=sign(w·x+b)\n", "(1) 初始化w0,b0\n", "(2) 在训练数据集中选取(xi, yi)\n", - "(3) 如果yi(w xi+b)≤0\n", + "(3) 如果yi(w * xi+b)≤0\n", " w = w + ηyixi\n", " b = b + ηyi\n", - "(4) 转至(2)\n", + "(4) 如果所有的样本都正确分类,或者迭代次数超过设定值,则终止\n", + "(5) 否则,跳转至(2)\n", "```\n", "\n" ] @@ -141,7 +142,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 3, "metadata": { "lines_to_end_of_cell_marker": 2 }, @@ -150,13 +151,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "update weight and bias: 1.0 3.0 0.5\n", - "update weight and bias: -0.5 2.5 0.0\n", - "update weight and bias: -2.5 2.0 -0.5\n", - "w = [-2.5, 2.0]\n", - "b = -0.5\n", - "[ 1 1 1 1 -1 -1 -1 -1]\n", - "[1, 1, 1, 1, -1, -1, -1, -1]\n" + "update weight and bias: 1.0 2.5 0.5\n", + "update weight and bias: -2.5 1.0 0.0\n", + "update weight and bias: -1.5 3.5 0.5\n", + "update weight and bias: -5.0 2.0 0.0\n", + "update weight and bias: -4.0 4.5 0.5\n", + "w = [-4.0, 4.5]\n", + "b = 0.5\n", + "ground_truth: [1, 1, 1, 1, -1, -1, -1, -1]\n", + "predicted: [1, 1, 1, 1, -1, -1, -1, -1]\n" ] } ], @@ -214,8 +217,8 @@ "# predict \n", "y_pred = perceptron_pred(train_data, w, b)\n", "\n", - "print(train_data[:, 2])\n", - "print(y_pred)" + "print(\"ground_truth: \", list(train_data[:, 2]))\n", + "print(\"predicted: \", y_pred)" ] }, { diff --git a/5_nn/mlp_bp.ipynb b/5_nn/mlp_bp.ipynb index 5832e12..2600c77 100644 --- a/5_nn/mlp_bp.ipynb +++ b/5_nn/mlp_bp.ipynb @@ -307,7 +307,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -346,7 +346,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -408,7 +408,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -928,7 +928,13 @@ "epoch [ 510] L = 38.677077, acc = 0.850000\n", "epoch [ 511] L = 38.676627, acc = 0.850000\n", "epoch [ 512] L = 38.676178, acc = 0.850000\n", - "epoch [ 513] L = 38.675731, acc = 0.850000\n", + "epoch [ 513] L = 38.675731, acc = 0.850000\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "epoch [ 514] L = 38.675286, acc = 0.850000\n", "epoch [ 515] L = 38.674843, acc = 0.850000\n", "epoch [ 516] L = 38.674402, acc = 0.850000\n", @@ -1019,13 +1025,7 @@ "epoch [ 601] L = 38.642293, acc = 0.850000\n", "epoch [ 602] L = 38.641965, acc = 0.850000\n", "epoch [ 603] L = 38.641638, acc = 0.850000\n", - "epoch [ 604] L = 38.641313, acc = 0.850000\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "epoch [ 604] L = 38.641313, acc = 0.850000\n", "epoch [ 605] L = 38.640988, acc = 0.850000\n", "epoch [ 606] L = 38.640664, acc = 0.850000\n", "epoch [ 607] L = 38.640341, acc = 0.850000\n", @@ -1396,7 +1396,13 @@ "epoch [ 972] L = 38.558232, acc = 0.850000\n", "epoch [ 973] L = 38.558069, acc = 0.850000\n", "epoch [ 974] L = 38.557907, acc = 0.850000\n", - "epoch [ 975] L = 38.557746, acc = 0.850000\n", + "epoch [ 975] L = 38.557746, acc = 0.850000\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "epoch [ 976] L = 38.557584, acc = 0.850000\n", "epoch [ 977] L = 38.557423, acc = 0.850000\n", "epoch [ 978] L = 38.557262, acc = 0.850000\n", @@ -1628,13 +1634,7 @@ "epoch [1204] L = 38.525797, acc = 0.845000\n", "epoch [1205] L = 38.525676, acc = 0.845000\n", "epoch [1206] L = 38.525555, acc = 0.845000\n", - "epoch [1207] L = 38.525434, acc = 0.845000\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "epoch [1207] L = 38.525434, acc = 0.845000\n", "epoch [1208] L = 38.525313, acc = 0.845000\n", "epoch [1209] L = 38.525192, acc = 0.845000\n", "epoch [1210] L = 38.525072, acc = 0.845000\n", @@ -1867,7 +1867,13 @@ "epoch [1437] L = 38.500522, acc = 0.845000\n", "epoch [1438] L = 38.500424, acc = 0.845000\n", "epoch [1439] L = 38.500326, acc = 0.845000\n", - "epoch [1440] L = 38.500229, acc = 0.845000\n", + "epoch [1440] L = 38.500229, acc = 0.845000\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "epoch [1441] L = 38.500131, acc = 0.845000\n", "epoch [1442] L = 38.500034, acc = 0.845000\n", "epoch [1443] L = 38.499936, acc = 0.845000\n", @@ -2266,13 +2272,7 @@ "epoch [1836] L = 38.466240, acc = 0.845000\n", "epoch [1837] L = 38.466164, acc = 0.845000\n", "epoch [1838] L = 38.466087, acc = 0.845000\n", - "epoch [1839] L = 38.466011, acc = 0.845000\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "epoch [1839] L = 38.466011, acc = 0.845000\n", "epoch [1840] L = 38.465934, acc = 0.845000\n", "epoch [1841] L = 38.465858, acc = 0.845000\n", "epoch [1842] L = 38.465781, acc = 0.845000\n", @@ -2341,7 +2341,13 @@ "epoch [1905] L = 38.461040, acc = 0.845000\n", "epoch [1906] L = 38.460966, acc = 0.845000\n", "epoch [1907] L = 38.460892, acc = 0.845000\n", - "epoch [1908] L = 38.460818, acc = 0.845000\n", + "epoch [1908] L = 38.460818, acc = 0.845000\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "epoch [1909] L = 38.460744, acc = 0.845000\n", "epoch [1910] L = 38.460670, acc = 0.845000\n", "epoch [1911] L = 38.460596, acc = 0.845000\n", @@ -2437,6 +2443,8 @@ } ], "source": [ + "# FIXME: change variable name to math\n", + "\n", "from sklearn.metrics import accuracy_score\n", "\n", "y_true = np.array(nn.y).astype(float)\n", @@ -2471,7 +2479,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -2521,7 +2529,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -2543,7 +2551,7 @@ " self.n_epoch = 1000 # iterative number\n", " \n", " if not nodes:\n", - " self.nodes = [2, 4, 2] # default nodes size (from input -> output)\n", + " self.nodes = [2, 6, 2] # default nodes size (from input -> output)\n", " else:\n", " self.nodes = nodes\n", " \n", @@ -2635,7 +2643,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -2668,2037 +2676,2049 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "L = 141.641114, acc = 0.500000\n", - "L = 134.717649, acc = 0.500000\n", - "L = 127.447549, acc = 0.500000\n", - "L = 119.980618, acc = 0.500000\n", - "L = 112.582569, acc = 0.500000\n", - "L = 105.715501, acc = 0.500000\n", - "L = 99.910286, acc = 0.500000\n", - "L = 95.430744, acc = 0.500000\n", - "L = 92.118517, acc = 0.770000\n", - "L = 89.603045, acc = 0.830000\n", - "L = 87.556338, acc = 0.840000\n", - "L = 85.773311, acc = 0.835000\n", - "L = 84.144954, acc = 0.845000\n", - "L = 82.616875, acc = 0.840000\n", - "L = 81.161930, acc = 0.840000\n", - "L = 79.765895, acc = 0.840000\n", - "L = 78.420663, acc = 0.840000\n", - "L = 77.121120, acc = 0.845000\n", - "L = 75.863725, acc = 0.845000\n", - "L = 74.645849, acc = 0.845000\n", - "L = 73.465450, acc = 0.845000\n", - "L = 72.320894, acc = 0.845000\n", - "L = 71.210846, acc = 0.845000\n", - "L = 70.134203, acc = 0.845000\n", - "L = 69.090038, acc = 0.845000\n", - "L = 68.077556, acc = 0.835000\n", - "L = 67.096067, acc = 0.835000\n", - "L = 66.144952, acc = 0.835000\n", - "L = 65.223644, acc = 0.845000\n", - "L = 64.331609, acc = 0.845000\n", - "L = 63.468334, acc = 0.845000\n", - "L = 62.633311, acc = 0.845000\n", - "L = 61.826031, acc = 0.845000\n", - "L = 61.045977, acc = 0.845000\n", - "L = 60.292618, acc = 0.845000\n", - "L = 59.565408, acc = 0.845000\n", - "L = 58.863782, acc = 0.845000\n", - "L = 58.187156, acc = 0.845000\n", - "L = 57.534928, acc = 0.845000\n", - "L = 56.906480, acc = 0.845000\n", - "L = 56.301176, acc = 0.845000\n", - "L = 55.718368, acc = 0.845000\n", - "L = 55.157398, acc = 0.845000\n", - "L = 54.617598, acc = 0.845000\n", - "L = 54.098297, acc = 0.850000\n", - "L = 53.598818, acc = 0.850000\n", - "L = 53.118487, acc = 0.850000\n", - "L = 52.656632, acc = 0.850000\n", - "L = 52.212586, acc = 0.850000\n", - "L = 51.785690, acc = 0.850000\n", - "L = 51.375293, acc = 0.850000\n", - "L = 50.980758, acc = 0.850000\n", - "L = 50.601458, acc = 0.850000\n", - "L = 50.236784, acc = 0.850000\n", - "L = 49.886141, acc = 0.850000\n", - "L = 49.548949, acc = 0.850000\n", - "L = 49.224649, acc = 0.850000\n", - "L = 48.912696, acc = 0.850000\n", - "L = 48.612567, acc = 0.845000\n", - "L = 48.323755, acc = 0.845000\n", - "L = 48.045774, acc = 0.845000\n", - "L = 47.778154, acc = 0.845000\n", - "L = 47.520447, acc = 0.840000\n", - "L = 47.272220, acc = 0.840000\n", - "L = 47.033060, acc = 0.840000\n", - "L = 46.802572, acc = 0.840000\n", - "L = 46.580376, acc = 0.840000\n", - "L = 46.366112, acc = 0.840000\n", - "L = 46.159435, acc = 0.835000\n", - "L = 45.960013, acc = 0.835000\n", - "L = 45.767534, acc = 0.835000\n", - "L = 45.581698, acc = 0.835000\n", - "L = 45.402218, acc = 0.835000\n", - "L = 45.228823, acc = 0.835000\n", - "L = 45.061253, acc = 0.835000\n", - "L = 44.899263, acc = 0.840000\n", - "L = 44.742616, acc = 0.840000\n", - "L = 44.591089, acc = 0.840000\n", - "L = 44.444469, acc = 0.840000\n", - "L = 44.302554, acc = 0.835000\n", - "L = 44.165150, acc = 0.835000\n", - "L = 44.032074, acc = 0.835000\n", - "L = 43.903152, acc = 0.835000\n", - "L = 43.778215, acc = 0.835000\n", - "L = 43.657106, acc = 0.835000\n", - "L = 43.539675, acc = 0.835000\n", - "L = 43.425776, acc = 0.835000\n", - "L = 43.315273, acc = 0.835000\n", - "L = 43.208036, acc = 0.835000\n", - "L = 43.103940, acc = 0.835000\n", - "L = 43.002866, acc = 0.835000\n", - "L = 42.904701, acc = 0.835000\n", - "L = 42.809337, acc = 0.840000\n", - "L = 42.716670, acc = 0.840000\n", - "L = 42.626604, acc = 0.840000\n", - "L = 42.539042, acc = 0.840000\n", - "L = 42.453897, acc = 0.840000\n", - "L = 42.371082, acc = 0.840000\n", - "L = 42.290514, acc = 0.840000\n", - "L = 42.212116, acc = 0.840000\n", - "L = 42.135813, acc = 0.840000\n", - "L = 42.061533, acc = 0.840000\n", - "L = 41.989207, acc = 0.840000\n", - "L = 41.918769, acc = 0.840000\n", - "L = 41.850156, acc = 0.840000\n", - "L = 41.783309, acc = 0.840000\n", - "L = 41.718168, acc = 0.840000\n", - "L = 41.654679, acc = 0.840000\n", - "L = 41.592788, acc = 0.840000\n", - "L = 41.532444, acc = 0.840000\n", - "L = 41.473598, acc = 0.840000\n", - "L = 41.416203, acc = 0.840000\n", - "L = 41.360213, acc = 0.840000\n", - "L = 41.305586, acc = 0.840000\n", - "L = 41.252279, acc = 0.840000\n", - "L = 41.200251, acc = 0.840000\n", - "L = 41.149465, acc = 0.840000\n", - "L = 41.099883, acc = 0.840000\n", - "L = 41.051469, acc = 0.840000\n", - "L = 41.004189, acc = 0.840000\n", - "L = 40.958008, acc = 0.840000\n", - "L = 40.912896, acc = 0.840000\n", - "L = 40.868821, acc = 0.840000\n", - "L = 40.825754, acc = 0.840000\n", - "L = 40.783665, acc = 0.840000\n", - "L = 40.742527, acc = 0.840000\n", - "L = 40.702314, acc = 0.840000\n", - "L = 40.662998, acc = 0.840000\n", - "L = 40.624556, acc = 0.840000\n", - "L = 40.586964, acc = 0.840000\n", - "L = 40.550197, acc = 0.840000\n", - "L = 40.514234, acc = 0.840000\n", - "L = 40.479052, acc = 0.845000\n", - "L = 40.444631, acc = 0.845000\n", - "L = 40.410950, acc = 0.845000\n", - "L = 40.377990, acc = 0.845000\n", - "L = 40.345732, acc = 0.845000\n", - "L = 40.314157, acc = 0.845000\n", - "L = 40.283247, acc = 0.845000\n", - "L = 40.252984, acc = 0.845000\n", - "L = 40.223353, acc = 0.845000\n", - "L = 40.194338, acc = 0.845000\n", - "L = 40.165921, acc = 0.845000\n", - "L = 40.138088, acc = 0.845000\n", - "L = 40.110825, acc = 0.845000\n", - "L = 40.084117, acc = 0.845000\n", - "L = 40.057949, acc = 0.845000\n", - "L = 40.032310, acc = 0.845000\n", - "L = 40.007184, acc = 0.845000\n", - "L = 39.982561, acc = 0.845000\n", - "L = 39.958427, acc = 0.845000\n", - "L = 39.934771, acc = 0.845000\n", - "L = 39.911581, acc = 0.850000\n", - "L = 39.888845, acc = 0.850000\n", - "L = 39.866553, acc = 0.850000\n", - "L = 39.844694, acc = 0.850000\n", - "L = 39.823258, acc = 0.850000\n", - "L = 39.802235, acc = 0.850000\n", - "L = 39.781615, acc = 0.850000\n", - "L = 39.761388, acc = 0.850000\n", - "L = 39.741546, acc = 0.850000\n", - "L = 39.722079, acc = 0.850000\n", - "L = 39.702978, acc = 0.850000\n", - "L = 39.684235, acc = 0.850000\n", - "L = 39.665843, acc = 0.850000\n", - "L = 39.647792, acc = 0.850000\n", - "L = 39.630075, acc = 0.850000\n", - "L = 39.612685, acc = 0.850000\n", - "L = 39.595613, acc = 0.850000\n", - "L = 39.578853, acc = 0.850000\n", - "L = 39.562398, acc = 0.850000\n", - "L = 39.546241, acc = 0.850000\n", - "L = 39.530376, acc = 0.850000\n", - "L = 39.514794, acc = 0.850000\n", - "L = 39.499492, acc = 0.850000\n", - "L = 39.484461, acc = 0.855000\n", - "L = 39.469697, acc = 0.855000\n", - "L = 39.455194, acc = 0.855000\n", - "L = 39.440945, acc = 0.855000\n", - "L = 39.426945, acc = 0.855000\n", - "L = 39.413189, acc = 0.855000\n", - "L = 39.399671, acc = 0.855000\n", - "L = 39.386387, acc = 0.855000\n", - "L = 39.373331, acc = 0.855000\n", - "L = 39.360498, acc = 0.855000\n", - "L = 39.347884, acc = 0.855000\n", - "L = 39.335484, acc = 0.855000\n", - "L = 39.323293, acc = 0.855000\n", - "L = 39.311308, acc = 0.855000\n", - "L = 39.299522, acc = 0.855000\n", - "L = 39.287933, acc = 0.855000\n", - "L = 39.276537, acc = 0.855000\n", - "L = 39.265328, acc = 0.855000\n", - "L = 39.254304, acc = 0.855000\n", - "L = 39.243460, acc = 0.855000\n", - "L = 39.232792, acc = 0.855000\n", - "L = 39.222298, acc = 0.855000\n", - "L = 39.211973, acc = 0.855000\n", - "L = 39.201813, acc = 0.855000\n", - "L = 39.191816, acc = 0.855000\n", - "L = 39.181979, acc = 0.855000\n", - "L = 39.172297, acc = 0.855000\n", - "L = 39.162767, acc = 0.855000\n", - "L = 39.153387, acc = 0.855000\n", - "L = 39.144154, acc = 0.855000\n", - "L = 39.135064, acc = 0.855000\n", - "L = 39.126114, acc = 0.855000\n", - "L = 39.117302, acc = 0.855000\n", - "L = 39.108625, acc = 0.855000\n", - "L = 39.100080, acc = 0.855000\n", - "L = 39.091665, acc = 0.855000\n", - "L = 39.083376, acc = 0.855000\n", - "L = 39.075211, acc = 0.855000\n", - "L = 39.067169, acc = 0.855000\n", - "L = 39.059246, acc = 0.855000\n", - "L = 39.051439, acc = 0.855000\n", - "L = 39.043748, acc = 0.855000\n", - "L = 39.036168, acc = 0.855000\n", - "L = 39.028699, acc = 0.855000\n", - "L = 39.021337, acc = 0.855000\n", - "L = 39.014081, acc = 0.855000\n", - "L = 39.006929, acc = 0.855000\n", - "L = 38.999878, acc = 0.855000\n", - "L = 38.992927, acc = 0.855000\n", - "L = 38.986073, acc = 0.855000\n", - "L = 38.979315, acc = 0.855000\n", - "L = 38.972651, acc = 0.855000\n", - "L = 38.966078, acc = 0.855000\n", - "L = 38.959596, acc = 0.855000\n", - "L = 38.953201, acc = 0.855000\n", - "L = 38.946893, acc = 0.855000\n", - "L = 38.940670, acc = 0.855000\n", - "L = 38.934530, acc = 0.855000\n", - "L = 38.928471, acc = 0.855000\n", - "L = 38.922493, acc = 0.855000\n", - "L = 38.916592, acc = 0.855000\n", - "L = 38.910768, acc = 0.855000\n", - "L = 38.905019, acc = 0.855000\n", - "L = 38.899344, acc = 0.855000\n", - "L = 38.893741, acc = 0.855000\n", - "L = 38.888209, acc = 0.855000\n", - "L = 38.882746, acc = 0.855000\n", - "L = 38.877352, acc = 0.855000\n", - "L = 38.872023, acc = 0.855000\n", - "L = 38.866760, acc = 0.855000\n", - "L = 38.861562, acc = 0.855000\n", - "L = 38.856425, acc = 0.855000\n", - "L = 38.851351, acc = 0.855000\n", - "L = 38.846336, acc = 0.855000\n", - "L = 38.841381, acc = 0.855000\n", - "L = 38.836483, acc = 0.855000\n", - "L = 38.831642, acc = 0.855000\n", - "L = 38.826857, acc = 0.855000\n", - "L = 38.822126, acc = 0.855000\n", - "L = 38.817449, acc = 0.855000\n", - "L = 38.812823, acc = 0.855000\n", - "L = 38.808249, acc = 0.855000\n", - "L = 38.803725, acc = 0.855000\n", - "L = 38.799250, acc = 0.855000\n", - "L = 38.794823, acc = 0.855000\n", - "L = 38.790443, acc = 0.855000\n", - "L = 38.786110, acc = 0.855000\n", - "L = 38.781821, acc = 0.855000\n", - "L = 38.777577, acc = 0.855000\n", - "L = 38.773377, acc = 0.855000\n", - "L = 38.769218, acc = 0.855000\n", - "L = 38.765101, acc = 0.855000\n", - "L = 38.761025, acc = 0.855000\n", - "L = 38.756989, acc = 0.855000\n", - "L = 38.752992, acc = 0.855000\n", - "L = 38.749033, acc = 0.855000\n", - "L = 38.745111, acc = 0.855000\n", - "L = 38.741225, acc = 0.855000\n", - "L = 38.737376, acc = 0.855000\n", - "L = 38.733561, acc = 0.855000\n", - "L = 38.729781, acc = 0.855000\n", - "L = 38.726034, acc = 0.855000\n", - "L = 38.722320, acc = 0.855000\n", - "L = 38.718637, acc = 0.855000\n", - "L = 38.714986, acc = 0.855000\n", - "L = 38.711366, acc = 0.855000\n", - "L = 38.707775, acc = 0.855000\n", - "L = 38.704214, acc = 0.855000\n", - "L = 38.700681, acc = 0.855000\n", - "L = 38.697176, acc = 0.855000\n", - "L = 38.693699, acc = 0.855000\n", - "L = 38.690248, acc = 0.855000\n", - "L = 38.686823, acc = 0.855000\n", - "L = 38.683423, acc = 0.855000\n", - "L = 38.680048, acc = 0.855000\n", - "L = 38.676697, acc = 0.850000\n", - "L = 38.673369, acc = 0.850000\n", - "L = 38.670065, acc = 0.850000\n", - "L = 38.666783, acc = 0.845000\n", - "L = 38.663523, acc = 0.850000\n", - "L = 38.660284, acc = 0.850000\n", - "L = 38.657066, acc = 0.850000\n", - "L = 38.653868, acc = 0.850000\n", - "L = 38.650689, acc = 0.850000\n", - "L = 38.647530, acc = 0.850000\n", - "L = 38.644389, acc = 0.850000\n", - "L = 38.641267, acc = 0.850000\n", - "L = 38.638162, acc = 0.850000\n", - "L = 38.635074, acc = 0.850000\n", - "L = 38.632003, acc = 0.850000\n", - "L = 38.628947, acc = 0.850000\n", - "L = 38.625908, acc = 0.850000\n", - "L = 38.622884, acc = 0.850000\n", - "L = 38.619874, acc = 0.850000\n", - "L = 38.616879, acc = 0.850000\n", - "L = 38.613897, acc = 0.850000\n", - "L = 38.610929, acc = 0.850000\n", - "L = 38.607974, acc = 0.850000\n", - "L = 38.605031, acc = 0.850000\n", - "L = 38.602101, acc = 0.850000\n", - "L = 38.599182, acc = 0.850000\n", - "L = 38.596274, acc = 0.850000\n", - "L = 38.593377, acc = 0.850000\n", - "L = 38.590491, acc = 0.850000\n", - "L = 38.587615, acc = 0.850000\n", - "L = 38.584748, acc = 0.850000\n", - "L = 38.581891, acc = 0.850000\n", - "L = 38.579042, acc = 0.850000\n", - "L = 38.576202, acc = 0.850000\n", - "L = 38.573370, acc = 0.850000\n", - "L = 38.570546, acc = 0.850000\n", - "L = 38.567729, acc = 0.850000\n", - "L = 38.564919, acc = 0.850000\n", - "L = 38.562116, acc = 0.850000\n", - "L = 38.559319, acc = 0.850000\n", - "L = 38.556528, acc = 0.850000\n", - "L = 38.553743, acc = 0.850000\n", - "L = 38.550963, acc = 0.850000\n", - "L = 38.548188, acc = 0.850000\n", - "L = 38.545417, acc = 0.850000\n", - "L = 38.542651, acc = 0.850000\n", - "L = 38.539889, acc = 0.850000\n", - "L = 38.537131, acc = 0.850000\n", - "L = 38.534375, acc = 0.850000\n", - "L = 38.531623, acc = 0.850000\n", - "L = 38.528874, acc = 0.850000\n", - "L = 38.526127, acc = 0.850000\n", - "L = 38.523382, acc = 0.850000\n", - "L = 38.520638, acc = 0.850000\n", - "L = 38.517897, acc = 0.850000\n", - "L = 38.515156, acc = 0.850000\n", - "L = 38.512416, acc = 0.850000\n", - "L = 38.509677, acc = 0.850000\n", - "L = 38.506939, acc = 0.850000\n", - "L = 38.504200, acc = 0.850000\n", - "L = 38.501461, acc = 0.850000\n", - "L = 38.498722, acc = 0.850000\n", - "L = 38.495982, acc = 0.850000\n", - "L = 38.493241, acc = 0.850000\n", - "L = 38.490498, acc = 0.850000\n", - "L = 38.487754, acc = 0.850000\n", - "L = 38.485009, acc = 0.850000\n", - "L = 38.482261, acc = 0.850000\n", - "L = 38.479510, acc = 0.850000\n", - "L = 38.476758, acc = 0.850000\n", - "L = 38.474002, acc = 0.850000\n", - "L = 38.471243, acc = 0.850000\n", - "L = 38.468481, acc = 0.850000\n", - "L = 38.465715, acc = 0.850000\n", - "L = 38.462946, acc = 0.850000\n", - "L = 38.460172, acc = 0.850000\n", - "L = 38.457394, acc = 0.850000\n", - "L = 38.454612, acc = 0.850000\n", - "L = 38.451825, acc = 0.850000\n", - "L = 38.449033, acc = 0.850000\n", - "L = 38.446235, acc = 0.850000\n", - "L = 38.443432, acc = 0.855000\n", - "L = 38.440624, acc = 0.855000\n", - "L = 38.437809, acc = 0.855000\n", - "L = 38.434989, acc = 0.855000\n", - "L = 38.432162, acc = 0.855000\n", - "L = 38.429329, acc = 0.855000\n", - "L = 38.426489, acc = 0.855000\n", - "L = 38.423642, acc = 0.855000\n", - "L = 38.420787, acc = 0.855000\n", - "L = 38.417926, acc = 0.855000\n", - "L = 38.415056, acc = 0.855000\n", - "L = 38.412179, acc = 0.855000\n", - "L = 38.409294, acc = 0.855000\n", - "L = 38.406401, acc = 0.855000\n", - "L = 38.403500, acc = 0.855000\n", - "L = 38.400590, acc = 0.855000\n", - "L = 38.397671, acc = 0.855000\n", - "L = 38.394743, acc = 0.855000\n", - "L = 38.391806, acc = 0.855000\n", - "L = 38.388859, acc = 0.855000\n", - "L = 38.385904, acc = 0.855000\n", - "L = 38.382938, acc = 0.855000\n", - "L = 38.379962, acc = 0.855000\n", - "L = 38.376977, acc = 0.855000\n", - "L = 38.373981, acc = 0.855000\n", - "L = 38.370975, acc = 0.860000\n", - "L = 38.367958, acc = 0.860000\n", - "L = 38.364930, acc = 0.860000\n", - "L = 38.361891, acc = 0.860000\n", - "L = 38.358842, acc = 0.860000\n", - "L = 38.355780, acc = 0.860000\n", - "L = 38.352708, acc = 0.860000\n", - "L = 38.349624, acc = 0.860000\n", - "L = 38.346527, acc = 0.860000\n", - "L = 38.343419, acc = 0.860000\n", - "L = 38.340299, acc = 0.860000\n", - "L = 38.337167, acc = 0.860000\n", - "L = 38.334022, acc = 0.860000\n", - "L = 38.330864, acc = 0.860000\n", - "L = 38.327694, acc = 0.860000\n", - "L = 38.324510, acc = 0.860000\n", - "L = 38.321314, acc = 0.860000\n", - "L = 38.318104, acc = 0.860000\n", - "L = 38.314881, acc = 0.860000\n", - "L = 38.311645, acc = 0.860000\n", - "L = 38.308394, acc = 0.860000\n", - "L = 38.305130, acc = 0.860000\n", - "L = 38.301852, acc = 0.865000\n", - "L = 38.298560, acc = 0.865000\n", - "L = 38.295253, acc = 0.865000\n", - "L = 38.291932, acc = 0.865000\n", - "L = 38.288597, acc = 0.865000\n", - "L = 38.285246, acc = 0.865000\n", - "L = 38.281881, acc = 0.865000\n", - "L = 38.278501, acc = 0.865000\n", - "L = 38.275106, acc = 0.865000\n", - "L = 38.271695, acc = 0.865000\n", - "L = 38.268269, acc = 0.865000\n", - "L = 38.264828, acc = 0.865000\n", - "L = 38.261370, acc = 0.865000\n", - "L = 38.257897, acc = 0.865000\n", - "L = 38.254408, acc = 0.865000\n", - "L = 38.250903, acc = 0.865000\n", - "L = 38.247382, acc = 0.865000\n", - "L = 38.243844, acc = 0.865000\n", - "L = 38.240290, acc = 0.865000\n", - "L = 38.236720, acc = 0.865000\n", - "L = 38.233133, acc = 0.865000\n", - "L = 38.229528, acc = 0.865000\n", - "L = 38.225907, acc = 0.865000\n", - "L = 38.222269, acc = 0.865000\n", - "L = 38.218614, acc = 0.865000\n", - "L = 38.214941, acc = 0.865000\n", - "L = 38.211251, acc = 0.865000\n", - "L = 38.207543, acc = 0.865000\n", - "L = 38.203818, acc = 0.865000\n", - "L = 38.200074, acc = 0.865000\n", - "L = 38.196313, acc = 0.865000\n", - "L = 38.192534, acc = 0.865000\n", - "L = 38.188737, acc = 0.865000\n", - "L = 38.184921, acc = 0.865000\n", - "L = 38.181087, acc = 0.865000\n", - "L = 38.177235, acc = 0.865000\n", - "L = 38.173364, acc = 0.865000\n", - "L = 38.169474, acc = 0.865000\n", - "L = 38.165565, acc = 0.865000\n", - "L = 38.161637, acc = 0.865000\n", - "L = 38.157691, acc = 0.865000\n", - "L = 38.153725, acc = 0.865000\n", - "L = 38.149740, acc = 0.865000\n", - "L = 38.145735, acc = 0.865000\n", - "L = 38.141711, acc = 0.865000\n", - "L = 38.137668, acc = 0.865000\n", - "L = 38.133604, acc = 0.865000\n", - "L = 38.129521, acc = 0.865000\n", - "L = 38.125418, acc = 0.865000\n", - "L = 38.121295, acc = 0.865000\n", - "L = 38.117152, acc = 0.865000\n", - "L = 38.112988, acc = 0.865000\n", - "L = 38.108804, acc = 0.865000\n", - "L = 38.104600, acc = 0.865000\n", - "L = 38.100375, acc = 0.865000\n", - "L = 38.096130, acc = 0.865000\n", - "L = 38.091863, acc = 0.865000\n", - "L = 38.087576, acc = 0.865000\n", - "L = 38.083268, acc = 0.865000\n", - "L = 38.078938, acc = 0.865000\n", - "L = 38.074588, acc = 0.865000\n", - "L = 38.070216, acc = 0.865000\n", - "L = 38.065823, acc = 0.865000\n", - "L = 38.061408, acc = 0.865000\n", - "L = 38.056972, acc = 0.865000\n", - "L = 38.052514, acc = 0.865000\n", - "L = 38.048034, acc = 0.865000\n", - "L = 38.043532, acc = 0.865000\n", - "L = 38.039009, acc = 0.865000\n", - "L = 38.034463, acc = 0.860000\n", - "L = 38.029894, acc = 0.860000\n", - "L = 38.025304, acc = 0.860000\n", - "L = 38.020691, acc = 0.860000\n", - "L = 38.016056, acc = 0.860000\n", - "L = 38.011397, acc = 0.860000\n", - "L = 38.006717, acc = 0.860000\n", - "L = 38.002013, acc = 0.860000\n", - "L = 37.997286, acc = 0.860000\n", - "L = 37.992536, acc = 0.860000\n", - "L = 37.987763, acc = 0.860000\n", - "L = 37.982967, acc = 0.860000\n", - "L = 37.978147, acc = 0.860000\n", - "L = 37.973304, acc = 0.860000\n", - "L = 37.968438, acc = 0.860000\n", - "L = 37.963547, acc = 0.860000\n", - "L = 37.958633, acc = 0.860000\n", - "L = 37.953695, acc = 0.860000\n", - "L = 37.948733, acc = 0.860000\n", - "L = 37.943746, acc = 0.860000\n", - "L = 37.938736, acc = 0.860000\n", - "L = 37.933701, acc = 0.860000\n", - "L = 37.928641, acc = 0.860000\n", - "L = 37.923557, acc = 0.860000\n", - "L = 37.918449, acc = 0.860000\n", - "L = 37.913315, acc = 0.860000\n", - "L = 37.908157, acc = 0.860000\n", - "L = 37.902973, acc = 0.860000\n", - "L = 37.897765, acc = 0.860000\n", - "L = 37.892531, acc = 0.860000\n", - "L = 37.887272, acc = 0.860000\n", - "L = 37.881987, acc = 0.860000\n", - "L = 37.876677, acc = 0.860000\n", - "L = 37.871341, acc = 0.860000\n", - "L = 37.865979, acc = 0.860000\n", - "L = 37.860592, acc = 0.860000\n", - "L = 37.855178, acc = 0.860000\n", - "L = 37.849738, acc = 0.860000\n", - "L = 37.844272, acc = 0.860000\n", - "L = 37.838779, acc = 0.860000\n", - "L = 37.833260, acc = 0.860000\n", - "L = 37.827714, acc = 0.860000\n", - "L = 37.822141, acc = 0.860000\n", - "L = 37.816542, acc = 0.860000\n", - "L = 37.810915, acc = 0.860000\n", - "L = 37.805261, acc = 0.860000\n", - "L = 37.799580, acc = 0.860000\n", - "L = 37.793872, acc = 0.860000\n", - "L = 37.788136, acc = 0.860000\n", - "L = 37.782373, acc = 0.860000\n", - "L = 37.776581, acc = 0.860000\n", - "L = 37.770762, acc = 0.860000\n", - "L = 37.764914, acc = 0.860000\n", - "L = 37.759039, acc = 0.860000\n", - "L = 37.753135, acc = 0.860000\n", - "L = 37.747203, acc = 0.860000\n", - "L = 37.741242, acc = 0.860000\n", - "L = 37.735252, acc = 0.860000\n", - "L = 37.729234, acc = 0.865000\n", - "L = 37.723187, acc = 0.865000\n", - "L = 37.717110, acc = 0.865000\n", - "L = 37.711005, acc = 0.865000\n", - "L = 37.704870, acc = 0.865000\n", - "L = 37.698705, acc = 0.865000\n", - "L = 37.692511, acc = 0.865000\n", - "L = 37.686287, acc = 0.865000\n", - "L = 37.680033, acc = 0.865000\n", - "L = 37.673749, acc = 0.865000\n", - "L = 37.667434, acc = 0.865000\n", - "L = 37.661090, acc = 0.865000\n", - "L = 37.654714, acc = 0.865000\n", - "L = 37.648309, acc = 0.865000\n", - "L = 37.641872, acc = 0.865000\n", - "L = 37.635404, acc = 0.865000\n", - "L = 37.628906, acc = 0.865000\n", - "L = 37.622376, acc = 0.865000\n", - "L = 37.615814, acc = 0.865000\n", - "L = 37.609222, acc = 0.865000\n", - "L = 37.602597, acc = 0.865000\n", - "L = 37.595941, acc = 0.865000\n", - "L = 37.589252, acc = 0.865000\n", - "L = 37.582532, acc = 0.865000\n", - "L = 37.575779, acc = 0.865000\n", - "L = 37.568994, acc = 0.865000\n", - "L = 37.562176, acc = 0.865000\n", - "L = 37.555325, acc = 0.865000\n", - "L = 37.548442, acc = 0.865000\n", - "L = 37.541525, acc = 0.865000\n", - "L = 37.534575, acc = 0.865000\n", - "L = 37.527592, acc = 0.865000\n", - "L = 37.520575, acc = 0.865000\n", - "L = 37.513525, acc = 0.865000\n", - "L = 37.506441, acc = 0.865000\n", - "L = 37.499322, acc = 0.865000\n", - "L = 37.492170, acc = 0.865000\n", - "L = 37.484983, acc = 0.865000\n", - "L = 37.477762, acc = 0.865000\n", - "L = 37.470506, acc = 0.865000\n", - "L = 37.463215, acc = 0.865000\n", - "L = 37.455889, acc = 0.865000\n", - "L = 37.448528, acc = 0.865000\n", - "L = 37.441132, acc = 0.865000\n", - "L = 37.433700, acc = 0.865000\n", - "L = 37.426233, acc = 0.865000\n", - "L = 37.418730, acc = 0.865000\n", - "L = 37.411191, acc = 0.865000\n", - "L = 37.403616, acc = 0.865000\n", - "L = 37.396004, acc = 0.865000\n", - "L = 37.388356, acc = 0.865000\n", - "L = 37.380672, acc = 0.865000\n" + "L = 121.621107, acc = 0.500000\n", + "L = 115.928422, acc = 0.500000\n", + "L = 111.304997, acc = 0.500000\n", + "L = 107.789222, acc = 0.500000\n", + "L = 105.265297, acc = 0.500000\n", + "L = 103.533617, acc = 0.500000\n", + "L = 102.380546, acc = 0.500000\n", + "L = 101.622557, acc = 0.500000\n", + "L = 101.121698, acc = 0.500000\n", + "L = 100.782803, acc = 0.510000\n", + "L = 100.543751, acc = 0.530000\n", + "L = 100.365372, acc = 0.540000\n", + "L = 100.223492, acc = 0.520000\n", + "L = 100.103371, acc = 0.475000\n", + "L = 99.996073, acc = 0.460000\n", + "L = 99.896185, acc = 0.465000\n", + "L = 99.800411, acc = 0.465000\n", + "L = 99.706725, acc = 0.495000\n", + "L = 99.613854, acc = 0.515000\n", + "L = 99.520981, acc = 0.560000\n", + "L = 99.427551, acc = 0.585000\n", + "L = 99.333171, acc = 0.630000\n", + "L = 99.237541, acc = 0.660000\n", + "L = 99.140415, acc = 0.690000\n", + "L = 99.041582, acc = 0.705000\n", + "L = 98.940844, acc = 0.710000\n", + "L = 98.838015, acc = 0.720000\n", + "L = 98.732913, acc = 0.740000\n", + "L = 98.625357, acc = 0.745000\n", + "L = 98.515164, acc = 0.755000\n", + "L = 98.402148, acc = 0.785000\n", + "L = 98.286120, acc = 0.790000\n", + "L = 98.166887, acc = 0.800000\n", + "L = 98.044250, acc = 0.800000\n", + "L = 97.918005, acc = 0.805000\n", + "L = 97.787942, acc = 0.815000\n", + "L = 97.653845, acc = 0.830000\n", + "L = 97.515489, acc = 0.830000\n", + "L = 97.372644, acc = 0.830000\n", + "L = 97.225071, acc = 0.830000\n", + "L = 97.072523, acc = 0.830000\n", + "L = 96.914745, acc = 0.835000\n", + "L = 96.751472, acc = 0.835000\n", + "L = 96.582430, acc = 0.835000\n", + "L = 96.407335, acc = 0.835000\n", + "L = 96.225894, acc = 0.835000\n", + "L = 96.037800, acc = 0.835000\n", + "L = 95.842740, acc = 0.835000\n", + "L = 95.640384, acc = 0.835000\n", + "L = 95.430396, acc = 0.835000\n", + "L = 95.212423, acc = 0.835000\n", + "L = 94.986104, acc = 0.830000\n", + "L = 94.751064, acc = 0.830000\n", + "L = 94.506915, acc = 0.830000\n", + "L = 94.253259, acc = 0.830000\n", + "L = 93.989683, acc = 0.830000\n", + "L = 93.715765, acc = 0.830000\n", + "L = 93.431069, acc = 0.830000\n", + "L = 93.135151, acc = 0.830000\n", + "L = 92.827554, acc = 0.830000\n", + "L = 92.507814, acc = 0.830000\n", + "L = 92.175457, acc = 0.830000\n", + "L = 91.830004, acc = 0.835000\n", + "L = 91.470973, acc = 0.835000\n", + "L = 91.097875, acc = 0.835000\n", + "L = 90.710225, acc = 0.840000\n", + "L = 90.307539, acc = 0.845000\n", + "L = 89.889339, acc = 0.845000\n", + "L = 89.455160, acc = 0.845000\n", + "L = 89.004546, acc = 0.840000\n", + "L = 88.537066, acc = 0.840000\n", + "L = 88.052308, acc = 0.840000\n", + "L = 87.549895, acc = 0.840000\n", + "L = 87.029483, acc = 0.845000\n", + "L = 86.490773, acc = 0.845000\n", + "L = 85.933518, acc = 0.845000\n", + "L = 85.357526, acc = 0.845000\n", + "L = 84.762674, acc = 0.845000\n", + "L = 84.148911, acc = 0.845000\n", + "L = 83.516272, acc = 0.845000\n", + "L = 82.864878, acc = 0.845000\n", + "L = 82.194952, acc = 0.845000\n", + "L = 81.506820, acc = 0.840000\n", + "L = 80.800921, acc = 0.840000\n", + "L = 80.077810, acc = 0.840000\n", + "L = 79.338167, acc = 0.840000\n", + "L = 78.582791, acc = 0.840000\n", + "L = 77.812612, acc = 0.840000\n", + "L = 77.028680, acc = 0.840000\n", + "L = 76.232171, acc = 0.840000\n", + "L = 75.424374, acc = 0.840000\n", + "L = 74.606691, acc = 0.840000\n", + "L = 73.780620, acc = 0.840000\n", + "L = 72.947751, acc = 0.840000\n", + "L = 72.109745, acc = 0.840000\n", + "L = 71.268324, acc = 0.840000\n", + "L = 70.425252, acc = 0.840000\n", + "L = 69.582316, acc = 0.840000\n", + "L = 68.741307, acc = 0.840000\n", + "L = 67.904004, acc = 0.840000\n", + "L = 67.072151, acc = 0.840000\n", + "L = 66.247442, acc = 0.840000\n", + "L = 65.431502, acc = 0.840000\n", + "L = 64.625872, acc = 0.840000\n", + "L = 63.831996, acc = 0.840000\n", + "L = 63.051206, acc = 0.840000\n", + "L = 62.284717, acc = 0.840000\n", + "L = 61.533617, acc = 0.840000\n", + "L = 60.798864, acc = 0.840000\n", + "L = 60.081280, acc = 0.840000\n", + "L = 59.381556, acc = 0.840000\n", + "L = 58.700250, acc = 0.840000\n", + "L = 58.037794, acc = 0.840000\n", + "L = 57.394496, acc = 0.840000\n", + "L = 56.770551, acc = 0.840000\n", + "L = 56.166043, acc = 0.840000\n", + "L = 55.580959, acc = 0.840000\n", + "L = 55.015197, acc = 0.840000\n", + "L = 54.468573, acc = 0.840000\n", + "L = 53.940833, acc = 0.840000\n", + "L = 53.431659, acc = 0.840000\n", + "L = 52.940684, acc = 0.840000\n", + "L = 52.467494, acc = 0.840000\n", + "L = 52.011639, acc = 0.840000\n", + "L = 51.572642, acc = 0.840000\n", + "L = 51.150004, acc = 0.840000\n", + "L = 50.743209, acc = 0.840000\n", + "L = 50.351731, acc = 0.840000\n", + "L = 49.975042, acc = 0.840000\n", + "L = 49.612610, acc = 0.835000\n", + "L = 49.263906, acc = 0.835000\n", + "L = 48.928410, acc = 0.840000\n", + "L = 48.605606, acc = 0.840000\n", + "L = 48.294993, acc = 0.840000\n", + "L = 47.996079, acc = 0.840000\n", + "L = 47.708390, acc = 0.840000\n", + "L = 47.431462, acc = 0.840000\n", + "L = 47.164849, acc = 0.840000\n", + "L = 46.908123, acc = 0.840000\n", + "L = 46.660868, acc = 0.840000\n", + "L = 46.422687, acc = 0.840000\n", + "L = 46.193200, acc = 0.840000\n", + "L = 45.972040, acc = 0.840000\n", + "L = 45.758860, acc = 0.840000\n", + "L = 45.553325, acc = 0.840000\n", + "L = 45.355116, acc = 0.840000\n", + "L = 45.163929, acc = 0.835000\n", + "L = 44.979474, acc = 0.835000\n", + "L = 44.801473, acc = 0.835000\n", + "L = 44.629662, acc = 0.835000\n", + "L = 44.463789, acc = 0.835000\n", + "L = 44.303614, acc = 0.835000\n", + "L = 44.148907, acc = 0.835000\n", + "L = 43.999451, acc = 0.835000\n", + "L = 43.855036, acc = 0.835000\n", + "L = 43.715465, acc = 0.835000\n", + "L = 43.580546, acc = 0.835000\n", + "L = 43.450099, acc = 0.835000\n", + "L = 43.323950, acc = 0.835000\n", + "L = 43.201935, acc = 0.835000\n", + "L = 43.083894, acc = 0.835000\n", + "L = 42.969678, acc = 0.835000\n", + "L = 42.859141, acc = 0.835000\n", + "L = 42.752145, acc = 0.835000\n", + "L = 42.648557, acc = 0.835000\n", + "L = 42.548251, acc = 0.835000\n", + "L = 42.451106, acc = 0.835000\n", + "L = 42.357004, acc = 0.835000\n", + "L = 42.265834, acc = 0.835000\n", + "L = 42.177489, acc = 0.835000\n", + "L = 42.091866, acc = 0.845000\n", + "L = 42.008866, acc = 0.845000\n", + "L = 41.928395, acc = 0.845000\n", + "L = 41.850363, acc = 0.845000\n", + "L = 41.774680, acc = 0.845000\n", + "L = 41.701264, acc = 0.845000\n", + "L = 41.630034, acc = 0.845000\n", + "L = 41.560912, acc = 0.845000\n", + "L = 41.493823, acc = 0.845000\n", + "L = 41.428697, acc = 0.845000\n", + "L = 41.365463, acc = 0.845000\n", + "L = 41.304056, acc = 0.850000\n", + "L = 41.244412, acc = 0.850000\n", + "L = 41.186469, acc = 0.850000\n", + "L = 41.130168, acc = 0.850000\n", + "L = 41.075452, acc = 0.850000\n", + "L = 41.022266, acc = 0.850000\n", + "L = 40.970558, acc = 0.850000\n", + "L = 40.920276, acc = 0.850000\n", + "L = 40.871372, acc = 0.850000\n", + "L = 40.823798, acc = 0.850000\n", + "L = 40.777509, acc = 0.850000\n", + "L = 40.732461, acc = 0.855000\n", + "L = 40.688613, acc = 0.855000\n", + "L = 40.645922, acc = 0.855000\n", + "L = 40.604351, acc = 0.855000\n", + "L = 40.563861, acc = 0.855000\n", + "L = 40.524415, acc = 0.855000\n", + "L = 40.485980, acc = 0.855000\n", + "L = 40.448521, acc = 0.855000\n", + "L = 40.412004, acc = 0.855000\n", + "L = 40.376400, acc = 0.855000\n", + "L = 40.341678, acc = 0.855000\n", + "L = 40.307807, acc = 0.855000\n", + "L = 40.274761, acc = 0.855000\n", + "L = 40.242511, acc = 0.855000\n", + "L = 40.211032, acc = 0.855000\n", + "L = 40.180297, acc = 0.855000\n", + "L = 40.150284, acc = 0.855000\n", + "L = 40.120967, acc = 0.855000\n", + "L = 40.092325, acc = 0.855000\n", + "L = 40.064334, acc = 0.855000\n", + "L = 40.036975, acc = 0.855000\n", + "L = 40.010226, acc = 0.855000\n", + "L = 39.984068, acc = 0.855000\n", + "L = 39.958481, acc = 0.855000\n", + "L = 39.933446, acc = 0.855000\n", + "L = 39.908947, acc = 0.855000\n", + "L = 39.884966, acc = 0.855000\n", + "L = 39.861486, acc = 0.855000\n", + "L = 39.838490, acc = 0.855000\n", + "L = 39.815964, acc = 0.855000\n", + "L = 39.793892, acc = 0.855000\n", + "L = 39.772260, acc = 0.855000\n", + "L = 39.751053, acc = 0.855000\n", + "L = 39.730259, acc = 0.855000\n", + "L = 39.709863, acc = 0.855000\n", + "L = 39.689852, acc = 0.855000\n", + "L = 39.670216, acc = 0.855000\n", + "L = 39.650941, acc = 0.855000\n", + "L = 39.632017, acc = 0.855000\n", + "L = 39.613431, acc = 0.855000\n", + "L = 39.595173, acc = 0.855000\n", + "L = 39.577233, acc = 0.855000\n", + "L = 39.559600, acc = 0.855000\n", + "L = 39.542265, acc = 0.855000\n", + "L = 39.525218, acc = 0.855000\n", + "L = 39.508449, acc = 0.855000\n", + "L = 39.491950, acc = 0.855000\n", + "L = 39.475713, acc = 0.855000\n", + "L = 39.459727, acc = 0.855000\n", + "L = 39.443987, acc = 0.855000\n", + "L = 39.428483, acc = 0.855000\n", + "L = 39.413208, acc = 0.855000\n", + "L = 39.398154, acc = 0.855000\n", + "L = 39.383314, acc = 0.855000\n", + "L = 39.368682, acc = 0.855000\n", + "L = 39.354250, acc = 0.855000\n", + "L = 39.340012, acc = 0.855000\n", + "L = 39.325961, acc = 0.860000\n", + "L = 39.312091, acc = 0.860000\n", + "L = 39.298397, acc = 0.860000\n", + "L = 39.284872, acc = 0.860000\n", + "L = 39.271510, acc = 0.860000\n", + "L = 39.258306, acc = 0.860000\n", + "L = 39.245255, acc = 0.860000\n", + "L = 39.232351, acc = 0.860000\n", + "L = 39.219590, acc = 0.860000\n", + "L = 39.206966, acc = 0.860000\n", + "L = 39.194474, acc = 0.860000\n", + "L = 39.182111, acc = 0.860000\n", + "L = 39.169870, acc = 0.860000\n", + "L = 39.157749, acc = 0.860000\n", + "L = 39.145742, acc = 0.860000\n", + "L = 39.133846, acc = 0.850000\n", + "L = 39.122056, acc = 0.850000\n", + "L = 39.110369, acc = 0.850000\n", + "L = 39.098780, acc = 0.850000\n", + "L = 39.087286, acc = 0.850000\n", + "L = 39.075884, acc = 0.850000\n", + "L = 39.064569, acc = 0.850000\n", + "L = 39.053338, acc = 0.850000\n", + "L = 39.042188, acc = 0.850000\n", + "L = 39.031116, acc = 0.850000\n", + "L = 39.020118, acc = 0.850000\n", + "L = 39.009191, acc = 0.850000\n", + "L = 38.998332, acc = 0.850000\n", + "L = 38.987539, acc = 0.850000\n", + "L = 38.976808, acc = 0.850000\n", + "L = 38.966136, acc = 0.850000\n", + "L = 38.955522, acc = 0.850000\n", + "L = 38.944961, acc = 0.850000\n", + "L = 38.934453, acc = 0.850000\n", + "L = 38.923993, acc = 0.855000\n", + "L = 38.913579, acc = 0.855000\n", + "L = 38.903210, acc = 0.855000\n", + "L = 38.892883, acc = 0.855000\n", + "L = 38.882595, acc = 0.855000\n", + "L = 38.872344, acc = 0.855000\n", + "L = 38.862129, acc = 0.855000\n", + "L = 38.851946, acc = 0.855000\n", + "L = 38.841794, acc = 0.855000\n", + "L = 38.831671, acc = 0.855000\n", + "L = 38.821574, acc = 0.855000\n", + "L = 38.811503, acc = 0.855000\n", + "L = 38.801454, acc = 0.855000\n", + "L = 38.791426, acc = 0.855000\n", + "L = 38.781418, acc = 0.855000\n", + "L = 38.771427, acc = 0.855000\n", + "L = 38.761452, acc = 0.855000\n", + "L = 38.751491, acc = 0.855000\n", + "L = 38.741542, acc = 0.855000\n", + "L = 38.731604, acc = 0.855000\n", + "L = 38.721676, acc = 0.855000\n", + "L = 38.711755, acc = 0.855000\n", + "L = 38.701840, acc = 0.855000\n", + "L = 38.691929, acc = 0.855000\n", + "L = 38.682022, acc = 0.855000\n", + "L = 38.672117, acc = 0.855000\n", + "L = 38.662212, acc = 0.855000\n", + "L = 38.652306, acc = 0.855000\n", + "L = 38.642397, acc = 0.855000\n", + "L = 38.632485, acc = 0.855000\n", + "L = 38.622568, acc = 0.855000\n", + "L = 38.612645, acc = 0.855000\n", + "L = 38.602715, acc = 0.855000\n", + "L = 38.592775, acc = 0.855000\n", + "L = 38.582826, acc = 0.855000\n", + "L = 38.572866, acc = 0.855000\n", + "L = 38.562894, acc = 0.855000\n", + "L = 38.552908, acc = 0.855000\n", + "L = 38.542908, acc = 0.855000\n", + "L = 38.532892, acc = 0.855000\n", + "L = 38.522860, acc = 0.855000\n", + "L = 38.512811, acc = 0.855000\n", + "L = 38.502742, acc = 0.855000\n", + "L = 38.492655, acc = 0.855000\n", + "L = 38.482546, acc = 0.855000\n", + "L = 38.472416, acc = 0.855000\n", + "L = 38.462263, acc = 0.855000\n", + "L = 38.452087, acc = 0.855000\n", + "L = 38.441886, acc = 0.855000\n", + "L = 38.431660, acc = 0.855000\n", + "L = 38.421407, acc = 0.855000\n", + "L = 38.411128, acc = 0.855000\n", + "L = 38.400820, acc = 0.855000\n", + "L = 38.390483, acc = 0.855000\n", + "L = 38.380116, acc = 0.855000\n", + "L = 38.369719, acc = 0.855000\n", + "L = 38.359290, acc = 0.855000\n", + "L = 38.348829, acc = 0.855000\n", + "L = 38.338334, acc = 0.855000\n", + "L = 38.327806, acc = 0.855000\n", + "L = 38.317242, acc = 0.855000\n", + "L = 38.306643, acc = 0.855000\n", + "L = 38.296008, acc = 0.855000\n", + "L = 38.285335, acc = 0.855000\n", + "L = 38.274625, acc = 0.855000\n", + "L = 38.263875, acc = 0.855000\n", + "L = 38.253086, acc = 0.855000\n", + "L = 38.242257, acc = 0.855000\n", + "L = 38.231387, acc = 0.855000\n", + "L = 38.220475, acc = 0.855000\n", + "L = 38.209520, acc = 0.855000\n", + "L = 38.198523, acc = 0.855000\n", + "L = 38.187481, acc = 0.855000\n", + "L = 38.176394, acc = 0.855000\n", + "L = 38.165262, acc = 0.855000\n", + "L = 38.154084, acc = 0.855000\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "L = 38.142859, acc = 0.855000\n", + "L = 38.131586, acc = 0.855000\n", + "L = 38.120265, acc = 0.855000\n", + "L = 38.108895, acc = 0.855000\n", + "L = 38.097475, acc = 0.855000\n", + "L = 38.086004, acc = 0.855000\n", + "L = 38.074483, acc = 0.855000\n", + "L = 38.062909, acc = 0.855000\n", + "L = 38.051283, acc = 0.855000\n", + "L = 38.039603, acc = 0.855000\n", + "L = 38.027870, acc = 0.855000\n", + "L = 38.016082, acc = 0.855000\n", + "L = 38.004238, acc = 0.855000\n", + "L = 37.992338, acc = 0.860000\n", + "L = 37.980381, acc = 0.860000\n", + "L = 37.968367, acc = 0.860000\n", + "L = 37.956295, acc = 0.860000\n", + "L = 37.944163, acc = 0.860000\n", + "L = 37.931972, acc = 0.860000\n", + "L = 37.919720, acc = 0.860000\n", + "L = 37.907408, acc = 0.860000\n", + "L = 37.895033, acc = 0.860000\n", + "L = 37.882596, acc = 0.860000\n", + "L = 37.870096, acc = 0.860000\n", + "L = 37.857532, acc = 0.860000\n", + "L = 37.844903, acc = 0.860000\n", + "L = 37.832209, acc = 0.860000\n", + "L = 37.819448, acc = 0.860000\n", + "L = 37.806621, acc = 0.860000\n", + "L = 37.793727, acc = 0.860000\n", + "L = 37.780763, acc = 0.860000\n", + "L = 37.767731, acc = 0.860000\n", + "L = 37.754630, acc = 0.860000\n", + "L = 37.741457, acc = 0.860000\n", + "L = 37.728214, acc = 0.865000\n", + "L = 37.714898, acc = 0.865000\n", + "L = 37.701510, acc = 0.865000\n", + "L = 37.688048, acc = 0.865000\n", + "L = 37.674512, acc = 0.865000\n", + "L = 37.660902, acc = 0.865000\n", + "L = 37.647215, acc = 0.865000\n", + "L = 37.633452, acc = 0.865000\n", + "L = 37.619612, acc = 0.865000\n", + "L = 37.605693, acc = 0.865000\n", + "L = 37.591696, acc = 0.865000\n", + "L = 37.577620, acc = 0.865000\n", + "L = 37.563463, acc = 0.865000\n", + "L = 37.549225, acc = 0.870000\n", + "L = 37.534905, acc = 0.865000\n", + "L = 37.520503, acc = 0.865000\n", + "L = 37.506017, acc = 0.865000\n", + "L = 37.491447, acc = 0.865000\n", + "L = 37.476792, acc = 0.865000\n", + "L = 37.462052, acc = 0.865000\n", + "L = 37.447224, acc = 0.865000\n", + "L = 37.432310, acc = 0.865000\n", + "L = 37.417307, acc = 0.865000\n", + "L = 37.402215, acc = 0.865000\n", + "L = 37.387033, acc = 0.865000\n", + "L = 37.371761, acc = 0.865000\n", + "L = 37.356398, acc = 0.865000\n", + "L = 37.340942, acc = 0.865000\n", + "L = 37.325393, acc = 0.865000\n", + "L = 37.309751, acc = 0.865000\n", + "L = 37.294013, acc = 0.865000\n", + "L = 37.278181, acc = 0.865000\n", + "L = 37.262252, acc = 0.865000\n", + "L = 37.246226, acc = 0.865000\n", + "L = 37.230101, acc = 0.865000\n", + "L = 37.213879, acc = 0.865000\n", + "L = 37.197556, acc = 0.865000\n", + "L = 37.181133, acc = 0.865000\n", + "L = 37.164609, acc = 0.865000\n", + "L = 37.147983, acc = 0.865000\n", + "L = 37.131254, acc = 0.865000\n", + "L = 37.114421, acc = 0.865000\n", + "L = 37.097483, acc = 0.865000\n", + "L = 37.080440, acc = 0.865000\n", + "L = 37.063291, acc = 0.865000\n", + "L = 37.046035, acc = 0.865000\n", + "L = 37.028670, acc = 0.865000\n", + "L = 37.011197, acc = 0.865000\n", + "L = 36.993614, acc = 0.865000\n", + "L = 36.975921, acc = 0.865000\n", + "L = 36.958116, acc = 0.865000\n", + "L = 36.940199, acc = 0.865000\n", + "L = 36.922169, acc = 0.865000\n", + "L = 36.904025, acc = 0.865000\n", + "L = 36.885767, acc = 0.865000\n", + "L = 36.867393, acc = 0.870000\n", + "L = 36.848902, acc = 0.870000\n", + "L = 36.830294, acc = 0.870000\n", + "L = 36.811568, acc = 0.870000\n", + "L = 36.792724, acc = 0.870000\n", + "L = 36.773759, acc = 0.870000\n", + "L = 36.754674, acc = 0.870000\n", + "L = 36.735467, acc = 0.870000\n", + "L = 36.716138, acc = 0.870000\n", + "L = 36.696686, acc = 0.870000\n", + "L = 36.677111, acc = 0.870000\n", + "L = 36.657410, acc = 0.870000\n", + "L = 36.637584, acc = 0.870000\n", + "L = 36.617631, acc = 0.870000\n", + "L = 36.597551, acc = 0.870000\n", + "L = 36.577343, acc = 0.870000\n", + "L = 36.557006, acc = 0.870000\n", + "L = 36.536540, acc = 0.870000\n", + "L = 36.515943, acc = 0.875000\n", + "L = 36.495215, acc = 0.875000\n", + "L = 36.474354, acc = 0.875000\n", + "L = 36.453361, acc = 0.875000\n", + "L = 36.432234, acc = 0.875000\n", + "L = 36.410972, acc = 0.875000\n", + "L = 36.389576, acc = 0.875000\n", + "L = 36.368043, acc = 0.875000\n", + "L = 36.346373, acc = 0.875000\n", + "L = 36.324566, acc = 0.875000\n", + "L = 36.302620, acc = 0.875000\n", + "L = 36.280535, acc = 0.875000\n", + "L = 36.258310, acc = 0.875000\n", + "L = 36.235944, acc = 0.875000\n", + "L = 36.213437, acc = 0.875000\n", + "L = 36.190788, acc = 0.875000\n", + "L = 36.167996, acc = 0.875000\n", + "L = 36.145060, acc = 0.875000\n", + "L = 36.121980, acc = 0.875000\n", + "L = 36.098755, acc = 0.875000\n", + "L = 36.075384, acc = 0.875000\n", + "L = 36.051866, acc = 0.875000\n", + "L = 36.028201, acc = 0.875000\n", + "L = 36.004388, acc = 0.875000\n", + "L = 35.980427, acc = 0.875000\n", + "L = 35.956316, acc = 0.875000\n", + "L = 35.932055, acc = 0.875000\n", + "L = 35.907644, acc = 0.875000\n", + "L = 35.883081, acc = 0.875000\n", + "L = 35.858366, acc = 0.875000\n", + "L = 35.833499, acc = 0.875000\n", + "L = 35.808478, acc = 0.875000\n", + "L = 35.783303, acc = 0.875000\n", + "L = 35.757974, acc = 0.875000\n", + "L = 35.732489, acc = 0.875000\n", + "L = 35.706849, acc = 0.875000\n", + "L = 35.681052, acc = 0.875000\n", + "L = 35.655099, acc = 0.875000\n", + "L = 35.628988, acc = 0.875000\n", + "L = 35.602718, acc = 0.875000\n", + "L = 35.576290, acc = 0.875000\n", + "L = 35.549703, acc = 0.875000\n", + "L = 35.522956, acc = 0.875000\n", + "L = 35.496049, acc = 0.875000\n", + "L = 35.468980, acc = 0.875000\n", + "L = 35.441751, acc = 0.875000\n", + "L = 35.414359, acc = 0.875000\n", + "L = 35.386805, acc = 0.875000\n", + "L = 35.359088, acc = 0.875000\n", + "L = 35.331208, acc = 0.875000\n", + "L = 35.303164, acc = 0.875000\n", + "L = 35.274956, acc = 0.875000\n", + "L = 35.246582, acc = 0.875000\n", + "L = 35.218044, acc = 0.875000\n", + "L = 35.189340, acc = 0.875000\n", + "L = 35.160470, acc = 0.875000\n", + "L = 35.131434, acc = 0.875000\n", + "L = 35.102230, acc = 0.875000\n", + "L = 35.072860, acc = 0.875000\n", + "L = 35.043321, acc = 0.875000\n", + "L = 35.013615, acc = 0.875000\n", + "L = 34.983741, acc = 0.880000\n", + "L = 34.953697, acc = 0.880000\n", + "L = 34.923485, acc = 0.880000\n", + "L = 34.893103, acc = 0.880000\n", + "L = 34.862552, acc = 0.880000\n", + "L = 34.831831, acc = 0.880000\n", + "L = 34.800940, acc = 0.880000\n", + "L = 34.769878, acc = 0.880000\n", + "L = 34.738645, acc = 0.880000\n", + "L = 34.707242, acc = 0.880000\n", + "L = 34.675667, acc = 0.880000\n", + "L = 34.643920, acc = 0.880000\n", + "L = 34.612002, acc = 0.880000\n", + "L = 34.579912, acc = 0.880000\n", + "L = 34.547650, acc = 0.880000\n", + "L = 34.515216, acc = 0.880000\n", + "L = 34.482609, acc = 0.880000\n", + "L = 34.449830, acc = 0.880000\n", + "L = 34.416878, acc = 0.885000\n", + "L = 34.383754, acc = 0.885000\n", + "L = 34.350456, acc = 0.885000\n", + "L = 34.316985, acc = 0.885000\n", + "L = 34.283341, acc = 0.890000\n", + "L = 34.249524, acc = 0.890000\n", + "L = 34.215534, acc = 0.890000\n", + "L = 34.181370, acc = 0.890000\n", + "L = 34.147033, acc = 0.890000\n", + "L = 34.112523, acc = 0.890000\n", + "L = 34.077839, acc = 0.890000\n", + "L = 34.042982, acc = 0.890000\n", + "L = 34.007951, acc = 0.890000\n", + "L = 33.972747, acc = 0.890000\n", + "L = 33.937370, acc = 0.890000\n", + "L = 33.901819, acc = 0.890000\n", + "L = 33.866095, acc = 0.890000\n", + "L = 33.830199, acc = 0.890000\n", + "L = 33.794129, acc = 0.890000\n", + "L = 33.757886, acc = 0.890000\n", + "L = 33.721471, acc = 0.890000\n", + "L = 33.684882, acc = 0.890000\n", + "L = 33.648122, acc = 0.890000\n", + "L = 33.611189, acc = 0.890000\n", + "L = 33.574083, acc = 0.890000\n", + "L = 33.536806, acc = 0.890000\n", + "L = 33.499357, acc = 0.890000\n", + "L = 33.461737, acc = 0.895000\n", + "L = 33.423945, acc = 0.895000\n", + "L = 33.385982, acc = 0.895000\n", + "L = 33.347848, acc = 0.895000\n", + "L = 33.309543, acc = 0.895000\n", + "L = 33.271069, acc = 0.895000\n", + "L = 33.232424, acc = 0.895000\n", + "L = 33.193610, acc = 0.895000\n", + "L = 33.154626, acc = 0.895000\n", + "L = 33.115473, acc = 0.895000\n", + "L = 33.076151, acc = 0.895000\n", + "L = 33.036662, acc = 0.895000\n", + "L = 32.997004, acc = 0.895000\n", + "L = 32.957179, acc = 0.895000\n", + "L = 32.917186, acc = 0.895000\n", + "L = 32.877027, acc = 0.895000\n", + "L = 32.836701, acc = 0.895000\n", + "L = 32.796210, acc = 0.895000\n", + "L = 32.755553, acc = 0.895000\n", + "L = 32.714731, acc = 0.895000\n", + "L = 32.673745, acc = 0.895000\n", + "L = 32.632595, acc = 0.895000\n", + "L = 32.591282, acc = 0.895000\n", + "L = 32.549805, acc = 0.895000\n", + "L = 32.508166, acc = 0.895000\n", + "L = 32.466366, acc = 0.895000\n", + "L = 32.424404, acc = 0.895000\n", + "L = 32.382281, acc = 0.895000\n", + "L = 32.339998, acc = 0.895000\n", + "L = 32.297556, acc = 0.895000\n", + "L = 32.254955, acc = 0.895000\n", + "L = 32.212196, acc = 0.900000\n", + "L = 32.169279, acc = 0.900000\n", + "L = 32.126206, acc = 0.900000\n", + "L = 32.082976, acc = 0.900000\n", + "L = 32.039590, acc = 0.900000\n", + "L = 31.996050, acc = 0.900000\n", + "L = 31.952356, acc = 0.900000\n", + "L = 31.908508, acc = 0.900000\n", + "L = 31.864507, acc = 0.900000\n", + "L = 31.820355, acc = 0.900000\n", + "L = 31.776051, acc = 0.900000\n", + "L = 31.731597, acc = 0.900000\n", + "L = 31.686994, acc = 0.900000\n", + "L = 31.642241, acc = 0.900000\n", + "L = 31.597341, acc = 0.900000\n", + "L = 31.552294, acc = 0.900000\n", + "L = 31.507100, acc = 0.900000\n", + "L = 31.461761, acc = 0.900000\n", + "L = 31.416278, acc = 0.900000\n", + "L = 31.370651, acc = 0.900000\n", + "L = 31.324881, acc = 0.900000\n", + "L = 31.278969, acc = 0.900000\n", + "L = 31.232916, acc = 0.900000\n", + "L = 31.186724, acc = 0.900000\n", + "L = 31.140392, acc = 0.900000\n", + "L = 31.093922, acc = 0.900000\n", + "L = 31.047316, acc = 0.900000\n", + "L = 31.000573, acc = 0.900000\n", + "L = 30.953695, acc = 0.900000\n", + "L = 30.906683, acc = 0.900000\n", + "L = 30.859538, acc = 0.905000\n", + "L = 30.812261, acc = 0.905000\n", + "L = 30.764853, acc = 0.905000\n", + "L = 30.717315, acc = 0.905000\n", + "L = 30.669648, acc = 0.905000\n", + "L = 30.621854, acc = 0.905000\n", + "L = 30.573933, acc = 0.905000\n", + "L = 30.525886, acc = 0.910000\n", + "L = 30.477715, acc = 0.910000\n", + "L = 30.429421, acc = 0.910000\n", + "L = 30.381005, acc = 0.910000\n", + "L = 30.332468, acc = 0.910000\n", + "L = 30.283811, acc = 0.910000\n", + "L = 30.235036, acc = 0.910000\n", + "L = 30.186143, acc = 0.910000\n", + "L = 30.137135, acc = 0.910000\n", + "L = 30.088011, acc = 0.910000\n", + "L = 30.038774, acc = 0.910000\n", + "L = 29.989424, acc = 0.910000\n", + "L = 29.939963, acc = 0.910000\n", + "L = 29.890392, acc = 0.910000\n", + "L = 29.840713, acc = 0.910000\n", + "L = 29.790926, acc = 0.910000\n", + "L = 29.741034, acc = 0.910000\n", + "L = 29.691036, acc = 0.910000\n", + "L = 29.640935, acc = 0.910000\n", + "L = 29.590733, acc = 0.910000\n", + "L = 29.540429, acc = 0.910000\n", + "L = 29.490027, acc = 0.910000\n", + "L = 29.439526, acc = 0.915000\n", + "L = 29.388929, acc = 0.915000\n", + "L = 29.338237, acc = 0.915000\n", + "L = 29.287451, acc = 0.915000\n", + "L = 29.236573, acc = 0.915000\n", + "L = 29.185604, acc = 0.915000\n", + "L = 29.134546, acc = 0.915000\n", + "L = 29.083399, acc = 0.915000\n", + "L = 29.032166, acc = 0.915000\n", + "L = 28.980848, acc = 0.915000\n", + "L = 28.929446, acc = 0.915000\n", + "L = 28.877963, acc = 0.915000\n", + "L = 28.826398, acc = 0.915000\n", + "L = 28.774755, acc = 0.915000\n", + "L = 28.723034, acc = 0.915000\n", + "L = 28.671237, acc = 0.915000\n", + "L = 28.619366, acc = 0.915000\n", + "L = 28.567421, acc = 0.915000\n", + "L = 28.515405, acc = 0.915000\n", + "L = 28.463320, acc = 0.915000\n", + "L = 28.411166, acc = 0.915000\n", + "L = 28.358945, acc = 0.915000\n", + "L = 28.306660, acc = 0.915000\n", + "L = 28.254311, acc = 0.915000\n", + "L = 28.201900, acc = 0.915000\n", + "L = 28.149428, acc = 0.920000\n", + "L = 28.096899, acc = 0.920000\n", + "L = 28.044312, acc = 0.920000\n", + "L = 27.991670, acc = 0.920000\n", + "L = 27.938974, acc = 0.920000\n", + "L = 27.886226, acc = 0.920000\n", + "L = 27.833427, acc = 0.920000\n", + "L = 27.780580, acc = 0.920000\n", + "L = 27.727686, acc = 0.920000\n", + "L = 27.674747, acc = 0.920000\n", + "L = 27.621764, acc = 0.920000\n", + "L = 27.568739, acc = 0.920000\n", + "L = 27.515673, acc = 0.920000\n", + "L = 27.462569, acc = 0.925000\n", + "L = 27.409429, acc = 0.925000\n", + "L = 27.356253, acc = 0.925000\n", + "L = 27.303043, acc = 0.925000\n", + "L = 27.249802, acc = 0.925000\n", + "L = 27.196531, acc = 0.925000\n", + "L = 27.143232, acc = 0.925000\n", + "L = 27.089906, acc = 0.925000\n", + "L = 27.036556, acc = 0.925000\n", + "L = 26.983183, acc = 0.925000\n", + "L = 26.929788, acc = 0.925000\n", + "L = 26.876374, acc = 0.925000\n", + "L = 26.822943, acc = 0.925000\n", + "L = 26.769495, acc = 0.925000\n", + "L = 26.716034, acc = 0.925000\n", + "L = 26.662560, acc = 0.925000\n", + "L = 26.609075, acc = 0.925000\n", + "L = 26.555582, acc = 0.925000\n", + "L = 26.502081, acc = 0.925000\n", + "L = 26.448576, acc = 0.925000\n", + "L = 26.395067, acc = 0.925000\n", + "L = 26.341556, acc = 0.925000\n", + "L = 26.288045, acc = 0.925000\n", + "L = 26.234536, acc = 0.925000\n", + "L = 26.181031, acc = 0.930000\n", + "L = 26.127532, acc = 0.930000\n", + "L = 26.074040, acc = 0.930000\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "L = 26.020557, acc = 0.930000\n", + "L = 25.967084, acc = 0.930000\n", + "L = 25.913625, acc = 0.930000\n", + "L = 25.860180, acc = 0.930000\n", + "L = 25.806751, acc = 0.930000\n", + "L = 25.753340, acc = 0.930000\n", + "L = 25.699949, acc = 0.930000\n", + "L = 25.646580, acc = 0.930000\n", + "L = 25.593234, acc = 0.930000\n", + "L = 25.539913, acc = 0.930000\n", + "L = 25.486619, acc = 0.930000\n", + "L = 25.433354, acc = 0.930000\n", + "L = 25.380119, acc = 0.930000\n", + "L = 25.326917, acc = 0.930000\n", + "L = 25.273749, acc = 0.930000\n", + "L = 25.220617, acc = 0.930000\n", + "L = 25.167522, acc = 0.930000\n", + "L = 25.114466, acc = 0.930000\n", + "L = 25.061452, acc = 0.930000\n", + "L = 25.008480, acc = 0.930000\n", + "L = 24.955553, acc = 0.930000\n", + "L = 24.902673, acc = 0.930000\n", + "L = 24.849840, acc = 0.935000\n", + "L = 24.797058, acc = 0.935000\n", + "L = 24.744326, acc = 0.935000\n", + "L = 24.691648, acc = 0.935000\n", + "L = 24.639025, acc = 0.935000\n", + "L = 24.586459, acc = 0.935000\n", + "L = 24.533951, acc = 0.935000\n", + "L = 24.481502, acc = 0.935000\n", + "L = 24.429116, acc = 0.935000\n", + "L = 24.376793, acc = 0.935000\n", + "L = 24.324535, acc = 0.935000\n", + "L = 24.272343, acc = 0.940000\n", + "L = 24.220220, acc = 0.940000\n", + "L = 24.168167, acc = 0.940000\n", + "L = 24.116186, acc = 0.940000\n", + "L = 24.064277, acc = 0.940000\n", + "L = 24.012444, acc = 0.940000\n", + "L = 23.960687, acc = 0.940000\n", + "L = 23.909008, acc = 0.940000\n", + "L = 23.857408, acc = 0.940000\n", + "L = 23.805890, acc = 0.940000\n", + "L = 23.754455, acc = 0.940000\n", + "L = 23.703103, acc = 0.940000\n", + "L = 23.651838, acc = 0.940000\n", + "L = 23.600660, acc = 0.940000\n", + "L = 23.549570, acc = 0.940000\n", + "L = 23.498571, acc = 0.940000\n", + "L = 23.447664, acc = 0.940000\n", + "L = 23.396850, acc = 0.940000\n", + "L = 23.346131, acc = 0.940000\n", + "L = 23.295508, acc = 0.940000\n", + "L = 23.244983, acc = 0.940000\n", + "L = 23.194557, acc = 0.940000\n", + "L = 23.144231, acc = 0.940000\n", + "L = 23.094008, acc = 0.940000\n", + "L = 23.043887, acc = 0.940000\n", + "L = 22.993871, acc = 0.940000\n", + "L = 22.943961, acc = 0.940000\n", + "L = 22.894159, acc = 0.940000\n", + "L = 22.844465, acc = 0.940000\n", + "L = 22.794881, acc = 0.940000\n", + "L = 22.745409, acc = 0.940000\n", + "L = 22.696048, acc = 0.940000\n", + "L = 22.646802, acc = 0.940000\n", + "L = 22.597671, acc = 0.945000\n", + "L = 22.548656, acc = 0.945000\n", + "L = 22.499758, acc = 0.945000\n", + "L = 22.450980, acc = 0.945000\n", + "L = 22.402321, acc = 0.945000\n", + "L = 22.353783, acc = 0.945000\n", + "L = 22.305367, acc = 0.945000\n", + "L = 22.257075, acc = 0.945000\n", + "L = 22.208907, acc = 0.945000\n", + "L = 22.160865, acc = 0.945000\n", + "L = 22.112950, acc = 0.945000\n", + "L = 22.065162, acc = 0.945000\n", + "L = 22.017503, acc = 0.945000\n", + "L = 21.969973, acc = 0.945000\n", + "L = 21.922575, acc = 0.945000\n", + "L = 21.875308, acc = 0.945000\n", + "L = 21.828175, acc = 0.945000\n", + "L = 21.781174, acc = 0.945000\n", + "L = 21.734309, acc = 0.945000\n", + "L = 21.687579, acc = 0.945000\n", + "L = 21.640986, acc = 0.945000\n", + "L = 21.594530, acc = 0.945000\n", + "L = 21.548213, acc = 0.945000\n", + "L = 21.502034, acc = 0.945000\n", + "L = 21.455996, acc = 0.945000\n", + "L = 21.410098, acc = 0.945000\n", + "L = 21.364342, acc = 0.945000\n", + "L = 21.318729, acc = 0.945000\n", + "L = 21.273258, acc = 0.945000\n", + "L = 21.227932, acc = 0.945000\n", + "L = 21.182750, acc = 0.945000\n", + "L = 21.137714, acc = 0.945000\n", + "L = 21.092823, acc = 0.945000\n", + "L = 21.048079, acc = 0.945000\n", + "L = 21.003483, acc = 0.945000\n", + "L = 20.959034, acc = 0.945000\n", + "L = 20.914734, acc = 0.945000\n", + "L = 20.870584, acc = 0.945000\n", + "L = 20.826583, acc = 0.945000\n", + "L = 20.782732, acc = 0.945000\n", + "L = 20.739032, acc = 0.945000\n", + "L = 20.695484, acc = 0.945000\n", + "L = 20.652088, acc = 0.945000\n", + "L = 20.608844, acc = 0.945000\n", + "L = 20.565752, acc = 0.945000\n", + "L = 20.522815, acc = 0.945000\n", + "L = 20.480031, acc = 0.945000\n", + "L = 20.437401, acc = 0.945000\n", + "L = 20.394926, acc = 0.945000\n", + "L = 20.352605, acc = 0.945000\n", + "L = 20.310440, acc = 0.945000\n", + "L = 20.268431, acc = 0.945000\n", + "L = 20.226578, acc = 0.945000\n", + "L = 20.184881, acc = 0.945000\n", + "L = 20.143341, acc = 0.945000\n", + "L = 20.101957, acc = 0.945000\n", + "L = 20.060731, acc = 0.945000\n", + "L = 20.019662, acc = 0.945000\n", + "L = 19.978751, acc = 0.945000\n", + "L = 19.937997, acc = 0.945000\n", + "L = 19.897402, acc = 0.945000\n", + "L = 19.856965, acc = 0.945000\n", + "L = 19.816686, acc = 0.945000\n", + "L = 19.776566, acc = 0.945000\n", + "L = 19.736604, acc = 0.945000\n", + "L = 19.696802, acc = 0.945000\n", + "L = 19.657158, acc = 0.945000\n", + "L = 19.617673, acc = 0.945000\n", + "L = 19.578347, acc = 0.945000\n", + "L = 19.539180, acc = 0.945000\n", + "L = 19.500173, acc = 0.945000\n", + "L = 19.461324, acc = 0.945000\n", + "L = 19.422635, acc = 0.945000\n", + "L = 19.384105, acc = 0.945000\n", + "L = 19.345734, acc = 0.945000\n", + "L = 19.307522, acc = 0.945000\n", + "L = 19.269469, acc = 0.945000\n", + "L = 19.231575, acc = 0.945000\n", + "L = 19.193840, acc = 0.945000\n", + "L = 19.156264, acc = 0.945000\n", + "L = 19.118847, acc = 0.945000\n", + "L = 19.081588, acc = 0.945000\n", + "L = 19.044488, acc = 0.945000\n", + "L = 19.007546, acc = 0.945000\n", + "L = 18.970763, acc = 0.945000\n", + "L = 18.934137, acc = 0.945000\n", + "L = 18.897670, acc = 0.945000\n", + "L = 18.861360, acc = 0.945000\n", + "L = 18.825208, acc = 0.945000\n", + "L = 18.789212, acc = 0.945000\n", + "L = 18.753374, acc = 0.945000\n", + "L = 18.717693, acc = 0.945000\n", + "L = 18.682169, acc = 0.945000\n", + "L = 18.646800, acc = 0.945000\n", + "L = 18.611588, acc = 0.945000\n", + "L = 18.576532, acc = 0.945000\n", + "L = 18.541631, acc = 0.945000\n", + "L = 18.506885, acc = 0.945000\n", + "L = 18.472295, acc = 0.945000\n", + "L = 18.437858, acc = 0.945000\n", + "L = 18.403577, acc = 0.945000\n", + "L = 18.369449, acc = 0.945000\n", + "L = 18.335475, acc = 0.945000\n", + "L = 18.301654, acc = 0.945000\n", + "L = 18.267985, acc = 0.945000\n", + "L = 18.234470, acc = 0.945000\n", + "L = 18.201106, acc = 0.945000\n", + "L = 18.167895, acc = 0.945000\n", + "L = 18.134835, acc = 0.945000\n", + "L = 18.101925, acc = 0.945000\n", + "L = 18.069167, acc = 0.945000\n", + "L = 18.036558, acc = 0.945000\n", + "L = 18.004099, acc = 0.945000\n", + "L = 17.971790, acc = 0.945000\n", + "L = 17.939629, acc = 0.945000\n", + "L = 17.907617, acc = 0.945000\n", + "L = 17.875753, acc = 0.945000\n", + "L = 17.844036, acc = 0.945000\n", + "L = 17.812467, acc = 0.945000\n", + "L = 17.781044, acc = 0.945000\n", + "L = 17.749767, acc = 0.945000\n", + "L = 17.718636, acc = 0.945000\n", + "L = 17.687650, acc = 0.945000\n", + "L = 17.656809, acc = 0.945000\n", + "L = 17.626111, acc = 0.945000\n", + "L = 17.595558, acc = 0.945000\n", + "L = 17.565148, acc = 0.945000\n", + "L = 17.534880, acc = 0.945000\n", + "L = 17.504755, acc = 0.945000\n", + "L = 17.474771, acc = 0.945000\n", + "L = 17.444929, acc = 0.945000\n", + "L = 17.415227, acc = 0.945000\n", + "L = 17.385665, acc = 0.945000\n", + "L = 17.356243, acc = 0.945000\n", + "L = 17.326960, acc = 0.945000\n", + "L = 17.297815, acc = 0.945000\n", + "L = 17.268808, acc = 0.945000\n", + "L = 17.239939, acc = 0.945000\n", + "L = 17.211206, acc = 0.945000\n", + "L = 17.182610, acc = 0.950000\n", + "L = 17.154149, acc = 0.950000\n", + "L = 17.125824, acc = 0.950000\n", + "L = 17.097633, acc = 0.950000\n", + "L = 17.069577, acc = 0.950000\n", + "L = 17.041653, acc = 0.950000\n", + "L = 17.013863, acc = 0.950000\n", + "L = 16.986205, acc = 0.950000\n", + "L = 16.958679, acc = 0.950000\n", + "L = 16.931284, acc = 0.950000\n", + "L = 16.904020, acc = 0.950000\n", + "L = 16.876886, acc = 0.950000\n", + "L = 16.849881, acc = 0.950000\n", + "L = 16.823006, acc = 0.950000\n", + "L = 16.796258, acc = 0.950000\n", + "L = 16.769639, acc = 0.950000\n", + "L = 16.743146, acc = 0.950000\n", + "L = 16.716780, acc = 0.950000\n", + "L = 16.690540, acc = 0.950000\n", + "L = 16.664426, acc = 0.950000\n", + "L = 16.638436, acc = 0.950000\n", + "L = 16.612571, acc = 0.950000\n", + "L = 16.586829, acc = 0.950000\n", + "L = 16.561211, acc = 0.950000\n", + "L = 16.535715, acc = 0.950000\n", + "L = 16.510341, acc = 0.950000\n", + "L = 16.485088, acc = 0.950000\n", + "L = 16.459956, acc = 0.950000\n", + "L = 16.434944, acc = 0.950000\n", + "L = 16.410051, acc = 0.950000\n", + "L = 16.385278, acc = 0.950000\n", + "L = 16.360623, acc = 0.950000\n", + "L = 16.336085, acc = 0.950000\n", + "L = 16.311665, acc = 0.950000\n", + "L = 16.287362, acc = 0.950000\n", + "L = 16.263175, acc = 0.950000\n", + "L = 16.239103, acc = 0.955000\n", + "L = 16.215146, acc = 0.955000\n", + "L = 16.191303, acc = 0.955000\n", + "L = 16.167574, acc = 0.955000\n", + "L = 16.143958, acc = 0.955000\n", + "L = 16.120455, acc = 0.955000\n", + "L = 16.097064, acc = 0.955000\n", + "L = 16.073784, acc = 0.955000\n", + "L = 16.050615, acc = 0.955000\n", + "L = 16.027556, acc = 0.955000\n", + "L = 16.004606, acc = 0.955000\n", + "L = 15.981766, acc = 0.955000\n", + "L = 15.959035, acc = 0.955000\n", + "L = 15.936411, acc = 0.955000\n", + "L = 15.913895, acc = 0.955000\n", + "L = 15.891485, acc = 0.955000\n", + "L = 15.869182, acc = 0.955000\n", + "L = 15.846984, acc = 0.955000\n", + "L = 15.824892, acc = 0.955000\n", + "L = 15.802904, acc = 0.955000\n", + "L = 15.781020, acc = 0.955000\n", + "L = 15.759239, acc = 0.955000\n", + "L = 15.737561, acc = 0.955000\n", + "L = 15.715986, acc = 0.955000\n", + "L = 15.694512, acc = 0.955000\n", + "L = 15.673140, acc = 0.955000\n", + "L = 15.651868, acc = 0.955000\n", + "L = 15.630696, acc = 0.955000\n", + "L = 15.609624, acc = 0.955000\n", + "L = 15.588651, acc = 0.955000\n", + "L = 15.567776, acc = 0.955000\n", + "L = 15.546999, acc = 0.955000\n", + "L = 15.526320, acc = 0.955000\n", + "L = 15.505737, acc = 0.955000\n", + "L = 15.485251, acc = 0.955000\n", + "L = 15.464860, acc = 0.955000\n", + "L = 15.444565, acc = 0.955000\n", + "L = 15.424364, acc = 0.955000\n", + "L = 15.404258, acc = 0.955000\n", + "L = 15.384245, acc = 0.955000\n", + "L = 15.364325, acc = 0.955000\n", + "L = 15.344498, acc = 0.955000\n", + "L = 15.324763, acc = 0.955000\n", + "L = 15.305119, acc = 0.955000\n", + "L = 15.285567, acc = 0.955000\n", + "L = 15.266105, acc = 0.955000\n", + "L = 15.246733, acc = 0.955000\n", + "L = 15.227450, acc = 0.955000\n", + "L = 15.208257, acc = 0.955000\n", + "L = 15.189152, acc = 0.955000\n", + "L = 15.170135, acc = 0.955000\n", + "L = 15.151205, acc = 0.955000\n", + "L = 15.132362, acc = 0.955000\n", + "L = 15.113606, acc = 0.955000\n", + "L = 15.094936, acc = 0.955000\n", + "L = 15.076352, acc = 0.955000\n", + "L = 15.057852, acc = 0.955000\n", + "L = 15.039437, acc = 0.955000\n", + "L = 15.021106, acc = 0.955000\n", + "L = 15.002859, acc = 0.955000\n", + "L = 14.984695, acc = 0.955000\n", + "L = 14.966613, acc = 0.955000\n", + "L = 14.948613, acc = 0.960000\n", + "L = 14.930695, acc = 0.960000\n", + "L = 14.912859, acc = 0.960000\n", + "L = 14.895103, acc = 0.960000\n", + "L = 14.877427, acc = 0.960000\n", + "L = 14.859831, acc = 0.960000\n", + "L = 14.842314, acc = 0.960000\n", + "L = 14.824876, acc = 0.960000\n", + "L = 14.807517, acc = 0.960000\n", + "L = 14.790236, acc = 0.960000\n", + "L = 14.773032, acc = 0.960000\n", + "L = 14.755905, acc = 0.960000\n", + "L = 14.738855, acc = 0.960000\n", + "L = 14.721881, acc = 0.960000\n", + "L = 14.704982, acc = 0.960000\n", + "L = 14.688159, acc = 0.960000\n", + "L = 14.671411, acc = 0.960000\n", + "L = 14.654737, acc = 0.960000\n", + "L = 14.638137, acc = 0.960000\n", + "L = 14.621611, acc = 0.960000\n", + "L = 14.605157, acc = 0.960000\n", + "L = 14.588777, acc = 0.960000\n", + "L = 14.572468, acc = 0.960000\n", + "L = 14.556232, acc = 0.960000\n", + "L = 14.540067, acc = 0.960000\n", + "L = 14.523973, acc = 0.960000\n", + "L = 14.507949, acc = 0.960000\n", + "L = 14.491996, acc = 0.960000\n", + "L = 14.476113, acc = 0.960000\n", + "L = 14.460298, acc = 0.960000\n", + "L = 14.444553, acc = 0.960000\n", + "L = 14.428877, acc = 0.960000\n", + "L = 14.413268, acc = 0.960000\n", + "L = 14.397727, acc = 0.960000\n", + "L = 14.382254, acc = 0.960000\n", + "L = 14.366847, acc = 0.960000\n", + "L = 14.351507, acc = 0.960000\n", + "L = 14.336234, acc = 0.960000\n", + "L = 14.321026, acc = 0.960000\n", + "L = 14.305883, acc = 0.960000\n", + "L = 14.290805, acc = 0.960000\n", + "L = 14.275793, acc = 0.960000\n", + "L = 14.260844, acc = 0.960000\n", + "L = 14.245959, acc = 0.960000\n", + "L = 14.231138, acc = 0.960000\n", + "L = 14.216380, acc = 0.960000\n", + "L = 14.201684, acc = 0.960000\n", + "L = 14.187051, acc = 0.960000\n", + "L = 14.172480, acc = 0.960000\n", + "L = 14.157971, acc = 0.960000\n", + "L = 14.143523, acc = 0.960000\n", + "L = 14.129136, acc = 0.960000\n", + "L = 14.114810, acc = 0.960000\n", + "L = 14.100543, acc = 0.960000\n", + "L = 14.086337, acc = 0.960000\n", + "L = 14.072190, acc = 0.960000\n", + "L = 14.058102, acc = 0.960000\n", + "L = 14.044074, acc = 0.960000\n", + "L = 14.030103, acc = 0.960000\n", + "L = 14.016191, acc = 0.960000\n", + "L = 14.002337, acc = 0.960000\n", + "L = 13.988540, acc = 0.960000\n", + "L = 13.974800, acc = 0.960000\n", + "L = 13.961117, acc = 0.960000\n", + "L = 13.947491, acc = 0.960000\n", + "L = 13.933920, acc = 0.960000\n", + "L = 13.920406, acc = 0.960000\n", + "L = 13.906947, acc = 0.960000\n", + "L = 13.893543, acc = 0.960000\n", + "L = 13.880194, acc = 0.960000\n", + "L = 13.866899, acc = 0.960000\n", + "L = 13.853659, acc = 0.960000\n", + "L = 13.840472, acc = 0.960000\n", + "L = 13.827339, acc = 0.960000\n", + "L = 13.814260, acc = 0.960000\n", + "L = 13.801233, acc = 0.960000\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "L = 37.372950, acc = 0.865000\n", - "L = 37.365192, acc = 0.865000\n", - "L = 37.357397, acc = 0.865000\n", - "L = 37.349564, acc = 0.865000\n", - "L = 37.341694, acc = 0.865000\n", - "L = 37.333786, acc = 0.865000\n", - "L = 37.325840, acc = 0.865000\n", - "L = 37.317857, acc = 0.865000\n", - "L = 37.309835, acc = 0.865000\n", - "L = 37.301775, acc = 0.865000\n", - "L = 37.293677, acc = 0.865000\n", - "L = 37.285540, acc = 0.865000\n", - "L = 37.277364, acc = 0.865000\n", - "L = 37.269149, acc = 0.865000\n", - "L = 37.260895, acc = 0.865000\n", - "L = 37.252602, acc = 0.865000\n", - "L = 37.244269, acc = 0.865000\n", - "L = 37.235897, acc = 0.865000\n", - "L = 37.227485, acc = 0.865000\n", - "L = 37.219033, acc = 0.870000\n", - "L = 37.210541, acc = 0.870000\n", - "L = 37.202008, acc = 0.870000\n", - "L = 37.193436, acc = 0.870000\n", - "L = 37.184822, acc = 0.870000\n", - "L = 37.176168, acc = 0.870000\n", - "L = 37.167473, acc = 0.870000\n", - "L = 37.158737, acc = 0.870000\n", - "L = 37.149959, acc = 0.870000\n", - "L = 37.141140, acc = 0.870000\n", - "L = 37.132280, acc = 0.870000\n", - "L = 37.123377, acc = 0.870000\n", - "L = 37.114433, acc = 0.870000\n", - "L = 37.105447, acc = 0.870000\n", - "L = 37.096418, acc = 0.870000\n", - "L = 37.087348, acc = 0.870000\n", - "L = 37.078234, acc = 0.870000\n", - "L = 37.069078, acc = 0.870000\n", - "L = 37.059879, acc = 0.870000\n", - "L = 37.050637, acc = 0.870000\n", - "L = 37.041352, acc = 0.870000\n", - "L = 37.032023, acc = 0.870000\n", - "L = 37.022651, acc = 0.870000\n", - "L = 37.013236, acc = 0.870000\n", - "L = 37.003776, acc = 0.870000\n", - "L = 36.994273, acc = 0.870000\n", - "L = 36.984726, acc = 0.870000\n", - "L = 36.975134, acc = 0.870000\n", - "L = 36.965498, acc = 0.870000\n", - "L = 36.955818, acc = 0.870000\n", - "L = 36.946092, acc = 0.870000\n", - "L = 36.936322, acc = 0.870000\n", - "L = 36.926507, acc = 0.870000\n", - "L = 36.916647, acc = 0.870000\n", - "L = 36.906742, acc = 0.870000\n", - "L = 36.896791, acc = 0.870000\n", - "L = 36.886795, acc = 0.870000\n", - "L = 36.876753, acc = 0.870000\n", - "L = 36.866666, acc = 0.870000\n", - "L = 36.856532, acc = 0.870000\n", - "L = 36.846353, acc = 0.870000\n", - "L = 36.836127, acc = 0.870000\n", - "L = 36.825855, acc = 0.870000\n", - "L = 36.815536, acc = 0.870000\n", - "L = 36.805171, acc = 0.875000\n", - "L = 36.794759, acc = 0.875000\n", - "L = 36.784300, acc = 0.875000\n", - "L = 36.773795, acc = 0.875000\n", - "L = 36.763242, acc = 0.875000\n", - "L = 36.752642, acc = 0.875000\n", - "L = 36.741995, acc = 0.875000\n", - "L = 36.731300, acc = 0.875000\n", - "L = 36.720558, acc = 0.875000\n", - "L = 36.709768, acc = 0.875000\n", - "L = 36.698930, acc = 0.875000\n", - "L = 36.688045, acc = 0.875000\n", - "L = 36.677111, acc = 0.875000\n", - "L = 36.666130, acc = 0.875000\n", - "L = 36.655100, acc = 0.875000\n", - "L = 36.644022, acc = 0.875000\n", - "L = 36.632896, acc = 0.875000\n", - "L = 36.621721, acc = 0.875000\n", - "L = 36.610497, acc = 0.875000\n", - "L = 36.599225, acc = 0.875000\n", - "L = 36.587904, acc = 0.875000\n", - "L = 36.576534, acc = 0.875000\n", - "L = 36.565115, acc = 0.875000\n", - "L = 36.553647, acc = 0.875000\n", - "L = 36.542130, acc = 0.875000\n", - "L = 36.530564, acc = 0.875000\n", - "L = 36.518949, acc = 0.875000\n", - "L = 36.507284, acc = 0.875000\n", - "L = 36.495570, acc = 0.875000\n", - "L = 36.483806, acc = 0.875000\n", - "L = 36.471992, acc = 0.875000\n", - "L = 36.460129, acc = 0.875000\n", - "L = 36.448217, acc = 0.875000\n", - "L = 36.436254, acc = 0.875000\n", - "L = 36.424242, acc = 0.875000\n", - "L = 36.412179, acc = 0.875000\n", - "L = 36.400067, acc = 0.875000\n", - "L = 36.387905, acc = 0.875000\n", - "L = 36.375692, acc = 0.875000\n", - "L = 36.363430, acc = 0.875000\n", - "L = 36.351117, acc = 0.875000\n", - "L = 36.338754, acc = 0.875000\n", - "L = 36.326341, acc = 0.875000\n", - "L = 36.313877, acc = 0.875000\n", - "L = 36.301363, acc = 0.875000\n", - "L = 36.288799, acc = 0.875000\n", - "L = 36.276184, acc = 0.875000\n", - "L = 36.263519, acc = 0.875000\n", - "L = 36.250803, acc = 0.875000\n", - "L = 36.238037, acc = 0.875000\n", - "L = 36.225221, acc = 0.875000\n", - "L = 36.212353, acc = 0.875000\n", - "L = 36.199435, acc = 0.875000\n", - "L = 36.186467, acc = 0.875000\n", - "L = 36.173448, acc = 0.880000\n", - "L = 36.160378, acc = 0.880000\n", - "L = 36.147258, acc = 0.880000\n", - "L = 36.134087, acc = 0.880000\n", - "L = 36.120866, acc = 0.880000\n", - "L = 36.107593, acc = 0.880000\n", - "L = 36.094271, acc = 0.880000\n", - "L = 36.080897, acc = 0.880000\n", - "L = 36.067473, acc = 0.880000\n", - "L = 36.053998, acc = 0.880000\n", - "L = 36.040473, acc = 0.880000\n", - "L = 36.026897, acc = 0.880000\n", - "L = 36.013271, acc = 0.880000\n", - "L = 35.999593, acc = 0.880000\n", - "L = 35.985866, acc = 0.880000\n", - "L = 35.972088, acc = 0.880000\n", - "L = 35.958259, acc = 0.880000\n", - "L = 35.944380, acc = 0.880000\n", - "L = 35.930451, acc = 0.880000\n", - "L = 35.916471, acc = 0.880000\n", - "L = 35.902441, acc = 0.880000\n", - "L = 35.888361, acc = 0.880000\n", - "L = 35.874230, acc = 0.880000\n", - "L = 35.860049, acc = 0.880000\n", - "L = 35.845818, acc = 0.885000\n", - "L = 35.831537, acc = 0.885000\n", - "L = 35.817206, acc = 0.885000\n", - "L = 35.802825, acc = 0.885000\n", - "L = 35.788394, acc = 0.885000\n", - "L = 35.773913, acc = 0.885000\n", - "L = 35.759382, acc = 0.885000\n", - "L = 35.744802, acc = 0.885000\n", - "L = 35.730171, acc = 0.885000\n", - "L = 35.715492, acc = 0.885000\n", - "L = 35.700763, acc = 0.885000\n", - "L = 35.685984, acc = 0.885000\n", - "L = 35.671156, acc = 0.885000\n", - "L = 35.656279, acc = 0.885000\n", - "L = 35.641353, acc = 0.885000\n", - "L = 35.626377, acc = 0.885000\n", - "L = 35.611353, acc = 0.885000\n", - "L = 35.596280, acc = 0.885000\n", - "L = 35.581158, acc = 0.885000\n", - "L = 35.565987, acc = 0.885000\n", - "L = 35.550768, acc = 0.885000\n", - "L = 35.535500, acc = 0.885000\n", - "L = 35.520184, acc = 0.885000\n", - "L = 35.504820, acc = 0.885000\n", - "L = 35.489407, acc = 0.885000\n", - "L = 35.473947, acc = 0.885000\n", - "L = 35.458439, acc = 0.885000\n", - "L = 35.442882, acc = 0.885000\n", - "L = 35.427279, acc = 0.885000\n", - "L = 35.411628, acc = 0.885000\n", - "L = 35.395929, acc = 0.885000\n", - "L = 35.380183, acc = 0.885000\n", - "L = 35.364390, acc = 0.885000\n", - "L = 35.348551, acc = 0.885000\n", - "L = 35.332664, acc = 0.885000\n", - "L = 35.316731, acc = 0.885000\n", - "L = 35.300751, acc = 0.885000\n", - "L = 35.284725, acc = 0.885000\n", - "L = 35.268652, acc = 0.885000\n", - "L = 35.252534, acc = 0.885000\n", - "L = 35.236370, acc = 0.885000\n", - "L = 35.220160, acc = 0.885000\n", - "L = 35.203904, acc = 0.885000\n", - "L = 35.187603, acc = 0.885000\n", - "L = 35.171257, acc = 0.885000\n", - "L = 35.154866, acc = 0.885000\n", - "L = 35.138430, acc = 0.885000\n", - "L = 35.121949, acc = 0.890000\n", - "L = 35.105424, acc = 0.890000\n", - "L = 35.088854, acc = 0.890000\n", - "L = 35.072240, acc = 0.890000\n", - "L = 35.055582, acc = 0.890000\n", - "L = 35.038881, acc = 0.890000\n", - "L = 35.022136, acc = 0.890000\n", - "L = 35.005347, acc = 0.890000\n", - "L = 34.988515, acc = 0.890000\n", - "L = 34.971641, acc = 0.890000\n", - "L = 34.954723, acc = 0.890000\n", - "L = 34.937763, acc = 0.890000\n", - "L = 34.920760, acc = 0.890000\n", - "L = 34.903716, acc = 0.890000\n", - "L = 34.886629, acc = 0.890000\n", - "L = 34.869501, acc = 0.890000\n", - "L = 34.852331, acc = 0.890000\n", - "L = 34.835120, acc = 0.890000\n", - "L = 34.817867, acc = 0.890000\n", - "L = 34.800574, acc = 0.890000\n", - "L = 34.783240, acc = 0.895000\n", - "L = 34.765866, acc = 0.895000\n", - "L = 34.748452, acc = 0.895000\n", - "L = 34.730997, acc = 0.895000\n", - "L = 34.713503, acc = 0.895000\n", - "L = 34.695970, acc = 0.895000\n", - "L = 34.678397, acc = 0.895000\n", - "L = 34.660785, acc = 0.895000\n", - "L = 34.643134, acc = 0.895000\n", - "L = 34.625445, acc = 0.895000\n", - "L = 34.607718, acc = 0.895000\n", - "L = 34.589952, acc = 0.895000\n", - "L = 34.572149, acc = 0.895000\n", - "L = 34.554308, acc = 0.895000\n", - "L = 34.536429, acc = 0.895000\n", - "L = 34.518514, acc = 0.895000\n", - "L = 34.500562, acc = 0.895000\n", - "L = 34.482574, acc = 0.895000\n", - "L = 34.464549, acc = 0.895000\n", - "L = 34.446488, acc = 0.895000\n", - "L = 34.428391, acc = 0.895000\n", - "L = 34.410259, acc = 0.895000\n", - "L = 34.392092, acc = 0.895000\n", - "L = 34.373889, acc = 0.895000\n", - "L = 34.355652, acc = 0.895000\n", - "L = 34.337381, acc = 0.895000\n", - "L = 34.319075, acc = 0.895000\n", - "L = 34.300736, acc = 0.895000\n", - "L = 34.282362, acc = 0.895000\n", - "L = 34.263956, acc = 0.895000\n", - "L = 34.245516, acc = 0.895000\n", - "L = 34.227044, acc = 0.895000\n", - "L = 34.208539, acc = 0.895000\n", - "L = 34.190002, acc = 0.895000\n", - "L = 34.171432, acc = 0.895000\n", - "L = 34.152831, acc = 0.895000\n", - "L = 34.134199, acc = 0.895000\n", - "L = 34.115536, acc = 0.895000\n", - "L = 34.096841, acc = 0.895000\n", - "L = 34.078117, acc = 0.895000\n", - "L = 34.059361, acc = 0.895000\n", - "L = 34.040576, acc = 0.895000\n", - "L = 34.021761, acc = 0.895000\n", - "L = 34.002917, acc = 0.895000\n", - "L = 33.984043, acc = 0.895000\n", - "L = 33.965141, acc = 0.895000\n", - "L = 33.946210, acc = 0.895000\n", - "L = 33.927251, acc = 0.895000\n", - "L = 33.908264, acc = 0.895000\n", - "L = 33.889249, acc = 0.895000\n", - "L = 33.870206, acc = 0.895000\n", - "L = 33.851137, acc = 0.895000\n", - "L = 33.832040, acc = 0.895000\n", - "L = 33.812917, acc = 0.895000\n", - "L = 33.793768, acc = 0.895000\n", - "L = 33.774593, acc = 0.895000\n", - "L = 33.755392, acc = 0.895000\n", - "L = 33.736165, acc = 0.895000\n", - "L = 33.716914, acc = 0.895000\n", - "L = 33.697638, acc = 0.895000\n", - "L = 33.678337, acc = 0.895000\n", - "L = 33.659012, acc = 0.895000\n", - "L = 33.639663, acc = 0.895000\n", - "L = 33.620290, acc = 0.895000\n", - "L = 33.600894, acc = 0.895000\n", - "L = 33.581474, acc = 0.895000\n", - "L = 33.562032, acc = 0.895000\n", - "L = 33.542568, acc = 0.895000\n", - "L = 33.523081, acc = 0.895000\n", - "L = 33.503572, acc = 0.895000\n", - "L = 33.484041, acc = 0.895000\n", - "L = 33.464489, acc = 0.895000\n", - "L = 33.444916, acc = 0.895000\n", - "L = 33.425323, acc = 0.895000\n", - "L = 33.405708, acc = 0.895000\n", - "L = 33.386074, acc = 0.895000\n", - "L = 33.366419, acc = 0.895000\n", - "L = 33.346745, acc = 0.895000\n", - "L = 33.327051, acc = 0.895000\n", - "L = 33.307339, acc = 0.895000\n", - "L = 33.287607, acc = 0.895000\n", - "L = 33.267857, acc = 0.895000\n", - "L = 33.248089, acc = 0.895000\n", - "L = 33.228302, acc = 0.895000\n", - "L = 33.208498, acc = 0.895000\n", - "L = 33.188677, acc = 0.895000\n", - "L = 33.168838, acc = 0.895000\n", - "L = 33.148982, acc = 0.895000\n", - "L = 33.129110, acc = 0.895000\n", - "L = 33.109221, acc = 0.895000\n", - "L = 33.089317, acc = 0.895000\n", - "L = 33.069396, acc = 0.895000\n", - "L = 33.049460, acc = 0.895000\n", - "L = 33.029509, acc = 0.895000\n", - "L = 33.009543, acc = 0.895000\n", - "L = 32.989562, acc = 0.895000\n", - "L = 32.969566, acc = 0.895000\n", - "L = 32.949556, acc = 0.895000\n", - "L = 32.929533, acc = 0.895000\n", - "L = 32.909495, acc = 0.895000\n", - "L = 32.889445, acc = 0.895000\n", - "L = 32.869381, acc = 0.895000\n", - "L = 32.849304, acc = 0.895000\n", - "L = 32.829215, acc = 0.895000\n", - "L = 32.809113, acc = 0.895000\n", - "L = 32.788999, acc = 0.895000\n", - "L = 32.768873, acc = 0.895000\n", - "L = 32.748736, acc = 0.895000\n", - "L = 32.728587, acc = 0.895000\n", - "L = 32.708427, acc = 0.895000\n", - "L = 32.688257, acc = 0.895000\n", - "L = 32.668075, acc = 0.895000\n", - "L = 32.647884, acc = 0.895000\n", - "L = 32.627682, acc = 0.895000\n", - "L = 32.607470, acc = 0.895000\n", - "L = 32.587249, acc = 0.895000\n", - "L = 32.567018, acc = 0.895000\n", - "L = 32.546778, acc = 0.895000\n", - "L = 32.526529, acc = 0.895000\n", - "L = 32.506271, acc = 0.895000\n", - "L = 32.486005, acc = 0.895000\n", - "L = 32.465731, acc = 0.895000\n", - "L = 32.445449, acc = 0.900000\n", - "L = 32.425159, acc = 0.900000\n", - "L = 32.404862, acc = 0.900000\n", - "L = 32.384557, acc = 0.900000\n", - "L = 32.364245, acc = 0.900000\n", - "L = 32.343926, acc = 0.900000\n", - "L = 32.323601, acc = 0.900000\n", - "L = 32.303270, acc = 0.900000\n", - "L = 32.282932, acc = 0.900000\n", - "L = 32.262588, acc = 0.900000\n", - "L = 32.242239, acc = 0.900000\n", - "L = 32.221884, acc = 0.900000\n", - "L = 32.201523, acc = 0.900000\n", - "L = 32.181158, acc = 0.900000\n", - "L = 32.160788, acc = 0.900000\n", - "L = 32.140413, acc = 0.900000\n", - "L = 32.120034, acc = 0.900000\n", - "L = 32.099650, acc = 0.900000\n", - "L = 32.079262, acc = 0.900000\n", - "L = 32.058871, acc = 0.900000\n", - "L = 32.038476, acc = 0.900000\n", - "L = 32.018078, acc = 0.900000\n", - "L = 31.997676, acc = 0.900000\n", - "L = 31.977272, acc = 0.900000\n", - "L = 31.956864, acc = 0.900000\n", - "L = 31.936454, acc = 0.900000\n", - "L = 31.916042, acc = 0.900000\n", - "L = 31.895627, acc = 0.900000\n", - "L = 31.875211, acc = 0.900000\n", - "L = 31.854792, acc = 0.900000\n", - "L = 31.834372, acc = 0.900000\n", - "L = 31.813951, acc = 0.900000\n", - "L = 31.793528, acc = 0.900000\n", - "L = 31.773104, acc = 0.900000\n", - "L = 31.752679, acc = 0.900000\n", - "L = 31.732254, acc = 0.900000\n", - "L = 31.711828, acc = 0.900000\n", - "L = 31.691402, acc = 0.900000\n", - "L = 31.670975, acc = 0.900000\n", - "L = 31.650549, acc = 0.900000\n", - "L = 31.630123, acc = 0.900000\n", - "L = 31.609697, acc = 0.900000\n", - "L = 31.589272, acc = 0.900000\n", - "L = 31.568847, acc = 0.900000\n", - "L = 31.548423, acc = 0.900000\n", - "L = 31.528001, acc = 0.900000\n", - "L = 31.507580, acc = 0.900000\n", - "L = 31.487160, acc = 0.900000\n", - "L = 31.466741, acc = 0.900000\n", - "L = 31.446325, acc = 0.900000\n", - "L = 31.425910, acc = 0.900000\n", - "L = 31.405497, acc = 0.900000\n", - "L = 31.385087, acc = 0.900000\n", - "L = 31.364679, acc = 0.900000\n", - "L = 31.344274, acc = 0.900000\n", - "L = 31.323871, acc = 0.900000\n", - "L = 31.303471, acc = 0.900000\n", - "L = 31.283074, acc = 0.900000\n", - "L = 31.262680, acc = 0.900000\n", - "L = 31.242290, acc = 0.900000\n", - "L = 31.221903, acc = 0.900000\n", - "L = 31.201520, acc = 0.900000\n", - "L = 31.181141, acc = 0.900000\n", - "L = 31.160765, acc = 0.900000\n", - "L = 31.140393, acc = 0.905000\n", - "L = 31.120026, acc = 0.905000\n", - "L = 31.099663, acc = 0.905000\n", - "L = 31.079305, acc = 0.905000\n", - "L = 31.058951, acc = 0.905000\n", - "L = 31.038602, acc = 0.905000\n", - "L = 31.018258, acc = 0.905000\n", - "L = 30.997919, acc = 0.905000\n", - "L = 30.977585, acc = 0.905000\n", - "L = 30.957256, acc = 0.905000\n", - "L = 30.936933, acc = 0.905000\n", - "L = 30.916616, acc = 0.905000\n", - "L = 30.896304, acc = 0.905000\n", - "L = 30.875998, acc = 0.905000\n", - "L = 30.855698, acc = 0.905000\n", - "L = 30.835404, acc = 0.905000\n", - "L = 30.815117, acc = 0.905000\n", - "L = 30.794836, acc = 0.905000\n", - "L = 30.774561, acc = 0.905000\n", - "L = 30.754293, acc = 0.905000\n", - "L = 30.734031, acc = 0.905000\n", - "L = 30.713777, acc = 0.905000\n", - "L = 30.693529, acc = 0.905000\n", - "L = 30.673288, acc = 0.905000\n", - "L = 30.653055, acc = 0.905000\n", - "L = 30.632829, acc = 0.905000\n", - "L = 30.612610, acc = 0.905000\n", - "L = 30.592399, acc = 0.905000\n", - "L = 30.572196, acc = 0.905000\n", - "L = 30.552000, acc = 0.905000\n", - "L = 30.531812, acc = 0.905000\n", - "L = 30.511633, acc = 0.905000\n", - "L = 30.491461, acc = 0.905000\n", - "L = 30.471297, acc = 0.905000\n", - "L = 30.451142, acc = 0.905000\n", - "L = 30.430995, acc = 0.905000\n", - "L = 30.410857, acc = 0.905000\n", - "L = 30.390727, acc = 0.905000\n", - "L = 30.370606, acc = 0.905000\n", - "L = 30.350494, acc = 0.905000\n", - "L = 30.330391, acc = 0.905000\n", - "L = 30.310296, acc = 0.905000\n", - "L = 30.290211, acc = 0.905000\n", - "L = 30.270135, acc = 0.905000\n", - "L = 30.250069, acc = 0.905000\n", - "L = 30.230011, acc = 0.905000\n", - "L = 30.209963, acc = 0.905000\n", - "L = 30.189925, acc = 0.905000\n", - "L = 30.169896, acc = 0.905000\n", - "L = 30.149878, acc = 0.905000\n", - "L = 30.129868, acc = 0.905000\n", - "L = 30.109869, acc = 0.905000\n", - "L = 30.089880, acc = 0.905000\n", - "L = 30.069901, acc = 0.905000\n", - "L = 30.049932, acc = 0.905000\n", - "L = 30.029974, acc = 0.905000\n", - "L = 30.010025, acc = 0.905000\n", - "L = 29.990087, acc = 0.905000\n", - "L = 29.970160, acc = 0.905000\n", - "L = 29.950243, acc = 0.905000\n", - "L = 29.930337, acc = 0.905000\n", - "L = 29.910442, acc = 0.905000\n", - "L = 29.890557, acc = 0.905000\n", - "L = 29.870683, acc = 0.905000\n", - "L = 29.850820, acc = 0.905000\n", - "L = 29.830969, acc = 0.905000\n", - "L = 29.811128, acc = 0.905000\n", - "L = 29.791298, acc = 0.905000\n", - "L = 29.771480, acc = 0.905000\n", - "L = 29.751673, acc = 0.905000\n", - "L = 29.731877, acc = 0.905000\n", - "L = 29.712093, acc = 0.905000\n", - "L = 29.692320, acc = 0.905000\n", - "L = 29.672559, acc = 0.905000\n", - "L = 29.652810, acc = 0.905000\n", - "L = 29.633072, acc = 0.905000\n", - "L = 29.613346, acc = 0.915000\n", - "L = 29.593631, acc = 0.915000\n", - "L = 29.573929, acc = 0.915000\n", - "L = 29.554239, acc = 0.915000\n", - "L = 29.534560, acc = 0.915000\n", - "L = 29.514894, acc = 0.915000\n", - "L = 29.495239, acc = 0.915000\n", - "L = 29.475597, acc = 0.915000\n", - "L = 29.455967, acc = 0.915000\n", - "L = 29.436350, acc = 0.915000\n", - "L = 29.416744, acc = 0.915000\n", - "L = 29.397151, acc = 0.915000\n", - "L = 29.377571, acc = 0.915000\n", - "L = 29.358003, acc = 0.915000\n", - "L = 29.338447, acc = 0.915000\n", - "L = 29.318904, acc = 0.915000\n", - "L = 29.299374, acc = 0.915000\n", - "L = 29.279856, acc = 0.915000\n", - "L = 29.260351, acc = 0.915000\n", - "L = 29.240859, acc = 0.915000\n", - "L = 29.221379, acc = 0.915000\n", - "L = 29.201913, acc = 0.915000\n", - "L = 29.182459, acc = 0.915000\n", - "L = 29.163018, acc = 0.915000\n", - "L = 29.143591, acc = 0.915000\n", - "L = 29.124176, acc = 0.915000\n", - "L = 29.104774, acc = 0.915000\n", - "L = 29.085385, acc = 0.915000\n", - "L = 29.066010, acc = 0.915000\n", - "L = 29.046648, acc = 0.915000\n", - "L = 29.027299, acc = 0.915000\n", - "L = 29.007963, acc = 0.915000\n", - "L = 28.988640, acc = 0.915000\n", - "L = 28.969331, acc = 0.915000\n", - "L = 28.950035, acc = 0.915000\n", - "L = 28.930753, acc = 0.915000\n", - "L = 28.911483, acc = 0.915000\n", - "L = 28.892228, acc = 0.915000\n", - "L = 28.872986, acc = 0.915000\n", - "L = 28.853757, acc = 0.915000\n", - "L = 28.834542, acc = 0.915000\n", - "L = 28.815340, acc = 0.915000\n", - "L = 28.796152, acc = 0.915000\n", - "L = 28.776978, acc = 0.915000\n", - "L = 28.757817, acc = 0.915000\n", - "L = 28.738670, acc = 0.915000\n", - "L = 28.719537, acc = 0.915000\n", - "L = 28.700417, acc = 0.915000\n", - "L = 28.681311, acc = 0.915000\n", - "L = 28.662219, acc = 0.915000\n", - "L = 28.643141, acc = 0.915000\n", - "L = 28.624076, acc = 0.915000\n", - "L = 28.605026, acc = 0.915000\n", - "L = 28.585989, acc = 0.915000\n", - "L = 28.566966, acc = 0.915000\n", - "L = 28.547957, acc = 0.915000\n", - "L = 28.528962, acc = 0.915000\n", - "L = 28.509980, acc = 0.915000\n", - "L = 28.491013, acc = 0.915000\n", - "L = 28.472060, acc = 0.915000\n", - "L = 28.453121, acc = 0.915000\n", - "L = 28.434195, acc = 0.915000\n", - "L = 28.415284, acc = 0.915000\n", - "L = 28.396387, acc = 0.915000\n", - "L = 28.377504, acc = 0.915000\n", - "L = 28.358635, acc = 0.915000\n", - "L = 28.339780, acc = 0.915000\n", - "L = 28.320939, acc = 0.915000\n", - "L = 28.302112, acc = 0.915000\n", - "L = 28.283299, acc = 0.915000\n", - "L = 28.264500, acc = 0.915000\n", - "L = 28.245716, acc = 0.915000\n", - "L = 28.226945, acc = 0.915000\n", - "L = 28.208189, acc = 0.915000\n", - "L = 28.189447, acc = 0.915000\n", - "L = 28.170719, acc = 0.915000\n", - "L = 28.152006, acc = 0.915000\n", - "L = 28.133306, acc = 0.915000\n", - "L = 28.114621, acc = 0.915000\n", - "L = 28.095950, acc = 0.915000\n", - "L = 28.077293, acc = 0.915000\n", - "L = 28.058650, acc = 0.915000\n", - "L = 28.040021, acc = 0.915000\n", - "L = 28.021407, acc = 0.915000\n", - "L = 28.002807, acc = 0.915000\n", - "L = 27.984221, acc = 0.915000\n", - "L = 27.965649, acc = 0.915000\n", - "L = 27.947092, acc = 0.915000\n", - "L = 27.928549, acc = 0.915000\n", - "L = 27.910020, acc = 0.915000\n", - "L = 27.891505, acc = 0.915000\n", - "L = 27.873004, acc = 0.915000\n", - "L = 27.854518, acc = 0.915000\n", - "L = 27.836046, acc = 0.915000\n", - "L = 27.817588, acc = 0.915000\n", - "L = 27.799144, acc = 0.915000\n", - "L = 27.780715, acc = 0.915000\n", - "L = 27.762300, acc = 0.915000\n", - "L = 27.743899, acc = 0.915000\n", - "L = 27.725512, acc = 0.915000\n", - "L = 27.707140, acc = 0.915000\n", - "L = 27.688781, acc = 0.915000\n", - "L = 27.670437, acc = 0.915000\n", - "L = 27.652107, acc = 0.915000\n", - "L = 27.633791, acc = 0.915000\n", - "L = 27.615490, acc = 0.915000\n", - "L = 27.597202, acc = 0.915000\n", - "L = 27.578929, acc = 0.915000\n", - "L = 27.560670, acc = 0.915000\n", - "L = 27.542425, acc = 0.915000\n", - "L = 27.524194, acc = 0.915000\n", - "L = 27.505977, acc = 0.915000\n", - "L = 27.487775, acc = 0.915000\n", - "L = 27.469586, acc = 0.915000\n", - "L = 27.451412, acc = 0.915000\n", - "L = 27.433252, acc = 0.915000\n", - "L = 27.415106, acc = 0.915000\n", - "L = 27.396973, acc = 0.915000\n", - "L = 27.378855, acc = 0.915000\n", - "L = 27.360751, acc = 0.915000\n", - "L = 27.342662, acc = 0.915000\n", - "L = 27.324586, acc = 0.915000\n", - "L = 27.306524, acc = 0.915000\n", - "L = 27.288476, acc = 0.915000\n", - "L = 27.270442, acc = 0.915000\n", - "L = 27.252422, acc = 0.915000\n", - "L = 27.234416, acc = 0.915000\n", - "L = 27.216424, acc = 0.915000\n", - "L = 27.198446, acc = 0.915000\n", - "L = 27.180482, acc = 0.920000\n", - "L = 27.162532, acc = 0.920000\n", - "L = 27.144595, acc = 0.920000\n", - "L = 27.126673, acc = 0.920000\n", - "L = 27.108764, acc = 0.920000\n", - "L = 27.090869, acc = 0.920000\n", - "L = 27.072988, acc = 0.920000\n", - "L = 27.055121, acc = 0.920000\n", - "L = 27.037267, acc = 0.920000\n", - "L = 27.019427, acc = 0.920000\n" + "L = 13.788259, acc = 0.960000\n", + "L = 13.775337, acc = 0.960000\n", + "L = 13.762467, acc = 0.965000\n", + "L = 13.749649, acc = 0.965000\n", + "L = 13.736883, acc = 0.965000\n", + "L = 13.724167, acc = 0.965000\n", + "L = 13.711503, acc = 0.965000\n", + "L = 13.698888, acc = 0.965000\n", + "L = 13.686324, acc = 0.965000\n", + "L = 13.673810, acc = 0.965000\n", + "L = 13.661346, acc = 0.965000\n", + "L = 13.648931, acc = 0.965000\n", + "L = 13.636565, acc = 0.965000\n", + "L = 13.624248, acc = 0.965000\n", + "L = 13.611980, acc = 0.965000\n", + "L = 13.599759, acc = 0.965000\n", + "L = 13.587587, acc = 0.965000\n", + "L = 13.575462, acc = 0.965000\n", + "L = 13.563385, acc = 0.965000\n", + "L = 13.551354, acc = 0.965000\n", + "L = 13.539371, acc = 0.965000\n", + "L = 13.527434, acc = 0.965000\n", + "L = 13.515544, acc = 0.965000\n", + "L = 13.503699, acc = 0.965000\n", + "L = 13.491901, acc = 0.965000\n", + "L = 13.480147, acc = 0.965000\n", + "L = 13.468439, acc = 0.965000\n", + "L = 13.456776, acc = 0.965000\n", + "L = 13.445158, acc = 0.965000\n", + "L = 13.433585, acc = 0.965000\n", + "L = 13.422055, acc = 0.965000\n", + "L = 13.410569, acc = 0.965000\n", + "L = 13.399128, acc = 0.965000\n", + "L = 13.387729, acc = 0.965000\n", + "L = 13.376374, acc = 0.965000\n", + "L = 13.365062, acc = 0.965000\n", + "L = 13.353792, acc = 0.965000\n", + "L = 13.342565, acc = 0.965000\n", + "L = 13.331380, acc = 0.965000\n", + "L = 13.320237, acc = 0.965000\n", + "L = 13.309136, acc = 0.965000\n", + "L = 13.298077, acc = 0.965000\n", + "L = 13.287059, acc = 0.965000\n", + "L = 13.276081, acc = 0.965000\n", + "L = 13.265145, acc = 0.965000\n", + "L = 13.254249, acc = 0.965000\n", + "L = 13.243393, acc = 0.965000\n", + "L = 13.232578, acc = 0.965000\n", + "L = 13.221802, acc = 0.965000\n", + "L = 13.211066, acc = 0.965000\n", + "L = 13.200370, acc = 0.965000\n", + "L = 13.189712, acc = 0.965000\n", + "L = 13.179094, acc = 0.965000\n", + "L = 13.168515, acc = 0.965000\n", + "L = 13.157973, acc = 0.965000\n", + "L = 13.147471, acc = 0.965000\n", + "L = 13.137006, acc = 0.965000\n", + "L = 13.126579, acc = 0.965000\n", + "L = 13.116190, acc = 0.965000\n", + "L = 13.105839, acc = 0.965000\n", + "L = 13.095525, acc = 0.965000\n", + "L = 13.085247, acc = 0.965000\n", + "L = 13.075007, acc = 0.965000\n", + "L = 13.064803, acc = 0.965000\n", + "L = 13.054636, acc = 0.965000\n", + "L = 13.044504, acc = 0.965000\n", + "L = 13.034409, acc = 0.965000\n", + "L = 13.024350, acc = 0.965000\n", + "L = 13.014326, acc = 0.965000\n", + "L = 13.004338, acc = 0.965000\n", + "L = 12.994385, acc = 0.965000\n", + "L = 12.984467, acc = 0.965000\n", + "L = 12.974583, acc = 0.965000\n", + "L = 12.964735, acc = 0.965000\n", + "L = 12.954920, acc = 0.965000\n", + "L = 12.945140, acc = 0.965000\n", + "L = 12.935394, acc = 0.965000\n", + "L = 12.925682, acc = 0.965000\n", + "L = 12.916004, acc = 0.965000\n", + "L = 12.906359, acc = 0.965000\n", + "L = 12.896747, acc = 0.965000\n", + "L = 12.887169, acc = 0.965000\n", + "L = 12.877623, acc = 0.965000\n", + "L = 12.868110, acc = 0.965000\n", + "L = 12.858630, acc = 0.965000\n", + "L = 12.849182, acc = 0.965000\n", + "L = 12.839766, acc = 0.965000\n", + "L = 12.830383, acc = 0.965000\n", + "L = 12.821031, acc = 0.965000\n", + "L = 12.811711, acc = 0.965000\n", + "L = 12.802422, acc = 0.965000\n", + "L = 12.793165, acc = 0.965000\n", + "L = 12.783939, acc = 0.965000\n", + "L = 12.774743, acc = 0.965000\n", + "L = 12.765579, acc = 0.965000\n", + "L = 12.756445, acc = 0.965000\n", + "L = 12.747342, acc = 0.965000\n", + "L = 12.738269, acc = 0.965000\n", + "L = 12.729226, acc = 0.965000\n", + "L = 12.720214, acc = 0.965000\n", + "L = 12.711231, acc = 0.965000\n", + "L = 12.702277, acc = 0.965000\n", + "L = 12.693354, acc = 0.965000\n", + "L = 12.684459, acc = 0.965000\n", + "L = 12.675594, acc = 0.965000\n", + "L = 12.666757, acc = 0.965000\n", + "L = 12.657950, acc = 0.965000\n", + "L = 12.649171, acc = 0.965000\n", + "L = 12.640421, acc = 0.965000\n", + "L = 12.631699, acc = 0.965000\n", + "L = 12.623006, acc = 0.965000\n", + "L = 12.614340, acc = 0.965000\n", + "L = 12.605703, acc = 0.965000\n", + "L = 12.597093, acc = 0.965000\n", + "L = 12.588511, acc = 0.965000\n", + "L = 12.579956, acc = 0.965000\n", + "L = 12.571429, acc = 0.965000\n", + "L = 12.562928, acc = 0.965000\n", + "L = 12.554455, acc = 0.965000\n", + "L = 12.546009, acc = 0.965000\n", + "L = 12.537590, acc = 0.965000\n", + "L = 12.529197, acc = 0.965000\n", + "L = 12.520831, acc = 0.965000\n", + "L = 12.512491, acc = 0.965000\n", + "L = 12.504177, acc = 0.965000\n", + "L = 12.495889, acc = 0.965000\n", + "L = 12.487627, acc = 0.965000\n", + "L = 12.479391, acc = 0.965000\n", + "L = 12.471180, acc = 0.965000\n", + "L = 12.462995, acc = 0.965000\n", + "L = 12.454836, acc = 0.965000\n", + "L = 12.446701, acc = 0.965000\n", + "L = 12.438592, acc = 0.965000\n", + "L = 12.430508, acc = 0.965000\n", + "L = 12.422448, acc = 0.965000\n", + "L = 12.414413, acc = 0.965000\n", + "L = 12.406403, acc = 0.965000\n", + "L = 12.398417, acc = 0.965000\n", + "L = 12.390456, acc = 0.965000\n", + "L = 12.382519, acc = 0.965000\n", + "L = 12.374605, acc = 0.965000\n", + "L = 12.366716, acc = 0.965000\n", + "L = 12.358851, acc = 0.965000\n", + "L = 12.351009, acc = 0.965000\n", + "L = 12.343190, acc = 0.965000\n", + "L = 12.335396, acc = 0.965000\n", + "L = 12.327624, acc = 0.965000\n", + "L = 12.319876, acc = 0.965000\n", + "L = 12.312151, acc = 0.965000\n", + "L = 12.304448, acc = 0.965000\n", + "L = 12.296769, acc = 0.965000\n", + "L = 12.289112, acc = 0.965000\n", + "L = 12.281478, acc = 0.965000\n", + "L = 12.273866, acc = 0.965000\n", + "L = 12.266277, acc = 0.965000\n", + "L = 12.258710, acc = 0.965000\n", + "L = 12.251165, acc = 0.965000\n", + "L = 12.243642, acc = 0.965000\n", + "L = 12.236141, acc = 0.965000\n", + "L = 12.228662, acc = 0.965000\n", + "L = 12.221204, acc = 0.965000\n", + "L = 12.213768, acc = 0.965000\n", + "L = 12.206354, acc = 0.965000\n", + "L = 12.198961, acc = 0.965000\n", + "L = 12.191589, acc = 0.965000\n", + "L = 12.184238, acc = 0.965000\n", + "L = 12.176908, acc = 0.965000\n", + "L = 12.169599, acc = 0.965000\n", + "L = 12.162311, acc = 0.965000\n", + "L = 12.155044, acc = 0.965000\n", + "L = 12.147797, acc = 0.965000\n", + "L = 12.140571, acc = 0.965000\n", + "L = 12.133365, acc = 0.965000\n", + "L = 12.126180, acc = 0.965000\n", + "L = 12.119015, acc = 0.965000\n", + "L = 12.111869, acc = 0.965000\n", + "L = 12.104744, acc = 0.965000\n", + "L = 12.097639, acc = 0.965000\n", + "L = 12.090553, acc = 0.965000\n", + "L = 12.083487, acc = 0.965000\n", + "L = 12.076441, acc = 0.965000\n", + "L = 12.069414, acc = 0.965000\n", + "L = 12.062407, acc = 0.965000\n", + "L = 12.055419, acc = 0.965000\n", + "L = 12.048450, acc = 0.965000\n", + "L = 12.041500, acc = 0.965000\n", + "L = 12.034569, acc = 0.965000\n", + "L = 12.027657, acc = 0.965000\n", + "L = 12.020764, acc = 0.965000\n", + "L = 12.013890, acc = 0.965000\n", + "L = 12.007034, acc = 0.965000\n", + "L = 12.000197, acc = 0.965000\n", + "L = 11.993379, acc = 0.965000\n", + "L = 11.986578, acc = 0.965000\n", + "L = 11.979796, acc = 0.965000\n", + "L = 11.973033, acc = 0.965000\n", + "L = 11.966287, acc = 0.965000\n", + "L = 11.959559, acc = 0.965000\n", + "L = 11.952849, acc = 0.965000\n", + "L = 11.946157, acc = 0.965000\n", + "L = 11.939483, acc = 0.965000\n", + "L = 11.932827, acc = 0.965000\n", + "L = 11.926188, acc = 0.965000\n", + "L = 11.919566, acc = 0.965000\n", + "L = 11.912962, acc = 0.965000\n", + "L = 11.906376, acc = 0.965000\n", + "L = 11.899806, acc = 0.965000\n", + "L = 11.893254, acc = 0.965000\n", + "L = 11.886718, acc = 0.965000\n", + "L = 11.880200, acc = 0.965000\n", + "L = 11.873699, acc = 0.965000\n", + "L = 11.867214, acc = 0.965000\n", + "L = 11.860747, acc = 0.965000\n", + "L = 11.854295, acc = 0.965000\n", + "L = 11.847861, acc = 0.965000\n", + "L = 11.841443, acc = 0.965000\n", + "L = 11.835041, acc = 0.965000\n", + "L = 11.828656, acc = 0.965000\n", + "L = 11.822287, acc = 0.965000\n", + "L = 11.815935, acc = 0.965000\n", + "L = 11.809598, acc = 0.965000\n", + "L = 11.803278, acc = 0.965000\n", + "L = 11.796973, acc = 0.965000\n", + "L = 11.790684, acc = 0.965000\n", + "L = 11.784412, acc = 0.965000\n", + "L = 11.778154, acc = 0.965000\n", + "L = 11.771913, acc = 0.965000\n", + "L = 11.765687, acc = 0.965000\n", + "L = 11.759477, acc = 0.965000\n", + "L = 11.753282, acc = 0.970000\n", + "L = 11.747103, acc = 0.970000\n", + "L = 11.740939, acc = 0.970000\n", + "L = 11.734790, acc = 0.970000\n", + "L = 11.728656, acc = 0.970000\n", + "L = 11.722538, acc = 0.970000\n", + "L = 11.716434, acc = 0.970000\n", + "L = 11.710346, acc = 0.970000\n", + "L = 11.704272, acc = 0.970000\n", + "L = 11.698213, acc = 0.970000\n", + "L = 11.692169, acc = 0.970000\n", + "L = 11.686140, acc = 0.970000\n", + "L = 11.680125, acc = 0.970000\n", + "L = 11.674125, acc = 0.970000\n", + "L = 11.668140, acc = 0.970000\n", + "L = 11.662169, acc = 0.970000\n", + "L = 11.656212, acc = 0.970000\n", + "L = 11.650269, acc = 0.970000\n", + "L = 11.644341, acc = 0.970000\n", + "L = 11.638427, acc = 0.970000\n", + "L = 11.632527, acc = 0.970000\n", + "L = 11.626641, acc = 0.970000\n", + "L = 11.620769, acc = 0.970000\n", + "L = 11.614911, acc = 0.970000\n", + "L = 11.609067, acc = 0.970000\n", + "L = 11.603237, acc = 0.970000\n", + "L = 11.597420, acc = 0.970000\n", + "L = 11.591618, acc = 0.970000\n", + "L = 11.585828, acc = 0.970000\n", + "L = 11.580053, acc = 0.970000\n", + "L = 11.574291, acc = 0.970000\n", + "L = 11.568542, acc = 0.970000\n", + "L = 11.562807, acc = 0.970000\n", + "L = 11.557085, acc = 0.970000\n", + "L = 11.551376, acc = 0.970000\n", + "L = 11.545680, acc = 0.970000\n", + "L = 11.539998, acc = 0.970000\n", + "L = 11.534329, acc = 0.970000\n", + "L = 11.528673, acc = 0.970000\n", + "L = 11.523029, acc = 0.970000\n", + "L = 11.517399, acc = 0.970000\n", + "L = 11.511782, acc = 0.970000\n", + "L = 11.506177, acc = 0.970000\n", + "L = 11.500585, acc = 0.970000\n", + "L = 11.495006, acc = 0.970000\n", + "L = 11.489440, acc = 0.970000\n", + "L = 11.483886, acc = 0.970000\n", + "L = 11.478345, acc = 0.970000\n", + "L = 11.472816, acc = 0.970000\n", + "L = 11.467300, acc = 0.970000\n", + "L = 11.461796, acc = 0.970000\n", + "L = 11.456304, acc = 0.970000\n", + "L = 11.450825, acc = 0.970000\n", + "L = 11.445358, acc = 0.970000\n", + "L = 11.439903, acc = 0.970000\n", + "L = 11.434461, acc = 0.970000\n", + "L = 11.429030, acc = 0.970000\n", + "L = 11.423612, acc = 0.970000\n", + "L = 11.418205, acc = 0.970000\n", + "L = 11.412810, acc = 0.970000\n", + "L = 11.407428, acc = 0.970000\n", + "L = 11.402057, acc = 0.970000\n", + "L = 11.396698, acc = 0.970000\n", + "L = 11.391351, acc = 0.970000\n", + "L = 11.386015, acc = 0.970000\n", + "L = 11.380691, acc = 0.970000\n", + "L = 11.375379, acc = 0.970000\n", + "L = 11.370078, acc = 0.970000\n", + "L = 11.364789, acc = 0.970000\n", + "L = 11.359511, acc = 0.970000\n", + "L = 11.354245, acc = 0.970000\n", + "L = 11.348990, acc = 0.970000\n", + "L = 11.343746, acc = 0.970000\n", + "L = 11.338514, acc = 0.970000\n", + "L = 11.333293, acc = 0.970000\n", + "L = 11.328083, acc = 0.970000\n", + "L = 11.322884, acc = 0.970000\n", + "L = 11.317696, acc = 0.970000\n", + "L = 11.312520, acc = 0.970000\n", + "L = 11.307354, acc = 0.970000\n", + "L = 11.302200, acc = 0.970000\n", + "L = 11.297056, acc = 0.970000\n", + "L = 11.291923, acc = 0.970000\n", + "L = 11.286802, acc = 0.970000\n", + "L = 11.281691, acc = 0.970000\n", + "L = 11.276590, acc = 0.970000\n", + "L = 11.271501, acc = 0.970000\n", + "L = 11.266422, acc = 0.970000\n", + "L = 11.261354, acc = 0.970000\n", + "L = 11.256296, acc = 0.970000\n", + "L = 11.251249, acc = 0.970000\n", + "L = 11.246213, acc = 0.970000\n", + "L = 11.241187, acc = 0.970000\n", + "L = 11.236171, acc = 0.970000\n", + "L = 11.231166, acc = 0.970000\n", + "L = 11.226172, acc = 0.970000\n", + "L = 11.221187, acc = 0.970000\n", + "L = 11.216213, acc = 0.970000\n", + "L = 11.211249, acc = 0.970000\n", + "L = 11.206296, acc = 0.970000\n", + "L = 11.201352, acc = 0.970000\n", + "L = 11.196419, acc = 0.970000\n", + "L = 11.191496, acc = 0.970000\n", + "L = 11.186583, acc = 0.970000\n", + "L = 11.181680, acc = 0.970000\n", + "L = 11.176787, acc = 0.970000\n", + "L = 11.171904, acc = 0.970000\n", + "L = 11.167031, acc = 0.970000\n", + "L = 11.162167, acc = 0.970000\n", + "L = 11.157314, acc = 0.970000\n", + "L = 11.152470, acc = 0.970000\n", + "L = 11.147637, acc = 0.970000\n", + "L = 11.142813, acc = 0.970000\n", + "L = 11.137998, acc = 0.970000\n", + "L = 11.133194, acc = 0.970000\n", + "L = 11.128399, acc = 0.970000\n", + "L = 11.123613, acc = 0.970000\n", + "L = 11.118838, acc = 0.970000\n", + "L = 11.114072, acc = 0.970000\n", + "L = 11.109315, acc = 0.970000\n", + "L = 11.104568, acc = 0.970000\n", + "L = 11.099830, acc = 0.970000\n", + "L = 11.095102, acc = 0.970000\n", + "L = 11.090383, acc = 0.970000\n", + "L = 11.085673, acc = 0.970000\n", + "L = 11.080973, acc = 0.970000\n", + "L = 11.076282, acc = 0.970000\n", + "L = 11.071600, acc = 0.970000\n", + "L = 11.066928, acc = 0.970000\n", + "L = 11.062264, acc = 0.970000\n", + "L = 11.057610, acc = 0.970000\n", + "L = 11.052965, acc = 0.970000\n", + "L = 11.048329, acc = 0.970000\n", + "L = 11.043702, acc = 0.970000\n", + "L = 11.039085, acc = 0.970000\n", + "L = 11.034476, acc = 0.970000\n", + "L = 11.029876, acc = 0.970000\n", + "L = 11.025285, acc = 0.970000\n", + "L = 11.020703, acc = 0.970000\n", + "L = 11.016130, acc = 0.970000\n", + "L = 11.011566, acc = 0.970000\n", + "L = 11.007011, acc = 0.970000\n", + "L = 11.002464, acc = 0.970000\n", + "L = 10.997927, acc = 0.970000\n", + "L = 10.993398, acc = 0.970000\n", + "L = 10.988877, acc = 0.970000\n", + "L = 10.984366, acc = 0.970000\n", + "L = 10.979863, acc = 0.970000\n", + "L = 10.975369, acc = 0.970000\n", + "L = 10.970883, acc = 0.970000\n", + "L = 10.966406, acc = 0.970000\n", + "L = 10.961938, acc = 0.970000\n", + "L = 10.957478, acc = 0.970000\n", + "L = 10.953026, acc = 0.970000\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "L = 27.001601, acc = 0.920000\n", - "L = 26.983789, acc = 0.925000\n", - "L = 26.965991, acc = 0.925000\n", - "L = 26.948206, acc = 0.925000\n", - "L = 26.930434, acc = 0.925000\n", - "L = 26.912677, acc = 0.925000\n", - "L = 26.894933, acc = 0.925000\n", - "L = 26.877202, acc = 0.925000\n", - "L = 26.859486, acc = 0.925000\n", - "L = 26.841782, acc = 0.925000\n", - "L = 26.824093, acc = 0.925000\n", - "L = 26.806416, acc = 0.925000\n", - "L = 26.788754, acc = 0.925000\n", - "L = 26.771104, acc = 0.925000\n", - "L = 26.753468, acc = 0.925000\n", - "L = 26.735846, acc = 0.925000\n", - "L = 26.718237, acc = 0.925000\n", - "L = 26.700641, acc = 0.925000\n", - "L = 26.683059, acc = 0.925000\n", - "L = 26.665490, acc = 0.925000\n", - "L = 26.647934, acc = 0.925000\n", - "L = 26.630391, acc = 0.925000\n", - "L = 26.612862, acc = 0.925000\n", - "L = 26.595346, acc = 0.930000\n", - "L = 26.577843, acc = 0.935000\n", - "L = 26.560353, acc = 0.935000\n", - "L = 26.542877, acc = 0.935000\n", - "L = 26.525413, acc = 0.935000\n", - "L = 26.507963, acc = 0.935000\n", - "L = 26.490525, acc = 0.935000\n", - "L = 26.473101, acc = 0.935000\n", - "L = 26.455690, acc = 0.935000\n", - "L = 26.438291, acc = 0.935000\n", - "L = 26.420905, acc = 0.935000\n", - "L = 26.403533, acc = 0.935000\n", - "L = 26.386173, acc = 0.935000\n", - "L = 26.368826, acc = 0.935000\n", - "L = 26.351492, acc = 0.935000\n", - "L = 26.334170, acc = 0.935000\n", - "L = 26.316862, acc = 0.935000\n", - "L = 26.299566, acc = 0.935000\n", - "L = 26.282283, acc = 0.935000\n", - "L = 26.265012, acc = 0.935000\n", - "L = 26.247754, acc = 0.935000\n", - "L = 26.230508, acc = 0.935000\n", - "L = 26.213276, acc = 0.935000\n", - "L = 26.196055, acc = 0.935000\n", - "L = 26.178847, acc = 0.935000\n", - "L = 26.161652, acc = 0.935000\n", - "L = 26.144469, acc = 0.935000\n", - "L = 26.127298, acc = 0.935000\n", - "L = 26.110140, acc = 0.935000\n", - "L = 26.092994, acc = 0.935000\n", - "L = 26.075860, acc = 0.935000\n", - "L = 26.058738, acc = 0.935000\n", - "L = 26.041629, acc = 0.935000\n", - "L = 26.024532, acc = 0.935000\n", - "L = 26.007447, acc = 0.935000\n", - "L = 25.990374, acc = 0.935000\n", - "L = 25.973313, acc = 0.935000\n", - "L = 25.956264, acc = 0.935000\n", - "L = 25.939227, acc = 0.935000\n", - "L = 25.922202, acc = 0.935000\n", - "L = 25.905189, acc = 0.935000\n", - "L = 25.888188, acc = 0.935000\n", - "L = 25.871198, acc = 0.935000\n", - "L = 25.854221, acc = 0.935000\n", - "L = 25.837255, acc = 0.935000\n", - "L = 25.820301, acc = 0.935000\n", - "L = 25.803358, acc = 0.935000\n", - "L = 25.786427, acc = 0.935000\n", - "L = 25.769508, acc = 0.935000\n", - "L = 25.752600, acc = 0.935000\n", - "L = 25.735704, acc = 0.935000\n", - "L = 25.718819, acc = 0.935000\n", - "L = 25.701946, acc = 0.935000\n", - "L = 25.685084, acc = 0.935000\n", - "L = 25.668233, acc = 0.935000\n", - "L = 25.651394, acc = 0.935000\n", - "L = 25.634566, acc = 0.935000\n", - "L = 25.617749, acc = 0.935000\n", - "L = 25.600943, acc = 0.935000\n", - "L = 25.584148, acc = 0.935000\n", - "L = 25.567365, acc = 0.935000\n", - "L = 25.550592, acc = 0.935000\n", - "L = 25.533831, acc = 0.935000\n", - "L = 25.517080, acc = 0.935000\n", - "L = 25.500341, acc = 0.935000\n", - "L = 25.483612, acc = 0.935000\n", - "L = 25.466894, acc = 0.935000\n", - "L = 25.450187, acc = 0.935000\n", - "L = 25.433491, acc = 0.935000\n", - "L = 25.416805, acc = 0.935000\n", - "L = 25.400130, acc = 0.935000\n", - "L = 25.383465, acc = 0.935000\n", - "L = 25.366811, acc = 0.935000\n", - "L = 25.350168, acc = 0.935000\n", - "L = 25.333535, acc = 0.935000\n", - "L = 25.316912, acc = 0.935000\n", - "L = 25.300300, acc = 0.935000\n", - "L = 25.283698, acc = 0.935000\n", - "L = 25.267106, acc = 0.935000\n", - "L = 25.250525, acc = 0.935000\n", - "L = 25.233954, acc = 0.935000\n", - "L = 25.217393, acc = 0.935000\n", - "L = 25.200842, acc = 0.935000\n", - "L = 25.184301, acc = 0.935000\n", - "L = 25.167769, acc = 0.935000\n", - "L = 25.151248, acc = 0.935000\n", - "L = 25.134737, acc = 0.935000\n", - "L = 25.118236, acc = 0.935000\n", - "L = 25.101744, acc = 0.935000\n", - "L = 25.085262, acc = 0.935000\n", - "L = 25.068790, acc = 0.935000\n", - "L = 25.052327, acc = 0.935000\n", - "L = 25.035874, acc = 0.935000\n", - "L = 25.019431, acc = 0.935000\n", - "L = 25.002997, acc = 0.935000\n", - "L = 24.986572, acc = 0.935000\n", - "L = 24.970157, acc = 0.935000\n", - "L = 24.953751, acc = 0.935000\n", - "L = 24.937355, acc = 0.935000\n", - "L = 24.920967, acc = 0.935000\n", - "L = 24.904589, acc = 0.935000\n", - "L = 24.888220, acc = 0.935000\n", - "L = 24.871860, acc = 0.935000\n", - "L = 24.855509, acc = 0.935000\n", - "L = 24.839167, acc = 0.935000\n", - "L = 24.822834, acc = 0.935000\n", - "L = 24.806510, acc = 0.935000\n", - "L = 24.790195, acc = 0.935000\n", - "L = 24.773888, acc = 0.935000\n", - "L = 24.757590, acc = 0.935000\n", - "L = 24.741301, acc = 0.935000\n", - "L = 24.725020, acc = 0.935000\n", - "L = 24.708748, acc = 0.935000\n", - "L = 24.692484, acc = 0.940000\n", - "L = 24.676229, acc = 0.940000\n", - "L = 24.659982, acc = 0.940000\n", - "L = 24.643744, acc = 0.940000\n", - "L = 24.627513, acc = 0.940000\n", - "L = 24.611291, acc = 0.940000\n", - "L = 24.595078, acc = 0.940000\n", - "L = 24.578872, acc = 0.940000\n", - "L = 24.562674, acc = 0.940000\n", - "L = 24.546485, acc = 0.940000\n", - "L = 24.530303, acc = 0.940000\n", - "L = 24.514129, acc = 0.940000\n", - "L = 24.497963, acc = 0.940000\n", - "L = 24.481805, acc = 0.940000\n", - "L = 24.465655, acc = 0.940000\n", - "L = 24.449512, acc = 0.940000\n", - "L = 24.433377, acc = 0.940000\n", - "L = 24.417249, acc = 0.940000\n", - "L = 24.401129, acc = 0.940000\n", - "L = 24.385016, acc = 0.940000\n", - "L = 24.368911, acc = 0.940000\n", - "L = 24.352813, acc = 0.940000\n", - "L = 24.336723, acc = 0.940000\n", - "L = 24.320639, acc = 0.940000\n", - "L = 24.304563, acc = 0.940000\n", - "L = 24.288494, acc = 0.940000\n", - "L = 24.272432, acc = 0.940000\n", - "L = 24.256377, acc = 0.940000\n", - "L = 24.240329, acc = 0.940000\n", - "L = 24.224288, acc = 0.940000\n", - "L = 24.208254, acc = 0.940000\n", - "L = 24.192226, acc = 0.940000\n", - "L = 24.176205, acc = 0.940000\n", - "L = 24.160191, acc = 0.940000\n", - "L = 24.144184, acc = 0.940000\n", - "L = 24.128183, acc = 0.940000\n", - "L = 24.112189, acc = 0.940000\n", - "L = 24.096201, acc = 0.940000\n", - "L = 24.080219, acc = 0.940000\n", - "L = 24.064244, acc = 0.940000\n", - "L = 24.048275, acc = 0.940000\n", - "L = 24.032313, acc = 0.940000\n", - "L = 24.016356, acc = 0.940000\n", - "L = 24.000406, acc = 0.940000\n", - "L = 23.984461, acc = 0.940000\n", - "L = 23.968523, acc = 0.940000\n", - "L = 23.952591, acc = 0.940000\n", - "L = 23.936664, acc = 0.940000\n", - "L = 23.920744, acc = 0.940000\n", - "L = 23.904829, acc = 0.940000\n", - "L = 23.888920, acc = 0.940000\n", - "L = 23.873016, acc = 0.940000\n", - "L = 23.857119, acc = 0.940000\n", - "L = 23.841226, acc = 0.940000\n", - "L = 23.825340, acc = 0.940000\n", - "L = 23.809459, acc = 0.940000\n", - "L = 23.793583, acc = 0.940000\n", - "L = 23.777712, acc = 0.940000\n", - "L = 23.761847, acc = 0.940000\n", - "L = 23.745987, acc = 0.940000\n", - "L = 23.730133, acc = 0.940000\n", - "L = 23.714283, acc = 0.940000\n", - "L = 23.698438, acc = 0.940000\n", - "L = 23.682599, acc = 0.940000\n", - "L = 23.666764, acc = 0.940000\n", - "L = 23.650935, acc = 0.940000\n", - "L = 23.635110, acc = 0.940000\n", - "L = 23.619290, acc = 0.940000\n", - "L = 23.603475, acc = 0.940000\n", - "L = 23.587665, acc = 0.940000\n", - "L = 23.571859, acc = 0.940000\n", - "L = 23.556058, acc = 0.940000\n", - "L = 23.540261, acc = 0.940000\n", - "L = 23.524469, acc = 0.940000\n", - "L = 23.508682, acc = 0.940000\n", - "L = 23.492899, acc = 0.940000\n", - "L = 23.477120, acc = 0.940000\n", - "L = 23.461345, acc = 0.940000\n", - "L = 23.445575, acc = 0.940000\n", - "L = 23.429809, acc = 0.940000\n", - "L = 23.414047, acc = 0.940000\n", - "L = 23.398289, acc = 0.940000\n", - "L = 23.382536, acc = 0.940000\n", - "L = 23.366786, acc = 0.940000\n", - "L = 23.351040, acc = 0.940000\n", - "L = 23.335299, acc = 0.940000\n", - "L = 23.319561, acc = 0.940000\n", - "L = 23.303827, acc = 0.940000\n", - "L = 23.288096, acc = 0.940000\n", - "L = 23.272370, acc = 0.940000\n", - "L = 23.256647, acc = 0.940000\n", - "L = 23.240927, acc = 0.940000\n", - "L = 23.225212, acc = 0.940000\n", - "L = 23.209500, acc = 0.940000\n", - "L = 23.193791, acc = 0.940000\n", - "L = 23.178086, acc = 0.940000\n", - "L = 23.162384, acc = 0.940000\n", - "L = 23.146686, acc = 0.940000\n", - "L = 23.130991, acc = 0.940000\n", - "L = 23.115299, acc = 0.940000\n", - "L = 23.099610, acc = 0.940000\n", - "L = 23.083925, acc = 0.940000\n", - "L = 23.068243, acc = 0.940000\n", - "L = 23.052564, acc = 0.940000\n", - "L = 23.036888, acc = 0.940000\n", - "L = 23.021215, acc = 0.940000\n", - "L = 23.005545, acc = 0.940000\n", - "L = 22.989879, acc = 0.940000\n", - "L = 22.974215, acc = 0.940000\n", - "L = 22.958554, acc = 0.940000\n", - "L = 22.942895, acc = 0.940000\n", - "L = 22.927240, acc = 0.940000\n", - "L = 22.911587, acc = 0.940000\n", - "L = 22.895938, acc = 0.940000\n", - "L = 22.880290, acc = 0.940000\n", - "L = 22.864646, acc = 0.940000\n", - "L = 22.849004, acc = 0.940000\n", - "L = 22.833365, acc = 0.940000\n", - "L = 22.817728, acc = 0.940000\n", - "L = 22.802094, acc = 0.940000\n", - "L = 22.786463, acc = 0.940000\n", - "L = 22.770834, acc = 0.940000\n", - "L = 22.755207, acc = 0.940000\n", - "L = 22.739583, acc = 0.940000\n", - "L = 22.723961, acc = 0.940000\n", - "L = 22.708342, acc = 0.940000\n", - "L = 22.692725, acc = 0.940000\n", - "L = 22.677110, acc = 0.940000\n", - "L = 22.661498, acc = 0.940000\n", - "L = 22.645887, acc = 0.940000\n", - "L = 22.630280, acc = 0.940000\n", - "L = 22.614674, acc = 0.940000\n", - "L = 22.599070, acc = 0.940000\n", - "L = 22.583469, acc = 0.940000\n", - "L = 22.567870, acc = 0.940000\n", - "L = 22.552273, acc = 0.940000\n", - "L = 22.536678, acc = 0.940000\n", - "L = 22.521085, acc = 0.940000\n", - "L = 22.505494, acc = 0.940000\n", - "L = 22.489905, acc = 0.945000\n", - "L = 22.474319, acc = 0.945000\n", - "L = 22.458734, acc = 0.945000\n", - "L = 22.443151, acc = 0.945000\n", - "L = 22.427570, acc = 0.945000\n", - "L = 22.411992, acc = 0.945000\n", - "L = 22.396415, acc = 0.945000\n", - "L = 22.380840, acc = 0.945000\n", - "L = 22.365267, acc = 0.945000\n", - "L = 22.349696, acc = 0.945000\n", - "L = 22.334127, acc = 0.945000\n", - "L = 22.318560, acc = 0.945000\n", - "L = 22.302995, acc = 0.945000\n", - "L = 22.287431, acc = 0.945000\n", - "L = 22.271870, acc = 0.945000\n", - "L = 22.256310, acc = 0.945000\n", - "L = 22.240752, acc = 0.945000\n", - "L = 22.225196, acc = 0.945000\n", - "L = 22.209642, acc = 0.945000\n", - "L = 22.194090, acc = 0.945000\n", - "L = 22.178539, acc = 0.945000\n", - "L = 22.162991, acc = 0.945000\n", - "L = 22.147444, acc = 0.945000\n", - "L = 22.131899, acc = 0.945000\n", - "L = 22.116356, acc = 0.945000\n", - "L = 22.100815, acc = 0.945000\n", - "L = 22.085276, acc = 0.945000\n", - "L = 22.069738, acc = 0.945000\n", - "L = 22.054203, acc = 0.945000\n", - "L = 22.038669, acc = 0.945000\n", - "L = 22.023137, acc = 0.945000\n", - "L = 22.007607, acc = 0.945000\n", - "L = 21.992079, acc = 0.945000\n", - "L = 21.976553, acc = 0.945000\n", - "L = 21.961028, acc = 0.945000\n", - "L = 21.945506, acc = 0.945000\n", - "L = 21.929986, acc = 0.945000\n", - "L = 21.914467, acc = 0.945000\n", - "L = 21.898951, acc = 0.945000\n", - "L = 21.883436, acc = 0.945000\n", - "L = 21.867924, acc = 0.945000\n", - "L = 21.852413, acc = 0.945000\n", - "L = 21.836904, acc = 0.945000\n", - "L = 21.821398, acc = 0.945000\n", - "L = 21.805893, acc = 0.945000\n", - "L = 21.790391, acc = 0.945000\n", - "L = 21.774891, acc = 0.945000\n", - "L = 21.759393, acc = 0.945000\n", - "L = 21.743897, acc = 0.945000\n", - "L = 21.728403, acc = 0.945000\n", - "L = 21.712911, acc = 0.945000\n", - "L = 21.697422, acc = 0.945000\n", - "L = 21.681935, acc = 0.945000\n", - "L = 21.666450, acc = 0.945000\n", - "L = 21.650967, acc = 0.945000\n", - "L = 21.635487, acc = 0.945000\n", - "L = 21.620009, acc = 0.945000\n", - "L = 21.604534, acc = 0.945000\n", - "L = 21.589061, acc = 0.945000\n", - "L = 21.573590, acc = 0.945000\n", - "L = 21.558122, acc = 0.945000\n", - "L = 21.542657, acc = 0.945000\n", - "L = 21.527194, acc = 0.945000\n", - "L = 21.511733, acc = 0.945000\n", - "L = 21.496276, acc = 0.945000\n", - "L = 21.480821, acc = 0.945000\n", - "L = 21.465368, acc = 0.945000\n", - "L = 21.449919, acc = 0.945000\n", - "L = 21.434472, acc = 0.945000\n", - "L = 21.419028, acc = 0.945000\n", - "L = 21.403587, acc = 0.945000\n", - "L = 21.388149, acc = 0.945000\n", - "L = 21.372714, acc = 0.945000\n", - "L = 21.357282, acc = 0.945000\n", - "L = 21.341853, acc = 0.945000\n", - "L = 21.326427, acc = 0.945000\n", - "L = 21.311004, acc = 0.945000\n", - "L = 21.295585, acc = 0.945000\n", - "L = 21.280168, acc = 0.945000\n", - "L = 21.264755, acc = 0.945000\n", - "L = 21.249346, acc = 0.945000\n", - "L = 21.233940, acc = 0.945000\n", - "L = 21.218537, acc = 0.945000\n", - "L = 21.203138, acc = 0.945000\n", - "L = 21.187743, acc = 0.945000\n", - "L = 21.172351, acc = 0.945000\n", - "L = 21.156962, acc = 0.945000\n", - "L = 21.141578, acc = 0.945000\n", - "L = 21.126197, acc = 0.945000\n", - "L = 21.110821, acc = 0.945000\n", - "L = 21.095448, acc = 0.945000\n", - "L = 21.080079, acc = 0.945000\n", - "L = 21.064714, acc = 0.945000\n", - "L = 21.049354, acc = 0.945000\n", - "L = 21.033997, acc = 0.945000\n", - "L = 21.018645, acc = 0.945000\n", - "L = 21.003297, acc = 0.945000\n", - "L = 20.987954, acc = 0.945000\n", - "L = 20.972615, acc = 0.945000\n", - "L = 20.957280, acc = 0.945000\n", - "L = 20.941950, acc = 0.945000\n", - "L = 20.926625, acc = 0.945000\n", - "L = 20.911304, acc = 0.945000\n", - "L = 20.895988, acc = 0.945000\n", - "L = 20.880677, acc = 0.945000\n", - "L = 20.865371, acc = 0.945000\n", - "L = 20.850070, acc = 0.945000\n", - "L = 20.834774, acc = 0.945000\n", - "L = 20.819483, acc = 0.945000\n", - "L = 20.804198, acc = 0.945000\n", - "L = 20.788917, acc = 0.945000\n", - "L = 20.773642, acc = 0.945000\n", - "L = 20.758373, acc = 0.945000\n", - "L = 20.743109, acc = 0.945000\n", - "L = 20.727850, acc = 0.945000\n", - "L = 20.712598, acc = 0.945000\n", - "L = 20.697351, acc = 0.945000\n", - "L = 20.682109, acc = 0.945000\n", - "L = 20.666874, acc = 0.945000\n", - "L = 20.651645, acc = 0.945000\n", - "L = 20.636421, acc = 0.945000\n", - "L = 20.621204, acc = 0.945000\n", - "L = 20.605993, acc = 0.945000\n", - "L = 20.590789, acc = 0.945000\n", - "L = 20.575591, acc = 0.945000\n", - "L = 20.560399, acc = 0.945000\n", - "L = 20.545214, acc = 0.945000\n", - "L = 20.530035, acc = 0.945000\n", - "L = 20.514863, acc = 0.945000\n", - "L = 20.499698, acc = 0.945000\n", - "L = 20.484540, acc = 0.945000\n", - "L = 20.469389, acc = 0.945000\n", - "L = 20.454245, acc = 0.945000\n", - "L = 20.439107, acc = 0.945000\n", - "L = 20.423978, acc = 0.945000\n", - "L = 20.408855, acc = 0.945000\n", - "L = 20.393740, acc = 0.945000\n", - "L = 20.378632, acc = 0.945000\n", - "L = 20.363532, acc = 0.945000\n", - "L = 20.348440, acc = 0.945000\n", - "L = 20.333355, acc = 0.945000\n", - "L = 20.318278, acc = 0.945000\n", - "L = 20.303209, acc = 0.945000\n", - "L = 20.288148, acc = 0.945000\n", - "L = 20.273095, acc = 0.945000\n", - "L = 20.258051, acc = 0.945000\n", - "L = 20.243014, acc = 0.945000\n", - "L = 20.227986, acc = 0.945000\n", - "L = 20.212966, acc = 0.945000\n", - "L = 20.197955, acc = 0.945000\n", - "L = 20.182953, acc = 0.945000\n", - "L = 20.167959, acc = 0.945000\n", - "L = 20.152974, acc = 0.945000\n", - "L = 20.137998, acc = 0.945000\n", - "L = 20.123030, acc = 0.945000\n", - "L = 20.108072, acc = 0.945000\n", - "L = 20.093123, acc = 0.945000\n", - "L = 20.078184, acc = 0.945000\n", - "L = 20.063253, acc = 0.945000\n", - "L = 20.048332, acc = 0.945000\n", - "L = 20.033421, acc = 0.945000\n", - "L = 20.018519, acc = 0.945000\n", - "L = 20.003627, acc = 0.945000\n", - "L = 19.988745, acc = 0.945000\n", - "L = 19.973872, acc = 0.945000\n", - "L = 19.959009, acc = 0.945000\n", - "L = 19.944157, acc = 0.945000\n", - "L = 19.929315, acc = 0.945000\n", - "L = 19.914483, acc = 0.945000\n", - "L = 19.899661, acc = 0.945000\n", - "L = 19.884849, acc = 0.945000\n", - "L = 19.870048, acc = 0.945000\n", - "L = 19.855258, acc = 0.945000\n", - "L = 19.840478, acc = 0.945000\n", - "L = 19.825710, acc = 0.945000\n", - "L = 19.810951, acc = 0.945000\n", - "L = 19.796204, acc = 0.945000\n", - "L = 19.781468, acc = 0.945000\n", - "L = 19.766743, acc = 0.945000\n", - "L = 19.752030, acc = 0.945000\n", - "L = 19.737327, acc = 0.945000\n", - "L = 19.722636, acc = 0.945000\n", - "L = 19.707956, acc = 0.945000\n", - "L = 19.693288, acc = 0.945000\n", - "L = 19.678632, acc = 0.945000\n", - "L = 19.663987, acc = 0.945000\n", - "L = 19.649354, acc = 0.950000\n", - "L = 19.634733, acc = 0.950000\n", - "L = 19.620124, acc = 0.950000\n", - "L = 19.605528, acc = 0.950000\n", - "L = 19.590943, acc = 0.950000\n", - "L = 19.576370, acc = 0.950000\n", - "L = 19.561810, acc = 0.950000\n", - "L = 19.547262, acc = 0.950000\n", - "L = 19.532727, acc = 0.950000\n", - "L = 19.518204, acc = 0.950000\n", - "L = 19.503694, acc = 0.950000\n", - "L = 19.489197, acc = 0.950000\n", - "L = 19.474712, acc = 0.950000\n", - "L = 19.460241, acc = 0.950000\n", - "L = 19.445782, acc = 0.950000\n", - "L = 19.431337, acc = 0.950000\n", - "L = 19.416904, acc = 0.950000\n", - "L = 19.402485, acc = 0.950000\n", - "L = 19.388079, acc = 0.950000\n", - "L = 19.373687, acc = 0.950000\n", - "L = 19.359308, acc = 0.950000\n", - "L = 19.344942, acc = 0.950000\n", - "L = 19.330591, acc = 0.950000\n", - "L = 19.316252, acc = 0.950000\n", - "L = 19.301928, acc = 0.950000\n", - "L = 19.287618, acc = 0.950000\n", - "L = 19.273321, acc = 0.950000\n", - "L = 19.259039, acc = 0.950000\n", - "L = 19.244770, acc = 0.950000\n", - "L = 19.230516, acc = 0.950000\n", - "L = 19.216276, acc = 0.950000\n", - "L = 19.202050, acc = 0.950000\n", - "L = 19.187839, acc = 0.950000\n", - "L = 19.173642, acc = 0.950000\n", - "L = 19.159460, acc = 0.950000\n", - "L = 19.145292, acc = 0.950000\n", - "L = 19.131139, acc = 0.950000\n", - "L = 19.117001, acc = 0.950000\n", - "L = 19.102877, acc = 0.950000\n", - "L = 19.088769, acc = 0.950000\n", - "L = 19.074675, acc = 0.950000\n", - "L = 19.060596, acc = 0.950000\n", - "L = 19.046533, acc = 0.950000\n", - "L = 19.032484, acc = 0.950000\n", - "L = 19.018451, acc = 0.950000\n", - "L = 19.004433, acc = 0.950000\n", - "L = 18.990431, acc = 0.950000\n", - "L = 18.976444, acc = 0.950000\n", - "L = 18.962472, acc = 0.950000\n", - "L = 18.948516, acc = 0.950000\n", - "L = 18.934576, acc = 0.950000\n", - "L = 18.920651, acc = 0.950000\n", - "L = 18.906742, acc = 0.950000\n", - "L = 18.892849, acc = 0.950000\n", - "L = 18.878972, acc = 0.950000\n", - "L = 18.865111, acc = 0.950000\n", - "L = 18.851265, acc = 0.950000\n", - "L = 18.837436, acc = 0.950000\n", - "L = 18.823623, acc = 0.950000\n", - "L = 18.809826, acc = 0.950000\n", - "L = 18.796045, acc = 0.950000\n", - "L = 18.782280, acc = 0.950000\n", - "L = 18.768532, acc = 0.950000\n", - "L = 18.754800, acc = 0.950000\n", - "L = 18.741085, acc = 0.950000\n", - "L = 18.727386, acc = 0.950000\n", - "L = 18.713704, acc = 0.950000\n", - "L = 18.700038, acc = 0.950000\n", - "L = 18.686389, acc = 0.950000\n", - "L = 18.672757, acc = 0.950000\n", - "L = 18.659141, acc = 0.950000\n", - "L = 18.645542, acc = 0.950000\n", - "L = 18.631961, acc = 0.950000\n", - "L = 18.618396, acc = 0.950000\n", - "L = 18.604848, acc = 0.950000\n", - "L = 18.591317, acc = 0.950000\n", - "L = 18.577803, acc = 0.950000\n", - "L = 18.564306, acc = 0.950000\n", - "L = 18.550826, acc = 0.950000\n", - "L = 18.537364, acc = 0.950000\n", - "L = 18.523919, acc = 0.950000\n", - "L = 18.510491, acc = 0.950000\n", - "L = 18.497081, acc = 0.955000\n", - "L = 18.483687, acc = 0.955000\n", - "L = 18.470312, acc = 0.955000\n", - "L = 18.456953, acc = 0.955000\n", - "L = 18.443613, acc = 0.955000\n", - "L = 18.430290, acc = 0.955000\n", - "L = 18.416984, acc = 0.955000\n", - "L = 18.403696, acc = 0.955000\n", - "L = 18.390426, acc = 0.955000\n", - "L = 18.377173, acc = 0.955000\n", - "L = 18.363938, acc = 0.955000\n", - "L = 18.350721, acc = 0.955000\n", - "L = 18.337522, acc = 0.955000\n", - "L = 18.324341, acc = 0.955000\n", - "L = 18.311177, acc = 0.955000\n", - "L = 18.298032, acc = 0.955000\n", - "L = 18.284904, acc = 0.955000\n", - "L = 18.271794, acc = 0.955000\n", - "L = 18.258703, acc = 0.955000\n", - "L = 18.245629, acc = 0.955000\n", - "L = 18.232574, acc = 0.955000\n", - "L = 18.219537, acc = 0.955000\n", - "L = 18.206518, acc = 0.955000\n", - "L = 18.193517, acc = 0.955000\n", - "L = 18.180534, acc = 0.955000\n", - "L = 18.167570, acc = 0.955000\n", - "L = 18.154623, acc = 0.955000\n", - "L = 18.141695, acc = 0.955000\n", - "L = 18.128786, acc = 0.955000\n", - "L = 18.115895, acc = 0.955000\n", - "L = 18.103022, acc = 0.955000\n", - "L = 18.090167, acc = 0.955000\n", - "L = 18.077331, acc = 0.955000\n", - "L = 18.064514, acc = 0.955000\n", - "L = 18.051715, acc = 0.955000\n", - "L = 18.038934, acc = 0.955000\n", - "L = 18.026172, acc = 0.955000\n", - "L = 18.013429, acc = 0.955000\n", - "L = 18.000704, acc = 0.955000\n", - "L = 17.987997, acc = 0.955000\n", - "L = 17.975310, acc = 0.955000\n", - "L = 17.962641, acc = 0.955000\n", - "L = 17.949990, acc = 0.955000\n", - "L = 17.937358, acc = 0.955000\n", - "L = 17.924745, acc = 0.955000\n", - "L = 17.912151, acc = 0.955000\n", - "L = 17.899575, acc = 0.955000\n", - "L = 17.887018, acc = 0.955000\n", - "L = 17.874480, acc = 0.955000\n", - "L = 17.861961, acc = 0.955000\n", - "L = 17.849460, acc = 0.955000\n", - "L = 17.836978, acc = 0.955000\n", - "L = 17.824515, acc = 0.955000\n", - "L = 17.812071, acc = 0.955000\n", - "L = 17.799646, acc = 0.955000\n", - "L = 17.787240, acc = 0.955000\n", - "L = 17.774852, acc = 0.955000\n", - "L = 17.762483, acc = 0.955000\n", - "L = 17.750133, acc = 0.955000\n", - "L = 17.737802, acc = 0.955000\n", - "L = 17.725490, acc = 0.955000\n", - "L = 17.713197, acc = 0.955000\n", - "L = 17.700923, acc = 0.955000\n", - "L = 17.688668, acc = 0.955000\n", - "L = 17.676432, acc = 0.955000\n", - "L = 17.664214, acc = 0.955000\n", - "L = 17.652016, acc = 0.955000\n", - "L = 17.639836, acc = 0.955000\n", - "L = 17.627676, acc = 0.955000\n", - "L = 17.615534, acc = 0.955000\n", - "L = 17.603412, acc = 0.955000\n" + "L = 10.948583, acc = 0.970000\n", + "L = 10.944149, acc = 0.970000\n", + "L = 10.939723, acc = 0.970000\n", + "L = 10.935305, acc = 0.970000\n", + "L = 10.930896, acc = 0.965000\n", + "L = 10.926495, acc = 0.965000\n", + "L = 10.922102, acc = 0.965000\n", + "L = 10.917718, acc = 0.965000\n", + "L = 10.913342, acc = 0.965000\n", + "L = 10.908974, acc = 0.965000\n", + "L = 10.904614, acc = 0.965000\n", + "L = 10.900263, acc = 0.965000\n", + "L = 10.895920, acc = 0.965000\n", + "L = 10.891585, acc = 0.965000\n", + "L = 10.887258, acc = 0.965000\n", + "L = 10.882939, acc = 0.965000\n", + "L = 10.878628, acc = 0.965000\n", + "L = 10.874325, acc = 0.965000\n", + "L = 10.870031, acc = 0.965000\n", + "L = 10.865744, acc = 0.965000\n", + "L = 10.861465, acc = 0.965000\n", + "L = 10.857195, acc = 0.965000\n", + "L = 10.852932, acc = 0.965000\n", + "L = 10.848677, acc = 0.965000\n", + "L = 10.844430, acc = 0.965000\n", + "L = 10.840191, acc = 0.965000\n", + "L = 10.835959, acc = 0.965000\n", + "L = 10.831736, acc = 0.965000\n", + "L = 10.827520, acc = 0.965000\n", + "L = 10.823312, acc = 0.965000\n", + "L = 10.819112, acc = 0.965000\n", + "L = 10.814919, acc = 0.965000\n", + "L = 10.810735, acc = 0.965000\n", + "L = 10.806558, acc = 0.965000\n", + "L = 10.802388, acc = 0.965000\n", + "L = 10.798226, acc = 0.965000\n", + "L = 10.794072, acc = 0.965000\n", + "L = 10.789926, acc = 0.965000\n", + "L = 10.785787, acc = 0.965000\n", + "L = 10.781655, acc = 0.965000\n", + "L = 10.777531, acc = 0.965000\n", + "L = 10.773415, acc = 0.965000\n", + "L = 10.769306, acc = 0.965000\n", + "L = 10.765205, acc = 0.965000\n", + "L = 10.761111, acc = 0.965000\n", + "L = 10.757024, acc = 0.965000\n", + "L = 10.752945, acc = 0.965000\n", + "L = 10.748873, acc = 0.965000\n", + "L = 10.744809, acc = 0.965000\n", + "L = 10.740752, acc = 0.965000\n", + "L = 10.736702, acc = 0.965000\n", + "L = 10.732660, acc = 0.965000\n", + "L = 10.728625, acc = 0.965000\n", + "L = 10.724597, acc = 0.965000\n", + "L = 10.720576, acc = 0.965000\n", + "L = 10.716563, acc = 0.965000\n", + "L = 10.712557, acc = 0.965000\n", + "L = 10.708558, acc = 0.965000\n", + "L = 10.704566, acc = 0.965000\n", + "L = 10.700582, acc = 0.965000\n", + "L = 10.696604, acc = 0.965000\n", + "L = 10.692634, acc = 0.965000\n", + "L = 10.688671, acc = 0.965000\n", + "L = 10.684715, acc = 0.965000\n", + "L = 10.680766, acc = 0.965000\n", + "L = 10.676824, acc = 0.965000\n", + "L = 10.672889, acc = 0.965000\n", + "L = 10.668961, acc = 0.965000\n", + "L = 10.665040, acc = 0.965000\n", + "L = 10.661126, acc = 0.965000\n", + "L = 10.657219, acc = 0.965000\n", + "L = 10.653318, acc = 0.965000\n", + "L = 10.649425, acc = 0.965000\n", + "L = 10.645539, acc = 0.965000\n", + "L = 10.641659, acc = 0.965000\n", + "L = 10.637787, acc = 0.965000\n", + "L = 10.633921, acc = 0.965000\n", + "L = 10.630062, acc = 0.965000\n", + "L = 10.626210, acc = 0.965000\n", + "L = 10.622365, acc = 0.965000\n", + "L = 10.618526, acc = 0.965000\n", + "L = 10.614695, acc = 0.965000\n", + "L = 10.610870, acc = 0.965000\n", + "L = 10.607051, acc = 0.965000\n", + "L = 10.603240, acc = 0.965000\n", + "L = 10.599435, acc = 0.965000\n", + "L = 10.595637, acc = 0.965000\n", + "L = 10.591845, acc = 0.965000\n", + "L = 10.588060, acc = 0.965000\n", + "L = 10.584282, acc = 0.965000\n", + "L = 10.580510, acc = 0.965000\n", + "L = 10.576745, acc = 0.965000\n", + "L = 10.572987, acc = 0.965000\n", + "L = 10.569235, acc = 0.965000\n", + "L = 10.565490, acc = 0.965000\n", + "L = 10.561751, acc = 0.965000\n", + "L = 10.558019, acc = 0.965000\n", + "L = 10.554293, acc = 0.965000\n", + "L = 10.550574, acc = 0.965000\n", + "L = 10.546861, acc = 0.965000\n", + "L = 10.543154, acc = 0.965000\n", + "L = 10.539454, acc = 0.965000\n", + "L = 10.535761, acc = 0.965000\n", + "L = 10.532074, acc = 0.965000\n", + "L = 10.528393, acc = 0.965000\n", + "L = 10.524719, acc = 0.965000\n", + "L = 10.521051, acc = 0.965000\n", + "L = 10.517389, acc = 0.965000\n", + "L = 10.513734, acc = 0.965000\n", + "L = 10.510085, acc = 0.965000\n", + "L = 10.506442, acc = 0.965000\n", + "L = 10.502806, acc = 0.965000\n", + "L = 10.499176, acc = 0.965000\n", + "L = 10.495552, acc = 0.965000\n", + "L = 10.491934, acc = 0.965000\n", + "L = 10.488323, acc = 0.965000\n", + "L = 10.484717, acc = 0.965000\n", + "L = 10.481118, acc = 0.965000\n", + "L = 10.477526, acc = 0.965000\n", + "L = 10.473939, acc = 0.965000\n", + "L = 10.470359, acc = 0.965000\n", + "L = 10.466784, acc = 0.965000\n", + "L = 10.463216, acc = 0.965000\n", + "L = 10.459654, acc = 0.965000\n", + "L = 10.456098, acc = 0.965000\n", + "L = 10.452548, acc = 0.965000\n", + "L = 10.449004, acc = 0.965000\n", + "L = 10.445466, acc = 0.965000\n", + "L = 10.441935, acc = 0.965000\n", + "L = 10.438409, acc = 0.965000\n", + "L = 10.434889, acc = 0.965000\n", + "L = 10.431376, acc = 0.965000\n", + "L = 10.427868, acc = 0.965000\n", + "L = 10.424366, acc = 0.965000\n", + "L = 10.420870, acc = 0.965000\n", + "L = 10.417381, acc = 0.965000\n", + "L = 10.413897, acc = 0.965000\n", + "L = 10.410419, acc = 0.965000\n", + "L = 10.406947, acc = 0.965000\n", + "L = 10.403481, acc = 0.965000\n", + "L = 10.400020, acc = 0.965000\n", + "L = 10.396566, acc = 0.965000\n", + "L = 10.393117, acc = 0.965000\n", + "L = 10.389675, acc = 0.965000\n", + "L = 10.386238, acc = 0.965000\n", + "L = 10.382807, acc = 0.965000\n", + "L = 10.379381, acc = 0.965000\n", + "L = 10.375962, acc = 0.965000\n", + "L = 10.372548, acc = 0.965000\n", + "L = 10.369140, acc = 0.965000\n", + "L = 10.365738, acc = 0.965000\n", + "L = 10.362341, acc = 0.965000\n", + "L = 10.358951, acc = 0.965000\n", + "L = 10.355566, acc = 0.965000\n", + "L = 10.352186, acc = 0.965000\n", + "L = 10.348813, acc = 0.965000\n", + "L = 10.345445, acc = 0.965000\n", + "L = 10.342082, acc = 0.965000\n", + "L = 10.338726, acc = 0.965000\n", + "L = 10.335375, acc = 0.965000\n", + "L = 10.332029, acc = 0.965000\n", + "L = 10.328690, acc = 0.965000\n", + "L = 10.325355, acc = 0.965000\n", + "L = 10.322027, acc = 0.965000\n", + "L = 10.318704, acc = 0.965000\n", + "L = 10.315386, acc = 0.965000\n", + "L = 10.312074, acc = 0.965000\n", + "L = 10.308768, acc = 0.965000\n", + "L = 10.305467, acc = 0.965000\n", + "L = 10.302172, acc = 0.965000\n", + "L = 10.298882, acc = 0.965000\n", + "L = 10.295597, acc = 0.965000\n", + "L = 10.292319, acc = 0.965000\n", + "L = 10.289045, acc = 0.965000\n", + "L = 10.285777, acc = 0.965000\n", + "L = 10.282515, acc = 0.965000\n", + "L = 10.279258, acc = 0.965000\n", + "L = 10.276006, acc = 0.965000\n", + "L = 10.272760, acc = 0.965000\n", + "L = 10.269519, acc = 0.965000\n", + "L = 10.266283, acc = 0.965000\n", + "L = 10.263053, acc = 0.965000\n", + "L = 10.259828, acc = 0.965000\n", + "L = 10.256609, acc = 0.965000\n", + "L = 10.253395, acc = 0.965000\n", + "L = 10.250186, acc = 0.965000\n", + "L = 10.246983, acc = 0.965000\n", + "L = 10.243785, acc = 0.965000\n", + "L = 10.240592, acc = 0.965000\n", + "L = 10.237404, acc = 0.965000\n", + "L = 10.234222, acc = 0.965000\n", + "L = 10.231045, acc = 0.965000\n", + "L = 10.227873, acc = 0.965000\n", + "L = 10.224707, acc = 0.965000\n", + "L = 10.221545, acc = 0.965000\n", + "L = 10.218389, acc = 0.965000\n", + "L = 10.215238, acc = 0.965000\n", + "L = 10.212092, acc = 0.965000\n", + "L = 10.208952, acc = 0.965000\n", + "L = 10.205816, acc = 0.965000\n", + "L = 10.202686, acc = 0.965000\n", + "L = 10.199561, acc = 0.965000\n", + "L = 10.196441, acc = 0.965000\n", + "L = 10.193326, acc = 0.965000\n", + "L = 10.190216, acc = 0.965000\n", + "L = 10.187112, acc = 0.965000\n", + "L = 10.184012, acc = 0.965000\n", + "L = 10.180918, acc = 0.965000\n", + "L = 10.177828, acc = 0.965000\n", + "L = 10.174744, acc = 0.965000\n", + "L = 10.171665, acc = 0.965000\n", + "L = 10.168591, acc = 0.965000\n", + "L = 10.165521, acc = 0.965000\n", + "L = 10.162457, acc = 0.965000\n", + "L = 10.159398, acc = 0.965000\n", + "L = 10.156344, acc = 0.965000\n", + "L = 10.153294, acc = 0.965000\n", + "L = 10.150250, acc = 0.965000\n", + "L = 10.147211, acc = 0.965000\n", + "L = 10.144176, acc = 0.965000\n", + "L = 10.141147, acc = 0.965000\n", + "L = 10.138122, acc = 0.965000\n", + "L = 10.135103, acc = 0.965000\n", + "L = 10.132088, acc = 0.965000\n", + "L = 10.129078, acc = 0.965000\n", + "L = 10.126073, acc = 0.965000\n", + "L = 10.123073, acc = 0.965000\n", + "L = 10.120078, acc = 0.965000\n", + "L = 10.117088, acc = 0.965000\n", + "L = 10.114103, acc = 0.965000\n", + "L = 10.111122, acc = 0.965000\n", + "L = 10.108146, acc = 0.965000\n", + "L = 10.105175, acc = 0.965000\n", + "L = 10.102209, acc = 0.965000\n", + "L = 10.099248, acc = 0.965000\n", + "L = 10.096291, acc = 0.965000\n", + "L = 10.093339, acc = 0.965000\n", + "L = 10.090392, acc = 0.965000\n", + "L = 10.087450, acc = 0.965000\n", + "L = 10.084512, acc = 0.965000\n", + "L = 10.081579, acc = 0.965000\n", + "L = 10.078651, acc = 0.965000\n", + "L = 10.075728, acc = 0.965000\n", + "L = 10.072809, acc = 0.965000\n", + "L = 10.069895, acc = 0.965000\n", + "L = 10.066986, acc = 0.965000\n", + "L = 10.064081, acc = 0.965000\n", + "L = 10.061181, acc = 0.965000\n", + "L = 10.058286, acc = 0.965000\n", + "L = 10.055395, acc = 0.965000\n", + "L = 10.052509, acc = 0.965000\n", + "L = 10.049628, acc = 0.965000\n", + "L = 10.046751, acc = 0.965000\n", + "L = 10.043879, acc = 0.965000\n", + "L = 10.041011, acc = 0.965000\n", + "L = 10.038148, acc = 0.965000\n", + "L = 10.035290, acc = 0.965000\n", + "L = 10.032436, acc = 0.965000\n", + "L = 10.029586, acc = 0.965000\n", + "L = 10.026742, acc = 0.965000\n", + "L = 10.023901, acc = 0.965000\n", + "L = 10.021066, acc = 0.965000\n", + "L = 10.018234, acc = 0.965000\n", + "L = 10.015408, acc = 0.965000\n", + "L = 10.012586, acc = 0.965000\n", + "L = 10.009768, acc = 0.965000\n", + "L = 10.006955, acc = 0.965000\n", + "L = 10.004146, acc = 0.965000\n", + "L = 10.001342, acc = 0.965000\n", + "L = 9.998542, acc = 0.965000\n", + "L = 9.995746, acc = 0.965000\n", + "L = 9.992955, acc = 0.965000\n", + "L = 9.990169, acc = 0.965000\n", + "L = 9.987387, acc = 0.965000\n", + "L = 9.984609, acc = 0.965000\n", + "L = 9.981835, acc = 0.965000\n", + "L = 9.979066, acc = 0.965000\n", + "L = 9.976302, acc = 0.965000\n", + "L = 9.973542, acc = 0.965000\n", + "L = 9.970786, acc = 0.965000\n", + "L = 9.968034, acc = 0.965000\n", + "L = 9.965287, acc = 0.965000\n", + "L = 9.962544, acc = 0.965000\n", + "L = 9.959806, acc = 0.965000\n", + "L = 9.957071, acc = 0.965000\n", + "L = 9.954342, acc = 0.965000\n", + "L = 9.951616, acc = 0.965000\n", + "L = 9.948895, acc = 0.965000\n", + "L = 9.946177, acc = 0.965000\n", + "L = 9.943465, acc = 0.970000\n", + "L = 9.940756, acc = 0.970000\n", + "L = 9.938052, acc = 0.970000\n", + "L = 9.935352, acc = 0.970000\n", + "L = 9.932656, acc = 0.970000\n", + "L = 9.929964, acc = 0.970000\n", + "L = 9.927277, acc = 0.970000\n", + "L = 9.924594, acc = 0.970000\n", + "L = 9.921915, acc = 0.970000\n", + "L = 9.919240, acc = 0.970000\n", + "L = 9.916569, acc = 0.970000\n", + "L = 9.913903, acc = 0.970000\n", + "L = 9.911240, acc = 0.970000\n", + "L = 9.908582, acc = 0.970000\n", + "L = 9.905928, acc = 0.970000\n", + "L = 9.903278, acc = 0.970000\n", + "L = 9.900632, acc = 0.970000\n", + "L = 9.897991, acc = 0.970000\n", + "L = 9.895353, acc = 0.970000\n", + "L = 9.892720, acc = 0.970000\n", + "L = 9.890090, acc = 0.970000\n", + "L = 9.887465, acc = 0.970000\n", + "L = 9.884844, acc = 0.970000\n", + "L = 9.882227, acc = 0.970000\n", + "L = 9.879614, acc = 0.970000\n", + "L = 9.877004, acc = 0.970000\n", + "L = 9.874399, acc = 0.970000\n", + "L = 9.871798, acc = 0.970000\n", + "L = 9.869201, acc = 0.970000\n", + "L = 9.866608, acc = 0.970000\n", + "L = 9.864019, acc = 0.970000\n", + "L = 9.861434, acc = 0.970000\n", + "L = 9.858853, acc = 0.970000\n", + "L = 9.856276, acc = 0.970000\n", + "L = 9.853703, acc = 0.970000\n", + "L = 9.851134, acc = 0.970000\n", + "L = 9.848569, acc = 0.970000\n", + "L = 9.846008, acc = 0.970000\n", + "L = 9.843450, acc = 0.970000\n", + "L = 9.840897, acc = 0.970000\n", + "L = 9.838348, acc = 0.970000\n", + "L = 9.835802, acc = 0.970000\n", + "L = 9.833261, acc = 0.970000\n", + "L = 9.830723, acc = 0.970000\n", + "L = 9.828189, acc = 0.970000\n", + "L = 9.825659, acc = 0.970000\n", + "L = 9.823133, acc = 0.970000\n", + "L = 9.820611, acc = 0.970000\n", + "L = 9.818092, acc = 0.970000\n", + "L = 9.815578, acc = 0.970000\n", + "L = 9.813067, acc = 0.970000\n", + "L = 9.810560, acc = 0.970000\n", + "L = 9.808057, acc = 0.970000\n", + "L = 9.805558, acc = 0.970000\n", + "L = 9.803062, acc = 0.970000\n", + "L = 9.800570, acc = 0.970000\n", + "L = 9.798082, acc = 0.970000\n", + "L = 9.795598, acc = 0.970000\n", + "L = 9.793118, acc = 0.970000\n", + "L = 9.790641, acc = 0.970000\n", + "L = 9.788168, acc = 0.970000\n", + "L = 9.785699, acc = 0.970000\n", + "L = 9.783234, acc = 0.970000\n", + "L = 9.780772, acc = 0.970000\n", + "L = 9.778314, acc = 0.970000\n", + "L = 9.775860, acc = 0.970000\n", + "L = 9.773410, acc = 0.970000\n", + "L = 9.770963, acc = 0.970000\n", + "L = 9.768520, acc = 0.970000\n", + "L = 9.766080, acc = 0.970000\n", + "L = 9.763645, acc = 0.970000\n", + "L = 9.761213, acc = 0.970000\n", + "L = 9.758784, acc = 0.970000\n", + "L = 9.756359, acc = 0.970000\n", + "L = 9.753938, acc = 0.970000\n", + "L = 9.751521, acc = 0.970000\n", + "L = 9.749107, acc = 0.970000\n", + "L = 9.746696, acc = 0.970000\n", + "L = 9.744290, acc = 0.970000\n", + "L = 9.741887, acc = 0.970000\n", + "L = 9.739487, acc = 0.970000\n", + "L = 9.737091, acc = 0.970000\n", + "L = 9.734699, acc = 0.970000\n", + "L = 9.732310, acc = 0.970000\n", + "L = 9.729925, acc = 0.970000\n", + "L = 9.727544, acc = 0.970000\n", + "L = 9.725166, acc = 0.970000\n", + "L = 9.722791, acc = 0.970000\n", + "L = 9.720420, acc = 0.970000\n", + "L = 9.718053, acc = 0.970000\n", + "L = 9.715689, acc = 0.970000\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "L = 17.591308, acc = 0.955000\n", - "L = 17.579224, acc = 0.955000\n", - "L = 17.567158, acc = 0.955000\n", - "L = 17.555112, acc = 0.955000\n", - "L = 17.543084, acc = 0.955000\n", - "L = 17.531076, acc = 0.955000\n", - "L = 17.519086, acc = 0.955000\n", - "L = 17.507116, acc = 0.955000\n", - "L = 17.495165, acc = 0.955000\n", - "L = 17.483232, acc = 0.955000\n", - "L = 17.471319, acc = 0.955000\n", - "L = 17.459424, acc = 0.955000\n", - "L = 17.447549, acc = 0.955000\n", - "L = 17.435692, acc = 0.955000\n", - "L = 17.423855, acc = 0.955000\n", - "L = 17.412037, acc = 0.955000\n", - "L = 17.400237, acc = 0.955000\n", - "L = 17.388457, acc = 0.955000\n", - "L = 17.376696, acc = 0.955000\n", - "L = 17.364953, acc = 0.955000\n", - "L = 17.353230, acc = 0.955000\n", - "L = 17.341526, acc = 0.955000\n", - "L = 17.329840, acc = 0.955000\n", - "L = 17.318174, acc = 0.955000\n", - "L = 17.306527, acc = 0.955000\n", - "L = 17.294898, acc = 0.955000\n", - "L = 17.283289, acc = 0.955000\n", - "L = 17.271698, acc = 0.955000\n", - "L = 17.260127, acc = 0.955000\n", - "L = 17.248574, acc = 0.955000\n", - "L = 17.237041, acc = 0.955000\n", - "L = 17.225526, acc = 0.955000\n", - "L = 17.214031, acc = 0.955000\n", - "L = 17.202554, acc = 0.955000\n", - "L = 17.191096, acc = 0.955000\n", - "L = 17.179657, acc = 0.955000\n", - "L = 17.168237, acc = 0.955000\n", - "L = 17.156836, acc = 0.955000\n", - "L = 17.145453, acc = 0.955000\n", - "L = 17.134090, acc = 0.955000\n", - "L = 17.122746, acc = 0.955000\n", - "L = 17.111420, acc = 0.955000\n", - "L = 17.100113, acc = 0.955000\n", - "L = 17.088825, acc = 0.955000\n", - "L = 17.077556, acc = 0.955000\n", - "L = 17.066305, acc = 0.955000\n", - "L = 17.055074, acc = 0.955000\n", - "L = 17.043861, acc = 0.955000\n", - "L = 17.032667, acc = 0.955000\n", - "L = 17.021492, acc = 0.955000\n", - "L = 17.010335, acc = 0.955000\n", - "L = 16.999197, acc = 0.955000\n", - "L = 16.988078, acc = 0.955000\n", - "L = 16.976978, acc = 0.955000\n", - "L = 16.965896, acc = 0.955000\n", - "L = 16.954833, acc = 0.955000\n", - "L = 16.943789, acc = 0.955000\n", - "L = 16.932763, acc = 0.955000\n", - "L = 16.921756, acc = 0.955000\n", - "L = 16.910768, acc = 0.955000\n", - "L = 16.899798, acc = 0.955000\n", - "L = 16.888846, acc = 0.955000\n", - "L = 16.877914, acc = 0.955000\n", - "L = 16.867000, acc = 0.955000\n", - "L = 16.856104, acc = 0.955000\n", - "L = 16.845227, acc = 0.955000\n", - "L = 16.834368, acc = 0.955000\n", - "L = 16.823528, acc = 0.955000\n", - "L = 16.812707, acc = 0.955000\n", - "L = 16.801904, acc = 0.955000\n", - "L = 16.791119, acc = 0.955000\n", - "L = 16.780352, acc = 0.955000\n", - "L = 16.769605, acc = 0.955000\n", - "L = 16.758875, acc = 0.955000\n", - "L = 16.748164, acc = 0.955000\n", - "L = 16.737471, acc = 0.955000\n", - "L = 16.726796, acc = 0.955000\n", - "L = 16.716140, acc = 0.955000\n", - "L = 16.705502, acc = 0.955000\n", - "L = 16.694883, acc = 0.955000\n", - "L = 16.684281, acc = 0.955000\n", - "L = 16.673698, acc = 0.955000\n", - "L = 16.663133, acc = 0.955000\n", - "L = 16.652586, acc = 0.955000\n", - "L = 16.642058, acc = 0.955000\n", - "L = 16.631547, acc = 0.955000\n", - "L = 16.621055, acc = 0.955000\n", - "L = 16.610580, acc = 0.955000\n", - "L = 16.600124, acc = 0.955000\n", - "L = 16.589686, acc = 0.955000\n", - "L = 16.579266, acc = 0.955000\n", - "L = 16.568864, acc = 0.955000\n", - "L = 16.558480, acc = 0.955000\n", - "L = 16.548114, acc = 0.955000\n", - "L = 16.537766, acc = 0.955000\n", - "L = 16.527435, acc = 0.955000\n", - "L = 16.517123, acc = 0.955000\n", - "L = 16.506829, acc = 0.955000\n", - "L = 16.496552, acc = 0.955000\n", - "L = 16.486293, acc = 0.955000\n", - "L = 16.476052, acc = 0.955000\n", - "L = 16.465829, acc = 0.955000\n", - "L = 16.455624, acc = 0.955000\n", - "L = 16.445436, acc = 0.955000\n", - "L = 16.435266, acc = 0.955000\n", - "L = 16.425114, acc = 0.955000\n", - "L = 16.414979, acc = 0.955000\n", - "L = 16.404862, acc = 0.955000\n", - "L = 16.394763, acc = 0.955000\n", - "L = 16.384681, acc = 0.955000\n", - "L = 16.374617, acc = 0.955000\n", - "L = 16.364571, acc = 0.955000\n", - "L = 16.354542, acc = 0.955000\n", - "L = 16.344530, acc = 0.955000\n", - "L = 16.334536, acc = 0.955000\n", - "L = 16.324560, acc = 0.960000\n", - "L = 16.314600, acc = 0.960000\n", - "L = 16.304659, acc = 0.960000\n", - "L = 16.294734, acc = 0.960000\n", - "L = 16.284827, acc = 0.960000\n", - "L = 16.274937, acc = 0.960000\n", - "L = 16.265065, acc = 0.960000\n", - "L = 16.255210, acc = 0.960000\n", - "L = 16.245372, acc = 0.960000\n", - "L = 16.235551, acc = 0.960000\n", - "L = 16.225748, acc = 0.960000\n", - "L = 16.215962, acc = 0.960000\n", - "L = 16.206192, acc = 0.960000\n", - "L = 16.196440, acc = 0.960000\n", - "L = 16.186705, acc = 0.960000\n", - "L = 16.176988, acc = 0.960000\n", - "L = 16.167287, acc = 0.960000\n", - "L = 16.157603, acc = 0.960000\n", - "L = 16.147936, acc = 0.960000\n", - "L = 16.138286, acc = 0.960000\n", - "L = 16.128653, acc = 0.960000\n", - "L = 16.119037, acc = 0.960000\n", - "L = 16.109438, acc = 0.960000\n", - "L = 16.099856, acc = 0.960000\n", - "L = 16.090290, acc = 0.960000\n", - "L = 16.080742, acc = 0.960000\n", - "L = 16.071210, acc = 0.960000\n", - "L = 16.061695, acc = 0.960000\n", - "L = 16.052196, acc = 0.960000\n", - "L = 16.042715, acc = 0.960000\n", - "L = 16.033250, acc = 0.960000\n", - "L = 16.023801, acc = 0.960000\n", - "L = 16.014369, acc = 0.960000\n", - "L = 16.004954, acc = 0.960000\n", - "L = 15.995555, acc = 0.960000\n", - "L = 15.986173, acc = 0.960000\n", - "L = 15.976808, acc = 0.960000\n", - "L = 15.967458, acc = 0.960000\n", - "L = 15.958126, acc = 0.960000\n", - "L = 15.948809, acc = 0.960000\n", - "L = 15.939510, acc = 0.960000\n", - "L = 15.930226, acc = 0.960000\n", - "L = 15.920959, acc = 0.960000\n", - "L = 15.911708, acc = 0.960000\n", - "L = 15.902473, acc = 0.960000\n", - "L = 15.893255, acc = 0.960000\n", - "L = 15.884053, acc = 0.960000\n", - "L = 15.874867, acc = 0.960000\n", - "L = 15.865697, acc = 0.960000\n", - "L = 15.856543, acc = 0.960000\n", - "L = 15.847406, acc = 0.960000\n", - "L = 15.838284, acc = 0.960000\n", - "L = 15.829179, acc = 0.960000\n", - "L = 15.820089, acc = 0.960000\n", - "L = 15.811016, acc = 0.960000\n", - "L = 15.801959, acc = 0.960000\n", - "L = 15.792917, acc = 0.960000\n", - "L = 15.783891, acc = 0.960000\n", - "L = 15.774882, acc = 0.960000\n", - "L = 15.765888, acc = 0.960000\n", - "L = 15.756910, acc = 0.960000\n", - "L = 15.747948, acc = 0.960000\n", - "L = 15.739001, acc = 0.960000\n", - "L = 15.730071, acc = 0.960000\n", - "L = 15.721156, acc = 0.960000\n" + "L = 9.713328, acc = 0.970000\n", + "L = 9.710971, acc = 0.970000\n", + "L = 9.708618, acc = 0.970000\n", + "L = 9.706268, acc = 0.970000\n", + "L = 9.703921, acc = 0.970000\n", + "L = 9.701578, acc = 0.970000\n", + "L = 9.699239, acc = 0.970000\n", + "L = 9.696903, acc = 0.970000\n", + "L = 9.694570, acc = 0.970000\n", + "L = 9.692241, acc = 0.970000\n", + "L = 9.689915, acc = 0.970000\n", + "L = 9.687593, acc = 0.970000\n", + "L = 9.685274, acc = 0.970000\n", + "L = 9.682959, acc = 0.970000\n", + "L = 9.680647, acc = 0.970000\n", + "L = 9.678338, acc = 0.970000\n", + "L = 9.676033, acc = 0.970000\n", + "L = 9.673731, acc = 0.970000\n", + "L = 9.671432, acc = 0.970000\n", + "L = 9.669137, acc = 0.970000\n", + "L = 9.666845, acc = 0.970000\n", + "L = 9.664557, acc = 0.970000\n", + "L = 9.662272, acc = 0.970000\n", + "L = 9.659990, acc = 0.970000\n", + "L = 9.657712, acc = 0.970000\n", + "L = 9.655437, acc = 0.970000\n", + "L = 9.653165, acc = 0.970000\n", + "L = 9.650897, acc = 0.970000\n", + "L = 9.648631, acc = 0.970000\n", + "L = 9.646370, acc = 0.970000\n", + "L = 9.644111, acc = 0.970000\n", + "L = 9.641856, acc = 0.970000\n", + "L = 9.639604, acc = 0.970000\n", + "L = 9.637355, acc = 0.970000\n", + "L = 9.635110, acc = 0.970000\n", + "L = 9.632868, acc = 0.970000\n", + "L = 9.630629, acc = 0.970000\n", + "L = 9.628393, acc = 0.970000\n", + "L = 9.626160, acc = 0.970000\n", + "L = 9.623931, acc = 0.970000\n", + "L = 9.621705, acc = 0.970000\n", + "L = 9.619482, acc = 0.970000\n", + "L = 9.617263, acc = 0.970000\n", + "L = 9.615046, acc = 0.970000\n", + "L = 9.612833, acc = 0.970000\n", + "L = 9.610623, acc = 0.970000\n", + "L = 9.608416, acc = 0.970000\n", + "L = 9.606213, acc = 0.970000\n", + "L = 9.604012, acc = 0.970000\n", + "L = 9.601815, acc = 0.970000\n", + "L = 9.599621, acc = 0.970000\n", + "L = 9.597430, acc = 0.970000\n", + "L = 9.595242, acc = 0.970000\n", + "L = 9.593057, acc = 0.970000\n", + "L = 9.590876, acc = 0.970000\n", + "L = 9.588697, acc = 0.970000\n", + "L = 9.586522, acc = 0.970000\n", + "L = 9.584349, acc = 0.970000\n", + "L = 9.582180, acc = 0.970000\n", + "L = 9.580014, acc = 0.970000\n", + "L = 9.577851, acc = 0.970000\n", + "L = 9.575691, acc = 0.970000\n", + "L = 9.573534, acc = 0.970000\n", + "L = 9.571381, acc = 0.970000\n", + "L = 9.569230, acc = 0.970000\n", + "L = 9.567082, acc = 0.970000\n", + "L = 9.564937, acc = 0.970000\n", + "L = 9.562796, acc = 0.970000\n", + "L = 9.560657, acc = 0.970000\n", + "L = 9.558522, acc = 0.970000\n", + "L = 9.556389, acc = 0.970000\n", + "L = 9.554260, acc = 0.970000\n", + "L = 9.552133, acc = 0.970000\n", + "L = 9.550010, acc = 0.970000\n", + "L = 9.547889, acc = 0.970000\n", + "L = 9.545772, acc = 0.970000\n", + "L = 9.543657, acc = 0.970000\n", + "L = 9.541546, acc = 0.970000\n", + "L = 9.539437, acc = 0.970000\n", + "L = 9.537332, acc = 0.970000\n", + "L = 9.535229, acc = 0.970000\n", + "L = 9.533129, acc = 0.970000\n", + "L = 9.531032, acc = 0.970000\n", + "L = 9.528939, acc = 0.970000\n", + "L = 9.526848, acc = 0.970000\n", + "L = 9.524760, acc = 0.970000\n", + "L = 9.522675, acc = 0.970000\n", + "L = 9.520592, acc = 0.970000\n", + "L = 9.518513, acc = 0.970000\n", + "L = 9.516437, acc = 0.970000\n", + "L = 9.514363, acc = 0.970000\n", + "L = 9.512293, acc = 0.970000\n", + "L = 9.510225, acc = 0.970000\n", + "L = 9.508160, acc = 0.970000\n", + "L = 9.506098, acc = 0.970000\n", + "L = 9.504039, acc = 0.970000\n", + "L = 9.501983, acc = 0.970000\n", + "L = 9.499930, acc = 0.970000\n", + "L = 9.497879, acc = 0.970000\n", + "L = 9.495832, acc = 0.970000\n", + "L = 9.493787, acc = 0.975000\n", + "L = 9.491745, acc = 0.975000\n", + "L = 9.489706, acc = 0.975000\n", + "L = 9.487669, acc = 0.975000\n", + "L = 9.485636, acc = 0.975000\n", + "L = 9.483605, acc = 0.975000\n", + "L = 9.481577, acc = 0.975000\n", + "L = 9.479552, acc = 0.975000\n", + "L = 9.477529, acc = 0.975000\n", + "L = 9.475510, acc = 0.975000\n", + "L = 9.473493, acc = 0.975000\n", + "L = 9.471479, acc = 0.975000\n", + "L = 9.469467, acc = 0.975000\n", + "L = 9.467459, acc = 0.975000\n", + "L = 9.465453, acc = 0.975000\n", + "L = 9.463450, acc = 0.975000\n", + "L = 9.461450, acc = 0.975000\n", + "L = 9.459452, acc = 0.975000\n", + "L = 9.457457, acc = 0.975000\n", + "L = 9.455465, acc = 0.975000\n", + "L = 9.453475, acc = 0.975000\n", + "L = 9.451489, acc = 0.975000\n", + "L = 9.449505, acc = 0.975000\n", + "L = 9.447523, acc = 0.975000\n", + "L = 9.445545, acc = 0.975000\n", + "L = 9.443569, acc = 0.975000\n", + "L = 9.441595, acc = 0.975000\n", + "L = 9.439625, acc = 0.975000\n", + "L = 9.437657, acc = 0.975000\n", + "L = 9.435692, acc = 0.975000\n", + "L = 9.433729, acc = 0.975000\n" ] } ], "source": [ "# use the NN model and training\n", - "nn = NN_Model([2, 6, 2])\n", + "nn = NN_Model([2, 6, 4, 2])\n", "nn.init_weight()\n", "nn.backpropagation(X, t, 2000)\n", "\n" @@ -4758,7 +4778,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "metadata": {}, "outputs": [ { diff --git a/5_nn/softmax_ce.ipynb b/5_nn/softmax_ce.ipynb index d67f147..08a8a3b 100644 --- a/5_nn/softmax_ce.ipynb +++ b/5_nn/softmax_ce.ipynb @@ -126,7 +126,8 @@ "\\frac{\\partial C}{\\partial z_i} & = & (-\\sum_j y_j \\frac{1}{a_j} ) \\frac{\\partial a_j}{\\partial z_i} \\\\\n", " & = & - \\frac{y_i}{a_i} a_i ( 1 - a_i) + \\sum_{j \\ne i} \\frac{y_j}{a_j} a_i a_j \\\\\n", " & = & -y_i + y_i a_i + \\sum_{j \\ne i} y_j a_i \\\\\n", - " & = & -y_i + a_i \\sum_{j} y_j\n", + " & = & -y_i + a_i \\sum_{j} y_j \\\\\n", + " & = & -y_i + a_i\n", "\\end{eqnarray}" ] }, diff --git a/6_pytorch/0_basic/autograd.ipynb b/6_pytorch/0_basic/autograd.ipynb index 7e22996..fec46ec 100644 --- a/6_pytorch/0_basic/autograd.ipynb +++ b/6_pytorch/0_basic/autograd.ipynb @@ -10,10 +10,8 @@ }, { "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": true - }, + "execution_count": 2, + "metadata": {}, "outputs": [], "source": [ "import torch\n", @@ -30,17 +28,14 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Variable containing:\n", - " 19\n", - "[torch.FloatTensor of size 1]\n", - "\n" + "tensor([19.], grad_fn=)\n" ] } ], @@ -71,17 +66,14 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Variable containing:\n", - " 8\n", - "[torch.FloatTensor of size 1]\n", - "\n" + "tensor([8.])\n" ] } ], @@ -100,7 +92,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ diff --git a/6_pytorch/1_NN/linear-regression-gradient-descend.ipynb b/6_pytorch/1_NN/1-linear-regression-gradient-descend.ipynb similarity index 100% rename from 6_pytorch/1_NN/linear-regression-gradient-descend.ipynb rename to 6_pytorch/1_NN/1-linear-regression-gradient-descend.ipynb diff --git a/6_pytorch/1_NN/logistic-regression.ipynb b/6_pytorch/1_NN/2-logistic-regression.ipynb similarity index 63% rename from 6_pytorch/1_NN/logistic-regression.ipynb rename to 6_pytorch/1_NN/2-logistic-regression.ipynb index 1e5dbb5..f865ed9 100644 --- a/6_pytorch/1_NN/logistic-regression.ipynb +++ b/6_pytorch/1_NN/2-logistic-regression.ipynb @@ -113,7 +113,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -162,7 +162,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 3, @@ -215,7 +215,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -237,7 +237,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -255,16 +255,16 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 19, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, @@ -292,7 +292,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -320,7 +320,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -341,22 +341,22 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 28, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -368,7 +368,7 @@ } ], "source": [ - "# 画出参数更新之前的结果\n", + "# 画出参数更新之前的结果 (FIXME: the plot is wrong)\n", "w0 = w[0].data[0]\n", "w1 = w[1].data[0]\n", "b0 = b.data[0]\n", @@ -395,7 +395,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -416,14 +416,14 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "tensor(0.7911, grad_fn=)\n" + "tensor(0.8986, grad_fn=)\n" ] } ], @@ -442,27 +442,174 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "tensor(0.7801, grad_fn=)\n" + "tensor(0.7402, grad_fn=)\n", + "tensor(0.7348, grad_fn=)\n", + "tensor(0.7299, grad_fn=)\n", + "tensor(0.7254, grad_fn=)\n", + "tensor(0.7212, grad_fn=)\n", + "tensor(0.7175, grad_fn=)\n", + "tensor(0.7140, grad_fn=)\n", + "tensor(0.7108, grad_fn=)\n", + "tensor(0.7079, grad_fn=)\n", + "tensor(0.7052, grad_fn=)\n", + "tensor(0.7028, grad_fn=)\n", + "tensor(0.7005, grad_fn=)\n", + "tensor(0.6984, grad_fn=)\n", + "tensor(0.6965, grad_fn=)\n", + "tensor(0.6947, grad_fn=)\n", + "tensor(0.6931, grad_fn=)\n", + "tensor(0.6916, grad_fn=)\n", + "tensor(0.6901, grad_fn=)\n", + "tensor(0.6888, grad_fn=)\n", + "tensor(0.6876, grad_fn=)\n", + "tensor(0.6865, grad_fn=)\n", + "tensor(0.6855, grad_fn=)\n", + "tensor(0.6845, grad_fn=)\n", + "tensor(0.6836, grad_fn=)\n", + "tensor(0.6827, grad_fn=)\n", + "tensor(0.6819, grad_fn=)\n", + "tensor(0.6811, grad_fn=)\n", + "tensor(0.6804, grad_fn=)\n", + "tensor(0.6797, grad_fn=)\n", + "tensor(0.6791, grad_fn=)\n", + "tensor(0.6785, grad_fn=)\n", + "tensor(0.6779, grad_fn=)\n", + "tensor(0.6773, grad_fn=)\n", + "tensor(0.6768, grad_fn=)\n", + "tensor(0.6763, grad_fn=)\n", + "tensor(0.6758, grad_fn=)\n", + "tensor(0.6753, grad_fn=)\n", + "tensor(0.6749, grad_fn=)\n", + "tensor(0.6745, grad_fn=)\n", + "tensor(0.6740, grad_fn=)\n", + "tensor(0.6736, grad_fn=)\n", + "tensor(0.6732, grad_fn=)\n", + "tensor(0.6728, grad_fn=)\n", + "tensor(0.6725, grad_fn=)\n", + "tensor(0.6721, grad_fn=)\n", + "tensor(0.6718, grad_fn=)\n", + "tensor(0.6714, grad_fn=)\n", + "tensor(0.6711, grad_fn=)\n", + "tensor(0.6707, grad_fn=)\n", + "tensor(0.6704, grad_fn=)\n", + "tensor(0.6701, grad_fn=)\n", + "tensor(0.6698, grad_fn=)\n", + "tensor(0.6694, grad_fn=)\n", + "tensor(0.6691, grad_fn=)\n", + "tensor(0.6688, grad_fn=)\n", + "tensor(0.6685, grad_fn=)\n", + "tensor(0.6682, grad_fn=)\n", + "tensor(0.6679, grad_fn=)\n", + "tensor(0.6676, grad_fn=)\n", + "tensor(0.6673, grad_fn=)\n", + "tensor(0.6671, grad_fn=)\n", + "tensor(0.6668, grad_fn=)\n", + "tensor(0.6665, grad_fn=)\n", + "tensor(0.6662, grad_fn=)\n", + "tensor(0.6659, grad_fn=)\n", + "tensor(0.6656, grad_fn=)\n", + "tensor(0.6654, grad_fn=)\n", + "tensor(0.6651, grad_fn=)\n", + "tensor(0.6648, grad_fn=)\n", + "tensor(0.6645, grad_fn=)\n", + "tensor(0.6643, grad_fn=)\n", + "tensor(0.6640, grad_fn=)\n", + "tensor(0.6637, grad_fn=)\n", + "tensor(0.6634, grad_fn=)\n", + "tensor(0.6632, grad_fn=)\n", + "tensor(0.6629, grad_fn=)\n", + "tensor(0.6626, grad_fn=)\n", + "tensor(0.6624, grad_fn=)\n", + "tensor(0.6621, grad_fn=)\n", + "tensor(0.6618, grad_fn=)\n", + "tensor(0.6616, grad_fn=)\n", + "tensor(0.6613, grad_fn=)\n", + "tensor(0.6610, grad_fn=)\n", + "tensor(0.6608, grad_fn=)\n", + "tensor(0.6605, grad_fn=)\n", + "tensor(0.6603, grad_fn=)\n", + "tensor(0.6600, grad_fn=)\n", + "tensor(0.6597, grad_fn=)\n", + "tensor(0.6595, grad_fn=)\n", + "tensor(0.6592, grad_fn=)\n", + "tensor(0.6589, grad_fn=)\n", + "tensor(0.6587, grad_fn=)\n", + "tensor(0.6584, grad_fn=)\n", + "tensor(0.6582, grad_fn=)\n", + "tensor(0.6579, grad_fn=)\n", + "tensor(0.6576, grad_fn=)\n", + "tensor(0.6574, grad_fn=)\n", + "tensor(0.6571, grad_fn=)\n", + "tensor(0.6569, grad_fn=)\n", + "tensor(0.6566, grad_fn=)\n" ] } ], "source": [ "# 自动求导并更新参数\n", - "loss.backward()\n", - "w.data = w.data - 0.1 * w.grad.data\n", - "b.data = b.data - 0.1 * b.grad.data\n", + "for i in range(10):\n", + " w.grad.data.zero_()\n", + " b.grad.data.zero_()\n", + " \n", + " # calc grad\n", + " loss.backward()\n", + " w.data = w.data - 0.1 * w.grad.data\n", + " b.data = b.data - 0.1 * b.grad.data\n", "\n", - "# 算出一次更新之后的loss\n", - "y_pred = logistic_regression(x_data)\n", - "loss = binary_loss(y_pred, y_data)\n", - "print(loss)" + " # 算出一次更新之后的loss\n", + " y_pred = logistic_regression(x_data)\n", + " loss = binary_loss(y_pred, y_data)\n", + " print(loss)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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nGYggI8OfERFdQWVNZW8tOUlSt8pBWBErxFO7eDigos1s6n4mmoAbfDkk08yfPhwRowYwQ033AA0PvsG6Ny5MwB33nknK1euZOTIkdx///3ce++9PPvss4wcOZJnn32Wxx9/nNtvv91Zx/e+9z0uuugiBg0a5Kyvvr6ev/u7v+Oss85i2rRpzJgxo9G2mjNx4kQa+k86d+7M/PnzGTFiBBdccAF79uwBYN++fVx11VWMHTuWsWPHsnr1and3VAbr26Uvc0fOpewbZez54R7WzlvLLyb/gu4duvPgmgeZ+tRUut/fna+VfY0H1zzIpn2b8HN/mwRTWtcA/v6lv2fdx+tcXefI3iN5cPqDLf793Xff5ec//zmvvfYaPXr0YP/+/VHXt3DhQv71X/+VF154AYBevXpRVVXFL3/5SwAef/zxRsvv3r2bVatWsXnzZmbOnMnVV1/N888/z7Zt29i0aRN79+5l6NCh3HTTTTF/pkOHDnHBBRewYMEC7rjjDn77299y99138/3vf58f/OAHXHLJJezYsYOSkhLee++9mNcrIVkmi1F9RjGqzyjuGn8XB48d5JVtr1BeHboY7QflPwC+mtm0ZHAJUwZN0cym4rm0TgBeePnll7nmmmvo0SP04+3evbur67/iiivIyspi2LBhzpn6qlWruOaaa8jKyqJ3795MmjQprnXm5uZy2WWXATB69GgqKysBWLp0aaN+gi+++IKDBw86tRdpm865nfn6GV/n62d8HYDtn213pqr40+Y/8R/r/gODYXTf0c5Q0wv6X6CZTSXl0joBRDtTT7V27dpRX18PhJpsjh071qb1tG/f3nnuVpNBTk6OM6InOzub48ePA6E416xZQ16e2qmTqbBrITePupmbR93szGxaXl1ORXUFC1ctZMHKBXTO7czkgZOdqSpO73564EZhSeqpDyBOkydP5g9/+AO1tbUAThNQUVERa9euBUIje+rq6gDo0qULBw4ccP5/09exuPjii3nuueeor69nz549rFixwoVPAsXFxTz88MPO63Xr3G1Ok5NlZ2Vzfv/zuffSe1l10ypq76jlj9f+kTnnzmHDng3c/pfbOeOXZzDooUF8+7++zfPvPc9nRz/zOmzJUGldA/DC2Wefzfz587n00kvJzs7mvPPO4/HHH+eWW27h8ssvZ8SIEUyfPp1OnToBMHz4cLKz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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# 画出参数更新之前的结果\n", + "w0 = w[0].data[0]\n", + "w1 = w[1].data[0]\n", + "b0 = b.data[0]\n", + "\n", + "plot_x = np.arange(0.2, 1, 0.01)\n", + "plot_y = (-w0.numpy() * plot_x - b0.numpy()) / w1.numpy()\n", + "\n", + "plt.plot(plot_x, plot_y, 'g', label='cutting line')\n", + "plt.plot(plot_x0, plot_y0, 'ro', label='x_0')\n", + "plt.plot(plot_x1, plot_y1, 'bo', label='x_1')\n", + "plt.legend(loc='best')" ] }, { diff --git a/6_pytorch/1_NN/nn-sequential-module.ipynb b/6_pytorch/1_NN/3-nn-sequential-module.ipynb similarity index 100% rename from 6_pytorch/1_NN/nn-sequential-module.ipynb rename to 6_pytorch/1_NN/3-nn-sequential-module.ipynb diff --git a/6_pytorch/1_NN/deep-nn.ipynb b/6_pytorch/1_NN/4-deep-nn.ipynb similarity index 100% rename from 6_pytorch/1_NN/deep-nn.ipynb rename to 6_pytorch/1_NN/4-deep-nn.ipynb diff --git a/6_pytorch/1_NN/param_initialize.ipynb b/6_pytorch/1_NN/5-param_initialize.ipynb similarity index 100% rename from 6_pytorch/1_NN/param_initialize.ipynb rename to 6_pytorch/1_NN/5-param_initialize.ipynb diff --git a/6_pytorch/1_NN/nn_summary.ipynb b/6_pytorch/1_NN/6-nn_summary.ipynb similarity index 100% rename from 6_pytorch/1_NN/nn_summary.ipynb rename to 6_pytorch/1_NN/6-nn_summary.ipynb diff --git a/6_pytorch/1_NN/bp.ipynb b/6_pytorch/1_NN/bp.ipynb deleted file mode 100644 index c1b811b..0000000 --- a/6_pytorch/1_NN/bp.ipynb +++ /dev/null @@ -1,128 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 反向传播算法\n", - "\n", - "前面我们介绍了三个模型,整个处理的基本流程都是定义模型,读入数据,给出损失函数$f$,通过梯度下降法更新参数。PyTorch 提供了非常简单的自动求导帮助我们求解导数,对于比较简单的模型,我们也能手动求出参数的梯度,但是对于非常复杂的模型,比如一个 100 层的网络,我们如何能够有效地手动求出这个梯度呢?这里就需要引入反向传播算法,自动求导本质是就是一个反向传播算法。\n", - "\n", - "反向传播算法是一个有效地求解梯度的算法,本质上其实就是一个链式求导法则的应用,然而这个如此简单而且显而易见的方法却是在 Roseblatt 提出感知机算法后将近 30 年才被发明和普及的,对此 Bengio 这样说道:“很多看似显而易见的想法只有在事后才变得的显而易见。”\n", - "\n", - "下面我们就来详细将一讲什么是反向传播算法。" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 链式法则\n", - "\n", - "首先来简单地介绍一下链式法则,考虑一个简单的函数,比如\n", - "$$f(x, y, z) = (x + y)z$$\n", - "\n", - "我们当然可以直接求出这个函数的微分,但是这里我们要使用链式法则,令\n", - "$$q=x+y$$\n", - "\n", - "那么\n", - "\n", - "$$f = qz$$\n", - "\n", - "对于这两个式子,我们可以分别求出他们的微分 \n", - "\n", - "$$\\frac{\\partial f}{\\partial q} = z, \\frac{\\partial f}{\\partial z}=q$$\n", - "\n", - "同时$q$是$x$和$y$的求和,所以我们能够得到\n", - "\n", - "$$\\frac{\\partial q}{x} = 1, \\frac{\\partial q}{y} = 1$$\n", - "\n", - "我们关心的问题是\n", - "\n", - "$$\\frac{\\partial f}{\\partial x}, \\frac{\\partial f}{\\partial y}, \\frac{\\partial f}{\\partial z}$$\n", - "\n", - "链式法则告诉我们如何来计算出他们的值\n", - "\n", - "$$\n", - "\\frac{\\partial f}{\\partial x} = \\frac{\\partial f}{\\partial q}\\frac{\\partial q}{\\partial x}\n", - "$$\n", - "$$\n", - "\\frac{\\partial f}{\\partial y} = \\frac{\\partial f}{\\partial q}\\frac{\\partial q}{\\partial y}\n", - "$$\n", - "$$\n", - "\\frac{\\partial f}{\\partial z} = q\n", - "$$\n", - "\n", - "通过链式法则我们知道如果我们需要对其中的元素求导,那么我们可以一层一层求导然后将结果乘起来,这就是链式法则的核心,也是反向传播算法的核心,更多关于链式法则的算法,可以访问这个[文档](https://zh.wikipedia.org/wiki/%E9%93%BE%E5%BC%8F%E6%B3%95%E5%88%99)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 反向传播算法\n", - "\n", - "了解了链式法则,我们就可以开始介绍反向传播算法了,本质上反向传播算法只是链式法则的一个应用。我们还是使用之前那个相同的例子$q=x+y, f=qz$,通过计算图可以将这个计算过程表达出来\n", - "\n", - "![](https://ws1.sinaimg.cn/large/006tNc79ly1fmiozcinyzj30c806vglk.jpg)\n", - "\n", - "上面绿色的数字表示其数值,下面红色的数字表示求出的梯度,我们可以一步一步看看反向传播算法的实现。首先从最后开始,梯度当然是1,然后计算\n", - "\n", - "$$\\frac{\\partial f}{\\partial q} = z = -4,\\ \\frac{\\partial f}{\\partial z} = q = 3$$\n", - "\n", - "接着我们计算\n", - "$$\\frac{\\partial f}{\\partial x} = \\frac{\\partial f}{\\partial q} \\frac{\\partial q}{\\partial x} = -4 \\times 1 = -4,\\ \\frac{\\partial f}{\\partial y} = \\frac{\\partial f}{\\partial q} \\frac{\\partial q}{\\partial y} = -4 \\times 1 = -4$$\n", - "\n", - "这样一步一步我们就求出了$\\nabla f(x, y, z)$。\n", - "\n", - "直观上看反向传播算法是一个优雅的局部过程,每次求导只是对当前的运算求导,求解每层网络的参数都是通过链式法则将前面的结果求出不断迭代到这一层,所以说这是一个传播过程\n", - "\n", - "### Sigmoid函数举例\n", - "\n", - "下面我们通过Sigmoid函数来演示反向传播过程在一个复杂的函数上是如何进行的。\n", - "\n", - "$$\n", - "f(w, x) = \\frac{1}{1+e^{-(w_0 x_0 + w_1 x_1 + w_2)}}\n", - "$$\n", - "\n", - "我们需要求解出\n", - "$$\\frac{\\partial f}{\\partial w_0}, \\frac{\\partial f}{\\partial w_1}, \\frac{\\partial f}{\\partial w_2}$$\n", - "\n", - "首先我们将这个函数抽象成一个计算图来表示,即\n", - "$$\n", - " f(x) = \\frac{1}{x} \\\\\n", - " f_c(x) = 1 + x \\\\\n", - " f_e(x) = e^x \\\\\n", - " f_w(x) = -(w_0 x_0 + w_1 x_1 + w_2)\n", - "$$\n", - "\n", - "这样我们就能够画出下面的计算图\n", - "\n", - "![](https://ws1.sinaimg.cn/large/006tNc79ly1fmip1va5qjj30lb08e0t0.jpg)\n", - "\n", - "同样上面绿色的数子表示数值,下面红色的数字表示梯度,我们从后往前计算一下各个参数的梯度。首先最后面的梯度是1,,然后经过$\\frac{1}{x}$这个函数,这个函数的梯度是$-\\frac{1}{x^2}$,所以往前传播的梯度是$1 \\times -\\frac{1}{1.37^2} = -0.53$,然后是$+1$这个操作,梯度不变,接着是$e^x$这个运算,它的梯度就是$-0.53 \\times e^{-1} = -0.2$,这样不断往后传播就能够求得每个参数的梯度。" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.5.2" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/6_pytorch/1_NN/optimizer/sgd.ipynb b/6_pytorch/1_NN/optimizer/6_1-sgd.ipynb similarity index 100% rename from 6_pytorch/1_NN/optimizer/sgd.ipynb rename to 6_pytorch/1_NN/optimizer/6_1-sgd.ipynb diff --git a/6_pytorch/1_NN/optimizer/momentum.ipynb b/6_pytorch/1_NN/optimizer/6_2-momentum.ipynb similarity index 100% rename from 6_pytorch/1_NN/optimizer/momentum.ipynb rename to 6_pytorch/1_NN/optimizer/6_2-momentum.ipynb diff --git a/6_pytorch/1_NN/optimizer/adagrad.ipynb b/6_pytorch/1_NN/optimizer/6_3-adagrad.ipynb similarity index 100% rename from 6_pytorch/1_NN/optimizer/adagrad.ipynb rename to 6_pytorch/1_NN/optimizer/6_3-adagrad.ipynb diff --git a/6_pytorch/1_NN/optimizer/rmsprop.ipynb b/6_pytorch/1_NN/optimizer/6_4-rmsprop.ipynb similarity index 100% rename from 6_pytorch/1_NN/optimizer/rmsprop.ipynb rename to 6_pytorch/1_NN/optimizer/6_4-rmsprop.ipynb diff --git a/6_pytorch/1_NN/optimizer/adadelta.ipynb b/6_pytorch/1_NN/optimizer/6_5-adadelta.ipynb similarity index 100% rename from 6_pytorch/1_NN/optimizer/adadelta.ipynb rename to 6_pytorch/1_NN/optimizer/6_5-adadelta.ipynb diff --git a/6_pytorch/1_NN/optimizer/adam.ipynb b/6_pytorch/1_NN/optimizer/6_6-adam.ipynb similarity index 100% rename from 6_pytorch/1_NN/optimizer/adam.ipynb rename to 6_pytorch/1_NN/optimizer/6_6-adam.ipynb diff --git a/6_pytorch/1_NN/optimizer/adadelta.py b/6_pytorch/1_NN/optimizer/adadelta.py deleted file mode 100644 index fab95ed..0000000 --- a/6_pytorch/1_NN/optimizer/adadelta.py +++ /dev/null @@ -1,169 +0,0 @@ -# -*- coding: utf-8 -*- -# --- -# jupyter: -# jupytext_format_version: '1.2' -# kernelspec: -# display_name: Python 3 -# language: python -# name: python3 -# language_info: -# codemirror_mode: -# name: ipython -# version: 3 -# file_extension: .py -# mimetype: text/x-python -# name: python -# nbconvert_exporter: python -# pygments_lexer: ipython3 -# version: 3.5.2 -# --- - -# # Adadelta -# Adadelta 算是 Adagrad 法的延伸,它跟 RMSProp 一样,都是为了解决 Adagrad 中学习率不断减小的问题,RMSProp 是通过移动加权平均的方式,而 Adadelta 也是一种方法,有趣的是,它并不需要学习率这个参数。 -# -# ## Adadelta 法 -# Adadelta 跟 RMSProp 一样,先使用移动平均来计算 s -# -# $$ -# s = \rho s + (1 - \rho) g^2 -# $$ -# -# 这里 $\rho$ 和 RMSProp 中的 $\alpha$ 都是移动平均系数,g 是参数的梯度,然后我们会计算需要更新的参数的变化量 -# -# $$ -# g' = \frac{\sqrt{\Delta \theta + \epsilon}}{\sqrt{s + \epsilon}} g -# $$ -# -# $\Delta \theta$ 初始为 0 张量,每一步做如下的指数加权移动平均更新 -# -# $$ -# \Delta \theta = \rho \Delta \theta + (1 - \rho) g'^2 -# $$ -# -# 最后参数更新如下 -# -# $$ -# \theta = \theta - g' -# $$ -# -# 下面我们实现以下 Adadelta - -def adadelta(parameters, sqrs, deltas, rho): - eps = 1e-6 - for param, sqr, delta in zip(parameters, sqrs, deltas): - sqr[:] = rho * sqr + (1 - rho) * param.grad.data ** 2 - cur_delta = torch.sqrt(delta + eps) / torch.sqrt(sqr + eps) * param.grad.data - delta[:] = rho * delta + (1 - rho) * cur_delta ** 2 - param.data = param.data - cur_delta - -# + -import numpy as np -import torch -from torchvision.datasets import MNIST # 导入 pytorch 内置的 mnist 数据 -from torch.utils.data import DataLoader -from torch import nn -from torch.autograd import Variable -import time -import matplotlib.pyplot as plt -# %matplotlib inline - -def data_tf(x): - x = np.array(x, dtype='float32') / 255 - x = (x - 0.5) / 0.5 # 标准化,这个技巧之后会讲到 - x = x.reshape((-1,)) # 拉平 - x = torch.from_numpy(x) - return x - -train_set = MNIST('./data', train=True, transform=data_tf, download=True) # 载入数据集,申明定义的数据变换 -test_set = MNIST('./data', train=False, transform=data_tf, download=True) - -# 定义 loss 函数 -criterion = nn.CrossEntropyLoss() - -# + -train_data = DataLoader(train_set, batch_size=64, shuffle=True) -# 使用 Sequential 定义 3 层神经网络 -net = nn.Sequential( - nn.Linear(784, 200), - nn.ReLU(), - nn.Linear(200, 10), -) - -# 初始化梯度平方项和 delta 项 -sqrs = [] -deltas = [] -for param in net.parameters(): - sqrs.append(torch.zeros_like(param.data)) - deltas.append(torch.zeros_like(param.data)) - -# 开始训练 -losses = [] -idx = 0 -start = time.time() # 记时开始 -for e in range(5): - train_loss = 0 - for im, label in train_data: - im = Variable(im) - label = Variable(label) - # 前向传播 - out = net(im) - loss = criterion(out, label) - # 反向传播 - net.zero_grad() - loss.backward() - adadelta(net.parameters(), sqrs, deltas, 0.9) # rho 设置为 0.9 - # 记录误差 - train_loss += loss.data[0] - if idx % 30 == 0: - losses.append(loss.data[0]) - idx += 1 - print('epoch: {}, Train Loss: {:.6f}' - .format(e, train_loss / len(train_data))) -end = time.time() # 计时结束 -print('使用时间: {:.5f} s'.format(end - start)) -# - - -x_axis = np.linspace(0, 5, len(losses), endpoint=True) -plt.semilogy(x_axis, losses, label='rho=0.99') -plt.legend(loc='best') - -# 可以看到使用 adadelta 跑 5 次能够得到更小的 loss - -# **小练习:思考一下为什么 Adadelta 没有学习率这个参数,它是被什么代替了** - -# 当然 pytorch 也内置了 adadelta 的方法,非常简单,只需要调用 `torch.optim.Adadelta()` 就可以了,下面是例子 - -# + -train_data = DataLoader(train_set, batch_size=64, shuffle=True) -# 使用 Sequential 定义 3 层神经网络 -net = nn.Sequential( - nn.Linear(784, 200), - nn.ReLU(), - nn.Linear(200, 10), -) - -optimizer = torch.optim.Adadelta(net.parameters(), rho=0.9) - -# 开始训练 -start = time.time() # 记时开始 -for e in range(5): - train_loss = 0 - for im, label in train_data: - im = Variable(im) - label = Variable(label) - # 前向传播 - out = net(im) - loss = criterion(out, label) - # 反向传播 - optimizer.zero_grad() - loss.backward() - optimizer.step() - # 记录误差 - train_loss += loss.data[0] - print('epoch: {}, Train Loss: {:.6f}' - .format(e, train_loss / len(train_data))) -end = time.time() # 计时结束 -print('使用时间: {:.5f} s'.format(end - start)) -# - - -# **小练习:看看 pytorch 中的 adadelta,里面是有学习率这个参数,但是前面我们讲过 adadelta 不用设置学习率,看看这个学习率到底是干嘛的** diff --git a/6_pytorch/1_NN/optimizer/adam.py b/6_pytorch/1_NN/optimizer/adam.py deleted file mode 100644 index 220cb01..0000000 --- a/6_pytorch/1_NN/optimizer/adam.py +++ /dev/null @@ -1,182 +0,0 @@ -# -*- coding: utf-8 -*- -# --- -# jupyter: -# jupytext_format_version: '1.2' -# kernelspec: -# display_name: Python 3 -# language: python -# name: python3 -# language_info: -# codemirror_mode: -# name: ipython -# version: 3 -# file_extension: .py -# mimetype: text/x-python -# name: python -# nbconvert_exporter: python -# pygments_lexer: ipython3 -# version: 3.5.2 -# --- - -# # Adam -# Adam 是一个结合了动量法和 RMSProp 的优化算法,其结合了两者的优点。 -# -# ## Adam 算法 -# Adam 算法会使用一个动量变量 v 和一个 RMSProp 中的梯度元素平方的移动指数加权平均 s,首先将他们全部初始化为 0,然后在每次迭代中,计算他们的移动加权平均进行更新 -# -# $$ -# v = \beta_1 v + (1 - \beta_1) g \\ -# s = \beta_2 s + (1 - \beta_2) g^2 -# $$ -# -# 在 adam 算法里,为了减轻 v 和 s 被初始化为 0 的初期对计算指数加权移动平均的影响,每次 v 和 s 都做下面的修正 -# -# $$ -# \hat{v} = \frac{v}{1 - \beta_1^t} \\ -# \hat{s} = \frac{s}{1 - \beta_2^t} -# $$ -# -# 这里 t 是迭代次数,可以看到,当 $0 \leq \beta_1, \beta_2 \leq 1$ 的时候,迭代到后期 t 比较大,那么 $\beta_1^t$ 和 $\beta_2^t$ 就几乎为 0,就不会对 v 和 s 有任何影响了,算法作者建议$\beta_1 = 0.9$, $\beta_2 = 0.999$。 -# -# 最后使用修正之后的 $\hat{v}$ 和 $\hat{s}$ 进行学习率的重新计算 -# -# $$ -# g' = \frac{\eta \hat{v}}{\sqrt{\hat{s} + \epsilon}} -# $$ -# -# 这里 $\eta$ 是学习率,$epsilon$ 仍然是为了数值稳定性而添加的常数,最后参数更新有 -# -# $$ -# \theta_i = \theta_{i-1} - g' -# $$ - -# 下面我们来实现以下 adam 算法 - -def adam(parameters, vs, sqrs, lr, t, beta1=0.9, beta2=0.999): - eps = 1e-8 - for param, v, sqr in zip(parameters, vs, sqrs): - v[:] = beta1 * v + (1 - beta1) * param.grad.data - sqr[:] = beta2 * sqr + (1 - beta2) * param.grad.data ** 2 - v_hat = v / (1 - beta1 ** t) - s_hat = sqr / (1 - beta2 ** t) - param.data = param.data - lr * v_hat / torch.sqrt(s_hat + eps) - -# + -import numpy as np -import torch -from torchvision.datasets import MNIST # 导入 pytorch 内置的 mnist 数据 -from torch.utils.data import DataLoader -from torch import nn -from torch.autograd import Variable -import time -import matplotlib.pyplot as plt -# %matplotlib inline - -def data_tf(x): - x = np.array(x, dtype='float32') / 255 - x = (x - 0.5) / 0.5 # 标准化,这个技巧之后会讲到 - x = x.reshape((-1,)) # 拉平 - x = torch.from_numpy(x) - return x - -train_set = MNIST('../../../data/mnist', train=True, transform=data_tf, download=True) # 载入数据集,申明定义的数据变换 -test_set = MNIST('../../../data/mnist', train=False, transform=data_tf, download=True) - -# 定义 loss 函数 -criterion = nn.CrossEntropyLoss() - -# + -train_data = DataLoader(train_set, batch_size=64, shuffle=True) -# 使用 Sequential 定义 3 层神经网络 -net = nn.Sequential( - nn.Linear(784, 200), - nn.ReLU(), - nn.Linear(200, 10), -) - -# 初始化梯度平方项和动量项 -sqrs = [] -vs = [] -for param in net.parameters(): - sqrs.append(torch.zeros_like(param.data)) - vs.append(torch.zeros_like(param.data)) -t = 1 -# 开始训练 -losses = [] -idx = 0 - -start = time.time() # 记时开始 -for e in range(5): - train_loss = 0 - for im, label in train_data: - im = Variable(im) - label = Variable(label) - # 前向传播 - out = net(im) - loss = criterion(out, label) - # 反向传播 - net.zero_grad() - loss.backward() - adam(net.parameters(), vs, sqrs, 1e-3, t) # 学习率设为 0.001 - t += 1 - # 记录误差 - train_loss += loss.data[0] - if idx % 30 == 0: - losses.append(loss.data[0]) - idx += 1 - print('epoch: {}, Train Loss: {:.6f}' - .format(e, train_loss / len(train_data))) -end = time.time() # 计时结束 -print('使用时间: {:.5f} s'.format(end - start)) -# - - -x_axis = np.linspace(0, 5, len(losses), endpoint=True) -plt.semilogy(x_axis, losses, label='adam') -plt.legend(loc='best') - -# 可以看到使用 adam 算法 loss 能够更快更好地收敛,但是一定要小心学习率的设定,使用自适应的算法一般需要更小的学习率 -# -# 当然 pytorch 中也内置了 adam 的实现,只需要调用 `torch.optim.Adam()`,下面是例子 - -# + -train_data = DataLoader(train_set, batch_size=64, shuffle=True) -# 使用 Sequential 定义 3 层神经网络 -net = nn.Sequential( - nn.Linear(784, 200), - nn.ReLU(), - nn.Linear(200, 10), -) - -optimizer = torch.optim.Adam(net.parameters(), lr=1e-3) - -# 开始训练 -start = time.time() # 记时开始 -for e in range(5): - train_loss = 0 - for im, label in train_data: - im = Variable(im) - label = Variable(label) - # 前向传播 - out = net(im) - loss = criterion(out, label) - # 反向传播 - optimizer.zero_grad() - loss.backward() - optimizer.step() - # 记录误差 - train_loss += loss.data[0] - print('epoch: {}, Train Loss: {:.6f}' - .format(e, train_loss / len(train_data))) -end = time.time() # 计时结束 -print('使用时间: {:.5f} s'.format(end - start)) -# - - -# 这是我们讲的最后一个优化算法,下面放一张各个优化算法的对比图结束这一节的内容 -# -# ![](https://raw.githubusercontent.com/cs231n/cs231n.github.io/master/assets/nn3/opt1.gif) -# -# ![](https://raw.githubusercontent.com/cs231n/cs231n.github.io/master/assets/nn3/opt2.gif) -# -# - -# 这两张图生动形象地展示了各种优化算法的实际效果 diff --git a/6_pytorch/1_NN/optimizer/momentum.py b/6_pytorch/1_NN/optimizer/momentum.py deleted file mode 100644 index 1135a14..0000000 --- a/6_pytorch/1_NN/optimizer/momentum.py +++ /dev/null @@ -1,231 +0,0 @@ -# -*- coding: utf-8 -*- -# --- -# jupyter: -# jupytext_format_version: '1.2' -# kernelspec: -# display_name: Python 3 -# language: python -# name: python3 -# language_info: -# codemirror_mode: -# name: ipython -# version: 3 -# file_extension: .py -# mimetype: text/x-python -# name: python -# nbconvert_exporter: python -# pygments_lexer: ipython3 -# version: 3.5.2 -# --- - -# # 动量法 -# 使用梯度下降法,每次都会朝着目标函数下降最快的方向,这也称为最速下降法。这种更新方法看似非常快,实际上存在一些问题。 -# -# ## 梯度下降法的问题 -# 考虑一个二维输入,$[x_1, x_2]$,输出的损失函数 $L: R^2 \rightarrow R$,下面是这个函数的等高线 -# -# ![](https://ws1.sinaimg.cn/large/006tKfTcly1fmnketw5f4j30az04lq31.jpg) -# -# 可以想象成一个很扁的漏斗,这样在竖直方向上,梯度就非常大,在水平方向上,梯度就相对较小,所以我们在设置学习率的时候就不能设置太大,为了防止竖直方向上参数更新太过了,这样一个较小的学习率又导致了水平方向上参数在更新的时候太过于缓慢,所以就导致最终收敛起来非常慢。 -# -# ## 动量法 -# 动量法的提出就是为了应对这个问题,我们梯度下降法做一个修改如下 -# -# $$ -# v_i = \gamma v_{i-1} + \eta \nabla L(\theta) -# $$ -# $$ -# \theta_i = \theta_{i-1} - v_i -# $$ -# -# 其中 $v_i$ 是当前速度,$\gamma$ 是动量参数,是一个小于 1的正数,$\eta$ 是学习率 - -# 相当于每次在进行参数更新的时候,都会将之前的速度考虑进来,每个参数在各方向上的移动幅度不仅取决于当前的梯度,还取决于过去各个梯度在各个方向上是否一致,如果一个梯度一直沿着当前方向进行更新,那么每次更新的幅度就越来越大,如果一个梯度在一个方向上不断变化,那么其更新幅度就会被衰减,这样我们就可以使用一个较大的学习率,使得收敛更快,同时梯度比较大的方向就会因为动量的关系每次更新的幅度减少,如下图 -# -# ![](https://ws1.sinaimg.cn/large/006tNc79gy1fmo5l53o76j30ak04gjrh.jpg) -# -# 比如我们的梯度每次都等于 g,而且方向都相同,那么动量法在该方向上使参数加速移动,有下面的公式: -# -# $$ -# v_0 = 0 -# $$ -# $$ -# v_1 = \gamma v_0 + \eta g = \eta g -# $$ -# $$ -# v_2 = \gamma v_1 + \eta g = (1 + \gamma) \eta g -# $$ -# $$ -# v_3 = \gamma v_2 + \eta g = (1 + \gamma + \gamma^2) \eta g -# $$ -# $$ -# \cdots -# $$ -# $$ -# v_{+ \infty} = (1 + \gamma + \gamma^2 + \gamma^3 + \cdots) \eta g = \frac{1}{1 - \gamma} \eta g -# $$ -# -# 如果我们把 $\gamma$ 定为 0.9,那么更新幅度的峰值就是原本梯度乘学习率的 10 倍。 -# -# 本质上说,动量法就仿佛我们从高坡上推一个球,小球在向下滚动的过程中积累了动量,在途中也会变得越来越快,最后会达到一个峰值,对应于我们的算法中就是,动量项会沿着梯度指向方向相同的方向不断增大,对于梯度方向改变的方向逐渐减小,得到了更快的收敛速度以及更小的震荡。 -# -# 下面我们手动实现一个动量法,公式已经在上面了 - -def sgd_momentum(parameters, vs, lr, gamma): - for param, v in zip(parameters, vs): - v[:] = gamma * v + lr * param.grad.data - param.data = param.data - v - -# + -import numpy as np -import torch -from torchvision.datasets import MNIST # 导入 pytorch 内置的 mnist 数据 -from torch.utils.data import DataLoader -from torch import nn -from torch.autograd import Variable -import time -import matplotlib.pyplot as plt -# %matplotlib inline - -def data_tf(x): - x = np.array(x, dtype='float32') / 255 - x = (x - 0.5) / 0.5 # 标准化,这个技巧之后会讲到 - x = x.reshape((-1,)) # 拉平 - x = torch.from_numpy(x) - return x - -train_set = MNIST('./data', train=True, transform=data_tf, download=True) # 载入数据集,申明定义的数据变换 -test_set = MNIST('./data', train=False, transform=data_tf, download=True) - -# 定义 loss 函数 -criterion = nn.CrossEntropyLoss() - -# + -train_data = DataLoader(train_set, batch_size=64, shuffle=True) -# 使用 Sequential 定义 3 层神经网络 -net = nn.Sequential( - nn.Linear(784, 200), - nn.ReLU(), - nn.Linear(200, 10), -) - -# 将速度初始化为和参数形状相同的零张量 -vs = [] -for param in net.parameters(): - vs.append(torch.zeros_like(param.data)) - -# 开始训练 -losses = [] - -start = time.time() # 记时开始 -for e in range(5): - train_loss = 0 - for im, label in train_data: - im = Variable(im) - label = Variable(label) - # 前向传播 - out = net(im) - loss = criterion(out, label) - # 反向传播 - net.zero_grad() - loss.backward() - sgd_momentum(net.parameters(), vs, 1e-2, 0.9) # 使用的动量参数为 0.9,学习率 0.01 - # 记录误差 - train_loss += loss.data[0] - - losses.append(loss.data[0]) - print('epoch: {}, Train Loss: {:.6f}' - .format(e, train_loss / len(train_data))) -end = time.time() # 计时结束 -print('使用时间: {:.5f} s'.format(end - start)) -# - - -# 可以看到,加完动量之后 loss 能下降非常快,但是一定要小心学习率和动量参数,这两个值会直接影响到参数每次更新的幅度,所以可以多试几个值 - -# 当然,pytorch 内置了动量法的实现,非常简单,直接在 `torch.optim.SGD(momentum=0.9)` 即可,下面实现一下 - -# + -train_data = DataLoader(train_set, batch_size=64, shuffle=True) -# 使用 Sequential 定义 3 层神经网络 -net = nn.Sequential( - nn.Linear(784, 200), - nn.ReLU(), - nn.Linear(200, 10), -) - -optimizer = torch.optim.SGD(net.parameters(), lr=1e-2, momentum=0.9) # 加动量 -# 开始训练 -losses = [] -idx = 0 -start = time.time() # 记时开始 -for e in range(5): - train_loss = 0 - for im, label in train_data: - im = Variable(im) - label = Variable(label) - # 前向传播 - out = net(im) - loss = criterion(out, label) - # 反向传播 - optimizer.zero_grad() - loss.backward() - optimizer.step() - # 记录误差 - train_loss += loss.data[0] - if idx % 30 == 0: # 30 步记录一次 - losses.append(loss.data[0]) - idx += 1 - print('epoch: {}, Train Loss: {:.6f}' - .format(e, train_loss / len(train_data))) -end = time.time() # 计时结束 -print('使用时间: {:.5f} s'.format(end - start)) -# - - -x_axis = np.linspace(0, 5, len(losses), endpoint=True) -plt.semilogy(x_axis, losses, label='momentum: 0.9') -plt.legend(loc='best') - -# 我们可以对比一下不加动量的随机梯度下降法 - -# + -# 使用 Sequential 定义 3 层神经网络 -net = nn.Sequential( - nn.Linear(784, 200), - nn.ReLU(), - nn.Linear(200, 10), -) - -optimizer = torch.optim.SGD(net.parameters(), lr=1e-2) # 不加动量 -# 开始训练 -losses1 = [] -idx = 0 -start = time.time() # 记时开始 -for e in range(5): - train_loss = 0 - for im, label in train_data: - im = Variable(im) - label = Variable(label) - # 前向传播 - out = net(im) - loss = criterion(out, label) - # 反向传播 - optimizer.zero_grad() - loss.backward() - optimizer.step() - # 记录误差 - train_loss += loss.data[0] - if idx % 30 == 0: # 30 步记录一次 - losses1.append(loss.data[0]) - idx += 1 - print('epoch: {}, Train Loss: {:.6f}' - .format(e, train_loss / len(train_data))) -end = time.time() # 计时结束 -print('使用时间: {:.5f} s'.format(end - start)) -# - - -x_axis = np.linspace(0, 5, len(losses), endpoint=True) -plt.semilogy(x_axis, losses, label='momentum: 0.9') -plt.semilogy(x_axis, losses1, label='no momentum') -plt.legend(loc='best') - -# 可以看到加完动量之后的 loss 下降的程度更低了,可以将动量理解为一种惯性作用,所以每次更新的幅度都会比不加动量的情况更多 diff --git a/6_pytorch/1_NN/optimizer/rmsprop.py b/6_pytorch/1_NN/optimizer/rmsprop.py deleted file mode 100644 index 4547a7e..0000000 --- a/6_pytorch/1_NN/optimizer/rmsprop.py +++ /dev/null @@ -1,198 +0,0 @@ -# -*- coding: utf-8 -*- -# --- -# jupyter: -# jupytext_format_version: '1.2' -# kernelspec: -# display_name: Python 3 -# language: python -# name: python3 -# language_info: -# codemirror_mode: -# name: ipython -# version: 3 -# file_extension: .py -# mimetype: text/x-python -# name: python -# nbconvert_exporter: python -# pygments_lexer: ipython3 -# version: 3.5.2 -# --- - -# # RMSProp -# RMSprop 是由 Geoff Hinton 在他 Coursera 课程中提出的一种适应性学习率方法,至今仍未被公开发表。前面我们提到了 Adagrad 算法有一个问题,就是学习率分母上的变量 s 不断被累加增大,最后会导致学习率除以一个比较大的数之后变得非常小,这不利于我们找到最后的最优解,所以 RMSProp 的提出就是为了解决这个问题。 -# -# ## RMSProp 算法 -# RMSProp 仍然会使用梯度的平方量,不同于 Adagrad,其会使用一个指数加权移动平均来计算这个 s,也就是 -# -# $$ -# s_i = \alpha s_{i-1} + (1 - \alpha) \ g^2 -# $$ -# -# 这里 g 表示当前求出的参数梯度,然后最终更新和 Adagrad 是一样的,学习率变成了 -# -# $$ -# \frac{\eta}{\sqrt{s + \epsilon}} -# $$ -# -# 这里 $\alpha$ 是一个移动平均的系数,也是因为这个系数,导致了 RMSProp 和 Adagrad 不同的地方,这个系数使得 RMSProp 更新到后期累加的梯度平方较小,从而保证 s 不会太大,也就使得模型后期依然能够找到比较优的结果 -# -# 实现上和 Adagrad 非常像 - -def rmsprop(parameters, sqrs, lr, alpha): - eps = 1e-10 - for param, sqr in zip(parameters, sqrs): - sqr[:] = alpha * sqr + (1 - alpha) * param.grad.data ** 2 - div = lr / torch.sqrt(sqr + eps) * param.grad.data - param.data = param.data - div - -# + -import numpy as np -import torch -from torchvision.datasets import MNIST # 导入 pytorch 内置的 mnist 数据 -from torch.utils.data import DataLoader -from torch import nn -from torch.autograd import Variable -import time -import matplotlib.pyplot as plt -# %matplotlib inline - -def data_tf(x): - x = np.array(x, dtype='float32') / 255 - x = (x - 0.5) / 0.5 # 标准化,这个技巧之后会讲到 - x = x.reshape((-1,)) # 拉平 - x = torch.from_numpy(x) - return x - -train_set = MNIST('./data', train=True, transform=data_tf, download=True) # 载入数据集,申明定义的数据变换 -test_set = MNIST('./data', train=False, transform=data_tf, download=True) - -# 定义 loss 函数 -criterion = nn.CrossEntropyLoss() - -# + -train_data = DataLoader(train_set, batch_size=64, shuffle=True) -# 使用 Sequential 定义 3 层神经网络 -net = nn.Sequential( - nn.Linear(784, 200), - nn.ReLU(), - nn.Linear(200, 10), -) - -# 初始化梯度平方项 -sqrs = [] -for param in net.parameters(): - sqrs.append(torch.zeros_like(param.data)) - -# 开始训练 -losses = [] -idx = 0 -start = time.time() # 记时开始 -for e in range(5): - train_loss = 0 - for im, label in train_data: - im = Variable(im) - label = Variable(label) - # 前向传播 - out = net(im) - loss = criterion(out, label) - # 反向传播 - net.zero_grad() - loss.backward() - rmsprop(net.parameters(), sqrs, 1e-3, 0.9) # 学习率设为 0.001,alpha 设为 0.9 - # 记录误差 - train_loss += loss.data[0] - if idx % 30 == 0: - losses.append(loss.data[0]) - idx += 1 - print('epoch: {}, Train Loss: {:.6f}' - .format(e, train_loss / len(train_data))) -end = time.time() # 计时结束 -print('使用时间: {:.5f} s'.format(end - start)) -# - - -x_axis = np.linspace(0, 5, len(losses), endpoint=True) -plt.semilogy(x_axis, losses, label='alpha=0.9') -plt.legend(loc='best') - -# + -train_data = DataLoader(train_set, batch_size=64, shuffle=True) -# 使用 Sequential 定义 3 层神经网络 -net = nn.Sequential( - nn.Linear(784, 200), - nn.ReLU(), - nn.Linear(200, 10), -) - -# 初始化梯度平方项 -sqrs = [] -for param in net.parameters(): - sqrs.append(torch.zeros_like(param.data)) - -# 开始训练 -losses = [] -idx = 0 - -start = time.time() # 记时开始 -for e in range(5): - train_loss = 0 - for im, label in train_data: - im = Variable(im) - label = Variable(label) - # 前向传播 - out = net(im) - loss = criterion(out, label) - # 反向传播 - net.zero_grad() - loss.backward() - rmsprop(net.parameters(), sqrs, 1e-3, 0.999) # 学习率设为 0.001,alpha 设为 0.999 - # 记录误差 - train_loss += loss.data[0] - if idx % 30 == 0: - losses.append(loss.data[0]) - idx += 1 - print('epoch: {}, Train Loss: {:.6f}' - .format(e, train_loss / len(train_data))) -end = time.time() # 计时结束 -print('使用时间: {:.5f} s'.format(end - start)) -# - - -x_axis = np.linspace(0, 5, len(losses), endpoint=True) -plt.semilogy(x_axis, losses, label='alpha=0.999') -plt.legend(loc='best') - -# **小练习:可以看到使用了不同的 alpha 会使得 loss 在下降过程中的震荡程度不同,想想为什么** - -# 当然 pytorch 也内置了 rmsprop 的方法,非常简单,只需要调用 `torch.optim.RMSprop()` 就可以了,下面是例子 - -# + -train_data = DataLoader(train_set, batch_size=64, shuffle=True) -# 使用 Sequential 定义 3 层神经网络 -net = nn.Sequential( - nn.Linear(784, 200), - nn.ReLU(), - nn.Linear(200, 10), -) - -optimizer = torch.optim.RMSprop(net.parameters(), lr=1e-3, alpha=0.9) - -# 开始训练 - -start = time.time() # 记时开始 -for e in range(5): - train_loss = 0 - for im, label in train_data: - im = Variable(im) - label = Variable(label) - # 前向传播 - out = net(im) - loss = criterion(out, label) - # 反向传播 - optimizer.zero_grad() - loss.backward() - optimizer.step() - # 记录误差 - train_loss += loss.data[0] - print('epoch: {}, Train Loss: {:.6f}' - .format(e, train_loss / len(train_data))) -end = time.time() # 计时结束 -print('使用时间: {:.5f} s'.format(end - start)) diff --git a/6_pytorch/1_NN/optimizer/sgd.py b/6_pytorch/1_NN/optimizer/sgd.py deleted file mode 100644 index a42be92..0000000 --- a/6_pytorch/1_NN/optimizer/sgd.py +++ /dev/null @@ -1,222 +0,0 @@ -# -*- coding: utf-8 -*- -# --- -# jupyter: -# jupytext_format_version: '1.2' -# kernelspec: -# display_name: Python 3 -# language: python -# name: python3 -# language_info: -# codemirror_mode: -# name: ipython -# version: 3 -# file_extension: .py -# mimetype: text/x-python -# name: python -# nbconvert_exporter: python -# pygments_lexer: ipython3 -# version: 3.5.2 -# --- - -# # 随机梯度下降法 -# 前面我们介绍了梯度下降法的数学原理,下面我们通过例子来说明一下随机梯度下降法,我们分别从 0 自己实现,以及使用 pytorch 中自带的优化器 - -# + -import numpy as np -import torch -from torchvision.datasets import MNIST # 导入 pytorch 内置的 mnist 数据 -from torch.utils.data import DataLoader -from torch import nn -from torch.autograd import Variable -import time -import matplotlib.pyplot as plt -# %matplotlib inline - -def data_tf(x): - x = np.array(x, dtype='float32') / 255 # 将数据变到 0 ~ 1 之间 - x = (x - 0.5) / 0.5 # 标准化,这个技巧之后会讲到 - x = x.reshape((-1,)) # 拉平 - x = torch.from_numpy(x) - return x - -train_set = MNIST('./data', train=True, transform=data_tf, download=True) # 载入数据集,申明定义的数据变换 -test_set = MNIST('./data', train=False, transform=data_tf, download=True) - -# 定义 loss 函数 -criterion = nn.CrossEntropyLoss() -# - - -# 随机梯度下降法非常简单,公式就是 -# $$ -# \theta_{i+1} = \theta_i - \eta \nabla L(\theta) -# $$ -# 非常简单,我们可以从 0 开始自己实现 - -def sgd_update(parameters, lr): - for param in parameters: - param.data = param.data - lr * param.grad.data - -# 我们可以将 batch size 先设置为 1,看看有什么效果 - -# + -train_data = DataLoader(train_set, batch_size=1, shuffle=True) -# 使用 Sequential 定义 3 层神经网络 -net = nn.Sequential( - nn.Linear(784, 200), - nn.ReLU(), - nn.Linear(200, 10), -) - -# 开始训练 -losses1 = [] -idx = 0 - -start = time.time() # 记时开始 -for e in range(5): - train_loss = 0 - for im, label in train_data: - im = Variable(im) - label = Variable(label) - # 前向传播 - out = net(im) - loss = criterion(out, label) - # 反向传播 - net.zero_grad() - loss.backward() - sgd_update(net.parameters(), 1e-2) # 使用 0.01 的学习率 - # 记录误差 - train_loss += loss.data[0] - if idx % 30 == 0: - losses1.append(loss.data[0]) - idx += 1 - print('epoch: {}, Train Loss: {:.6f}' - .format(e, train_loss / len(train_data))) -end = time.time() # 计时结束 -print('使用时间: {:.5f} s'.format(end - start)) -# - - -x_axis = np.linspace(0, 5, len(losses1), endpoint=True) -plt.semilogy(x_axis, losses1, label='batch_size=1') -plt.legend(loc='best') - -# 可以看到,loss 在剧烈震荡,因为每次都是只对一个样本点做计算,每一层的梯度都具有很高的随机性,而且需要耗费了大量的时间 - -# + -train_data = DataLoader(train_set, batch_size=64, shuffle=True) -# 使用 Sequential 定义 3 层神经网络 -net = nn.Sequential( - nn.Linear(784, 200), - nn.ReLU(), - nn.Linear(200, 10), -) - -# 开始训练 -losses2 = [] -idx = 0 -start = time.time() # 记时开始 -for e in range(5): - train_loss = 0 - for im, label in train_data: - im = Variable(im) - label = Variable(label) - # 前向传播 - out = net(im) - loss = criterion(out, label) - # 反向传播 - net.zero_grad() - loss.backward() - sgd_update(net.parameters(), 1e-2) - # 记录误差 - train_loss += loss.data[0] - if idx % 30 == 0: - losses2.append(loss.data[0]) - idx += 1 - print('epoch: {}, Train Loss: {:.6f}' - .format(e, train_loss / len(train_data))) -end = time.time() # 计时结束 -print('使用时间: {:.5f} s'.format(end - start)) -# - - -x_axis = np.linspace(0, 5, len(losses2), endpoint=True) -plt.semilogy(x_axis, losses2, label='batch_size=64') -plt.legend(loc='best') - -# 通过上面的结果可以看到 loss 没有 batch 等于 1 震荡那么距离,同时也可以降到一定的程度了,时间上也比之前快了非常多,因为按照 batch 的数据量计算上更快,同时梯度对比于 batch size = 1 的情况也跟接近真实的梯度,所以 batch size 的值越大,梯度也就越稳定,而 batch size 越小,梯度具有越高的随机性,这里 batch size 为 64,可以看到 loss 仍然存在震荡,但这并没有关系,如果 batch size 太大,对于内存的需求就更高,同时也不利于网络跳出局部极小点,所以现在普遍使用基于 batch 的随机梯度下降法,而 batch 的多少基于实际情况进行考虑 - -# 下面我们调高学习率,看看有什么样的结果 - -# + -train_data = DataLoader(train_set, batch_size=64, shuffle=True) -# 使用 Sequential 定义 3 层神经网络 -net = nn.Sequential( - nn.Linear(784, 200), - nn.ReLU(), - nn.Linear(200, 10), -) - -# 开始训练 -losses3 = [] -idx = 0 -start = time.time() # 记时开始 -for e in range(5): - train_loss = 0 - for im, label in train_data: - im = Variable(im) - label = Variable(label) - # 前向传播 - out = net(im) - loss = criterion(out, label) - # 反向传播 - net.zero_grad() - loss.backward() - sgd_update(net.parameters(), 1) # 使用 1.0 的学习率 - # 记录误差 - train_loss += loss.data[0] - if idx % 30 == 0: - losses3.append(loss.data[0]) - idx += 1 - print('epoch: {}, Train Loss: {:.6f}' - .format(e, train_loss / len(train_data))) -end = time.time() # 计时结束 -print('使用时间: {:.5f} s'.format(end - start)) -# - - -x_axis = np.linspace(0, 5, len(losses3), endpoint=True) -plt.semilogy(x_axis, losses3, label='lr = 1') -plt.legend(loc='best') - -# 可以看到,学习率太大会使得损失函数不断回跳,从而无法让损失函数较好降低,所以我们一般都是用一个比较小的学习率 - -# 实际上我们并不用自己造轮子,因为 pytorch 中已经为我们内置了随机梯度下降发,而且之前我们一直在使用,下面我们来使用 pytorch 自带的优化器来实现随机梯度下降 - -# + -train_data = DataLoader(train_set, batch_size=64, shuffle=True) -# 使用 Sequential 定义 3 层神经网络 -net = nn.Sequential( - nn.Linear(784, 200), - nn.ReLU(), - nn.Linear(200, 10), -) - -optimzier = torch.optim.SGD(net.parameters(), 1e-2) -# 开始训练 - -start = time.time() # 记时开始 -for e in range(5): - train_loss = 0 - for im, label in train_data: - im = Variable(im) - label = Variable(label) - # 前向传播 - out = net(im) - loss = criterion(out, label) - # 反向传播 - optimzier.zero_grad() - loss.backward() - optimzier.step() - # 记录误差 - train_loss += loss.data[0] - print('epoch: {}, Train Loss: {:.6f}' - .format(e, train_loss / len(train_data))) -end = time.time() # 计时结束 -print('使用时间: {:.5f} s'.format(end - start)) diff --git a/6_pytorch/2_CNN/basic_conv.ipynb b/6_pytorch/2_CNN/1-basic_conv.ipynb similarity index 100% rename from 6_pytorch/2_CNN/basic_conv.ipynb rename to 6_pytorch/2_CNN/1-basic_conv.ipynb diff --git a/6_pytorch/2_CNN/batch-normalization.ipynb b/6_pytorch/2_CNN/2-batch-normalization.ipynb similarity index 100% rename from 6_pytorch/2_CNN/batch-normalization.ipynb rename to 6_pytorch/2_CNN/2-batch-normalization.ipynb diff --git a/6_pytorch/2_CNN/lr-decay.ipynb b/6_pytorch/2_CNN/3-lr-decay.ipynb similarity index 100% rename from 6_pytorch/2_CNN/lr-decay.ipynb rename to 6_pytorch/2_CNN/3-lr-decay.ipynb diff --git a/6_pytorch/2_CNN/regularization.ipynb b/6_pytorch/2_CNN/4-regularization.ipynb similarity index 100% rename from 6_pytorch/2_CNN/regularization.ipynb rename to 6_pytorch/2_CNN/4-regularization.ipynb diff --git a/6_pytorch/2_CNN/data-augumentation.ipynb b/6_pytorch/2_CNN/5-data-augumentation.ipynb similarity index 100% rename from 6_pytorch/2_CNN/data-augumentation.ipynb rename to 6_pytorch/2_CNN/5-data-augumentation.ipynb diff --git a/6_pytorch/2_CNN/vgg.ipynb b/6_pytorch/2_CNN/6-vgg.ipynb similarity index 100% rename from 6_pytorch/2_CNN/vgg.ipynb rename to 6_pytorch/2_CNN/6-vgg.ipynb diff --git a/6_pytorch/2_CNN/googlenet.ipynb b/6_pytorch/2_CNN/7-googlenet.ipynb similarity index 100% rename from 6_pytorch/2_CNN/googlenet.ipynb rename to 6_pytorch/2_CNN/7-googlenet.ipynb diff --git a/6_pytorch/2_CNN/resnet.ipynb b/6_pytorch/2_CNN/8-resnet.ipynb similarity index 100% rename from 6_pytorch/2_CNN/resnet.ipynb rename to 6_pytorch/2_CNN/8-resnet.ipynb diff --git a/6_pytorch/2_CNN/densenet.ipynb b/6_pytorch/2_CNN/9-densenet.ipynb similarity index 100% rename from 6_pytorch/2_CNN/densenet.ipynb rename to 6_pytorch/2_CNN/9-densenet.ipynb diff --git a/6_pytorch/2_CNN/CNN_Introduction.pptx b/6_pytorch/2_CNN/CNN_Introduction.pptx index 56767e0b7a6e77db6c71852e9bd27e09bb264997..4475cbf24e0b4af904930cf084f120469ca02459 100644 GIT binary patch delta 12076906 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

c)MAX-tkA{F*aLyz0p*yC@^Du%xs%JY(Y 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

m z7!rejo$AX*5}DjDM1J&|OfWXK?gz=(>}#JTH<@(&EKzMfj2)3sKyy zC`qL*VFsUE+%`?MHPYlsE%fH@U6DeMWUY#SO7MDb0S!IWecQR1W