diff --git a/mlp.ipynb b/mlp.ipynb index ec06b70..bb351f3 100644 --- a/mlp.ipynb +++ b/mlp.ipynb @@ -9,12 +9,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'u': {'vector': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], 'count': 55, 'index': 11}, 'i': {'vector': [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0], 'count': 75, 'index': 4}, 't': {'vector': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0], 'count': 64, 'index': 10}, 'd': {'vector': [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'count': 45, 'index': 2}, 'l': {'vector': [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0], 'count': 64, 'index': 5}, 'o': {'vector': [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0], 'count': 39, 'index': 7}, 'c': {'vector': [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'count': 30, 'index': 1}, 'e': {'vector': [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0], 'count': 117, 'index': 3}, 'a': {'vector': [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'count': 36, 'index': 0}, 'n': {'vector': [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0], 'count': 75, 'index': 6}, 'r': {'vector': [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0], 'count': 42, 'index': 8}, 's': {'vector': [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0], 'count': 40, 'index': 9}}\n", + "{'r': {'count': 42, 'vector': [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0], 'index': 8}, 'u': {'count': 55, 'vector': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], 'index': 11}, 'i': {'count': 75, 'vector': [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0], 'index': 4}, 'l': {'count': 64, 'vector': [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0], 'index': 5}, 't': {'count': 64, 'vector': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0], 'index': 10}, 'o': {'count': 39, 'vector': [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0], 'index': 7}, 'd': {'count': 45, 'vector': [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'index': 2}, 'c': {'count': 30, 'vector': [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'index': 1}, 'a': {'count': 36, 'vector': [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'index': 0}, 'e': {'count': 117, 'vector': [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0], 'index': 3}, 's': {'count': 40, 'vector': [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0], 'index': 9}, 'n': {'count': 75, 'vector': [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0], 'index': 6}}\n", "12\n", "1\n", - "number of batches=1\n", - "size of first batch=815,815\n", - "size of last batch=815,815\n", + "number of batches=4\n", + "2\n", + "size of first batch=256,256\n", + "size of last batch=47,47\n", "300 31\n" ] } @@ -39,8 +40,9 @@ "print(len(v))\n", "batch = letters_data.get_batches()\n", "print(len(batch))\n", - "batch = letters_data.get_batches()#min_count=40, mini_batch_size=577)\n", + "batch = letters_data.get_batches(mini_batch_size=256)#min_count=40, mini_batch_size=577)\n", "print(\"number of batches={}\".format(len(batch)))\n", + "print(len(batch[0]))\n", "print(\"size of first batch={},{}\".format(len(batch[0][0]),len(batch[0][1])))\n", "print(\"size of last batch={},{}\".format(len(batch[-1][0]),len(batch[-1][1])))\n", "xsize = len(batch[0][0][0])\n", @@ -71,7 +73,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -79,7 +81,7 @@ "output_type": "stream", "text": [ "ok\n", - "batch-2018-01-20_21:54:09\n" + "batch-2018-01-24_13:37:28\n" ] } ], @@ -95,7 +97,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -117,7 +119,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -185,7 +187,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -238,7 +240,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 5, "metadata": { "scrolled": true }, @@ -268,7 +270,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -289,7 +291,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -370,7 +372,154 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "number of batches=7\n", + "nb train=4, nb test=3\n", + "2\n", + "size of first batch=128,128\n", + "size of last batch=47,47\n" + ] + } + ], + "source": [ + "# BATCHES\n", + "\n", + "from letters import LettersData\n", + "letters_data = LettersData(\"data/\", \"list_expected_data.txt\")\n", + "letters_data.process()\n", + "batches = letters_data.get_batches(mini_batch_size=128)#min_count=40, mini_batch_size=577)\n", + "print(\"number of batches={}\".format(len(batches)))\n", + "lim = int(len(batches) * 70 / 100)\n", + "batch_train = batches[:lim]\n", + "batch_test = batches[lim:]\n", + "print(\"nb train={}, nb test={}\".format(len(batch_train), len(batch_test)))\n", + "print(len(batches[0]))\n", + "print(\"size of first batch={},{}\".format(len(batches[0][0]),len(batches[0][1])))\n", + "print(\"size of last batch={},{}\".format(len(batches[-1][0]),len(batches[-1][1])))\n", + "#xsize = len(batch[0][0][0])\n", + "#ysize = len(batch[0][1][0])\n", + "#print(xsize, ysize)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "tanh factor=0.05773502691896258\n", + "tanh factor=0.023570226039551584\n", + "tanh factor=0.040824829046386304\n", + "tanh factor=0.05773502691896258\n", + "softmax factor=0.01\n", + "Training...\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "learning duration=92.83850836753845(s)\n", + "{'iterations': 100, 'cost_function': 0.0429865491059762}\n", + "nb errors=0/128\n" + ] + } + ], + "source": [ + "# TRAINING MLP WITH BATCHES\n", + "\n", + "import time\n", + "\n", + "# random weights\n", + "mlp.init_random_weights(use_formula=True)\n", + "#mlp.use_regularization(0.1)\n", + "mlp.use_adam()\n", + "\n", + "# Compute output\n", + "#output = mlp.compute_outputs(X.T)\n", + "#hard_output = output_to_hard(output)\n", + "#mlp.set_all_expected_output_examples(Y.T)\n", + "#expected_output = mlp.get_expected_output()\n", + "#print(\"nb errors before training={}/{}\".format(count_errors(hard_output, expected_output), output.shape[1]))\n", + "\n", + "# Proceed learning with gradient descent\n", + "mlp.set_batches(batch_train)\n", + "print(\"Training...\")\n", + "t0 = time.time()\n", + "res = mlp.learning_batches(min_cost=0.005, max_iter=100, plot=True)\n", + "t1 = time.time()\n", + "print(\"learning duration={}(s)\".format(t1-t0))\n", + "print(res)\n", + "\n", + "output = mlp.get_output()\n", + "hard_output = output_to_hard(output)\n", + "expected_output = mlp.get_expected_output()\n", + "print(\"nb errors={}/{}\".format(count_errors(hard_output, expected_output), output.shape[1]))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(array([[0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " ...,\n", + " [0., 0., 0., ..., 0., 0., 0.],\n", + " [0., 1., 0., ..., 0., 1., 0.],\n", + " [0., 0., 0., ..., 0., 0., 0.]]), array([[0, 0, 0, ..., 0, 0, 0],\n", + " [0, 0, 0, ..., 0, 0, 0],\n", + " [0, 0, 0, ..., 0, 0, 0],\n", + " ...,\n", + " [0, 0, 0, ..., 0, 0, 0],\n", + " [0, 0, 0, ..., 0, 0, 0],\n", + " [0, 0, 0, ..., 0, 0, 0]]))" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# FEED NETWORK with inputs,expected outputs\n", + "\n", + "X, Y = batch_test, batch_test\n", + "m = len(batch_test)\n", + "mlp.set_batches(batch_test)\n", + "X, Y = mlp.get_next_batch()\n", + "r = mlp.compute_outputs(X)\n", + "h = output_to_hard(o)\n", + "count_errors(h, Y)\n", + "h, Y" + ] + }, + { + "cell_type": "code", + "execution_count": 23, "metadata": { "scrolled": true }, @@ -384,319 +533,414 @@ " [0 0 0 ... 0 0 0]\n", " ...\n", " [0 0 0 ... 0 0 0]\n", - " [0 0 0 ... 0 0 0]\n", + " [0 1 0 ... 0 1 0]\n", " [0 0 0 ... 0 0 0]]\n", - "815\n", - "11205435\n", - "out=[[1.38390249e-02 1.96756491e-05 7.21641830e-07 ... 1.55135916e-05\n", - " 2.04312023e-02 4.01007342e-01]\n", - " [2.26919945e-03 1.47596120e-06 1.40291113e-06 ... 1.99084043e-05\n", - " 3.37053763e-04 3.57520412e-03]\n", - " [9.96004008e-03 1.06084483e-04 7.61141323e-06 ... 2.39898456e-07\n", - " 6.81609807e-03 1.42383557e-02]\n", + "128\n", + "271808\n", + "out=[[4.81667146e-05 2.51492532e-04 2.56889299e-05 ... 6.60370897e-05\n", + " 2.51525196e-04 9.43324894e-05]\n", + " [4.41886128e-05 1.17905017e-03 3.90737385e-04 ... 2.11062502e-05\n", + " 1.17912692e-03 2.12986116e-05]\n", + " [9.67067790e-04 1.32441114e-03 2.69466055e-05 ... 7.14004847e-04\n", + " 1.32472607e-03 7.09027063e-05]\n", " ...\n", - " [2.18693695e-03 1.06932897e-05 6.26956877e-05 ... 1.73090800e-05\n", - " 1.73771347e-03 9.35053349e-04]\n", - " [1.36068704e-03 8.46870052e-05 1.03742817e-03 ... 1.03530640e-05\n", - " 4.33066815e-05 5.62964616e-05]\n", - " [1.21157208e-02 8.84508840e-06 4.39822882e-05 ... 6.85921168e-05\n", - " 4.30372135e-04 2.13959714e-03]]\n", + " [7.37804103e-05 1.09578011e-04 7.50031685e-05 ... 7.42543885e-05\n", + " 1.09573573e-04 8.71104924e-05]\n", + " [4.70822223e-06 9.41112562e-01 1.36628466e-04 ... 1.04041238e-05\n", + " 9.41116874e-01 4.39763400e-04]\n", + " [6.02335258e-05 1.57699572e-02 1.44736737e-04 ... 3.98461885e-05\n", + " 1.57730226e-02 2.20319215e-04]]\n", "alleq? = False\n", - "eq? = [0.0398354 0.13953203 0.11592406 0.0546004 0.05237799 0.02873091\n", - " 0.0252462 0.03005645 0.2022703 0.06232326 0.17961341 0.22085328\n", - " 0.34397805 0.07515849 0.02781049 0.28329346 0.2645511 0.27388148\n", - " 0.17402787 0.14252466 0.11059087 0.20355302 0.21221428 0.2541548\n", - " 0.21194065 0.13138707 0.04435148 0.0817355 0.0295538 0.15537906\n", - " 0.06733432]\n", + "eq? = [4.50656052e-02 1.67496256e-01 1.45867702e-01 1.20243442e-04\n", + " 4.55609746e-03 9.47595466e-03 1.06862773e-04 1.67961138e-02\n", + " 2.46510997e-01 2.43116554e-03 1.81810939e-01 1.91403397e-01\n", + " 3.45885396e-01 4.46872787e-03 1.06647101e-04 2.49096459e-01\n", + " 2.60941175e-01 2.25570328e-01 1.99436845e-01 1.86424889e-01\n", + " 1.45046509e-01 2.62481722e-01 2.65334997e-01 2.37274401e-01\n", + " 2.11824021e-01 8.57866305e-02 8.35423212e-04 7.89769507e-02\n", + " 1.03024375e-04 1.63612576e-01 2.84081880e-03]\n", "hout=[[0. 0. 0. ... 0. 0. 0.]\n", " [0. 0. 0. ... 0. 0. 0.]\n", " [0. 0. 0. ... 0. 0. 0.]\n", " ...\n", " [0. 0. 0. ... 0. 0. 0.]\n", - " [0. 0. 0. ... 0. 0. 0.]\n", + " [0. 1. 0. ... 0. 1. 0.]\n", " [0. 0. 0. ... 0. 0. 0.]]\n", - "11205435.0\n", + "271808.0\n", "alleq? = False\n", "expout=[[0 0 0 ... 0 0 0]\n", " [0 0 0 ... 0 0 0]\n", " [0 0 0 ... 0 0 0]\n", " ...\n", " [0 0 0 ... 0 0 0]\n", - " [0 0 0 ... 0 0 0]\n", + " [0 1 0 ... 0 1 0]\n", " [0 0 0 ... 0 0 0]]\n", - "11205435\n", + "271808\n", "nb errors=0\n", - "3174807889\n", - "ieq? = [0. 0. 0. 0. 0.03500698 0.03500698\n", - " 0. 0.03500698 0.04947692 0. 0. 0.\n", - " 0. 0. 0.03500698 0. 0.04947692 0.12528563\n", - " 0.04947692 0.10450358 0.13441044 0.09227777 0. 0.\n", - " 0. 0.04947692 0.04947692 0. 0.17243521 0.26900004\n", - " 0.17243521 0.15471804 0.18524763 0.15471804 0. 0.\n", - " 0. 0.06988481 0.06988481 0.03500698 0.23077272 0.33227755\n", - " 0.25913692 0.13873172 0.21603456 0.19994354 0. 0.\n", - " 0. 0.08548546 0.08548546 0.06055933 0.20273266 0.35677049\n", - " 0.30081626 0.12528563 0.2283989 0.22355545 0. 0.\n", - " 0. 0.07808541 0.08548546 0.06055933 0.16560327 0.32524828\n", - " 0.30243843 0.12044556 0.23077272 0.2283989 0. 0.\n", - " 0. 0.10450358 0.10450358 0.09227777 0.17243521 0.33501651\n", - " 0.2975302 0.15843907 0.23771403 0.23077272 0.03500698 0.\n", - " 0. 0.15471804 0.2054766 0.24220001 0.36269241 0.44643696\n", - " 0.43176587 0.35311852 0.31034942 0.2550436 0.03500698 0.\n", - " 0. 0.2550436 0.3493896 0.44200059 0.46657077 0.47876351\n", - " 0.47366731 0.47283065 0.43104698 0.30243843 0.04947692 0.\n", - " 0. 0.33089274 0.45241645 0.49799024 0.49644602 0.4851733\n", - " 0.47154892 0.49499737 0.48577801 0.39244627 0.04947692 0.\n", - " 0.03500698 0.3728608 0.49134325 0.49953872 0.49764548 0.48424149\n", - " 0.45580799 0.48577801 0.49840726 0.43666848 0.08548546 0.\n", - " 0.09227777 0.38449375 0.49840726 0.4994272 0.48607544 0.47725803\n", - " 0.42126472 0.41564859 0.49464139 0.4541303 0.12993396 0.\n", - " 0.11538962 0.39814769 0.49991531 0.49877565 0.46010798 0.47325075\n", - " 0.42588178 0.39437117 0.47687302 0.45635925 0.18214144 0.\n", - " 0.11008809 0.39721261 0.49868811 0.49740037 0.42282358 0.46750882\n", - " 0.42047775 0.37503886 0.46465012 0.45469353 0.16905821 0.\n", - " 0.04947692 0.36841704 0.49963817 0.49998156 0.43032338 0.46465012\n", - " 0.42204665 0.38347043 0.47240698 0.45299178 0.10450358 0.\n", - " 0. 0.31189306 0.49820484 0.49948447 0.49408409 0.48989795\n", - " 0.46513588 0.46216479 0.48964589 0.44705366 0.12528563 0.\n", - " 0. 0.23997064 0.45299178 0.49714303 0.49550807 0.49445874\n", - " 0.47763957 0.47197974 0.45958414 0.40541704 0.15471804 0.\n", - " 0. 0.16905821 0.34685969 0.4445614 0.45905643 0.45580799\n", - " 0.43318966 0.38551046 0.35556157 0.31645026 0.09227777 0.\n", - " 0. 0.14291187 0.21857717 0.27653948 0.3149433 0.3481291\n", - " 0.33771543 0.2354294 0.23997064 0.21857717 0.04947692 0.\n", - " 0. 0.14291187 0.16905821 0.15471804 0.07808541 0.12993396\n", - " 0.12993396 0.03500698 0.12528563 0.12993396 0.03500698 0.\n", - " 0. 0.14291187 0.16905821 0.16206541 0.06055933 0.08548546\n", - " 0.06055933 0.04947692 0.11538962 0.12044556 0.07808541 0.\n", - " 0. 0.13873172 0.1508953 0.13873172 0.06055933 0.03500698\n", - " 0. 0. 0.09227777 0.09858802 0.04947692 0.\n", - " 0. 0.11008809 0.09227777 0.09227777 0. 0.\n", - " 0. 0. 0.06055933 0.07808541 0.03500698 0.\n", - " 0. 0.03500698 0.03500698 0.03500698 0. 0.\n", - " 0. 0. 0.04947692 0.03500698 0. 0.\n", - " 0. 0. 0. 0.03500698 0.03500698 0.03500698\n", - " 0. 0. 0. 0.03500698 0. 0. ]\n", + "76694480\n", + "ieq? = [0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.15128841\n", + " 0. 0.17399264 0.17399264 0.15128841 0. 0.\n", + " 0. 0. 0. 0. 0.15128841 0.26836819\n", + " 0.15128841 0.15128841 0.17399264 0.17399264 0. 0.\n", + " 0. 0. 0. 0. 0.1937437 0.31210913\n", + " 0.25567294 0.0880424 0.1937437 0.17399264 0. 0.\n", + " 0. 0. 0. 0. 0. 0.33937198\n", + " 0.26836819 0.12401959 0.1937437 0.1937437 0. 0.\n", + " 0. 0. 0. 0. 0.12401959 0.33071891\n", + " 0.32164358 0. 0.1937437 0.1937437 0. 0.\n", + " 0. 0. 0. 0. 0. 0.32164358\n", + " 0.28027174 0.0880424 0.1937437 0.1937437 0. 0.\n", + " 0. 0.12401959 0.12401959 0.0880424 0.31210913 0.44572349\n", + " 0.41860714 0.3476343 0.25567294 0.22736925 0. 0.\n", + " 0. 0.17399264 0.33071891 0.44572349 0.453327 0.47981727\n", + " 0.48203821 0.46351241 0.40797411 0.24206146 0. 0.\n", + " 0. 0.33071891 0.44960921 0.49607837 0.49385877 0.48203821\n", + " 0.48203821 0.49255938 0.48203821 0.35553313 0. 0.\n", + " 0. 0.38392695 0.48607313 0.49993896 0.49847179 0.47745817\n", + " 0.44572349 0.48957641 0.49503147 0.42360755 0.12401959 0.\n", + " 0.15128841 0.37033228 0.49607837 0.49993896 0.47981727 0.4695306\n", + " 0.41339864 0.39031237 0.47981727 0.44960921 0.15128841 0.\n", + " 0.15128841 0.39644108 0.49779789 0.49847179 0.46659662 0.47231716\n", + " 0.42360755 0.38392695 0.45688098 0.44166544 0.21137108 0.\n", + " 0. 0.37033228 0.49993896 0.49255938 0.42360755 0.47231716\n", + " 0.42360755 0.35553313 0.4330127 0.44166544 0.21137108 0.\n", + " 0. 0.36309219 0.49945038 0.49945038 0.41339864 0.44572349\n", + " 0.40232479 0.40232479 0.44166544 0.4330127 0.0880424 0.\n", + " 0. 0.25567294 0.49255938 0.49945038 0.49385877 0.48412292\n", + " 0.44572349 0.47981727 0.49385877 0.42840718 0.15128841 0.\n", + " 0. 0.17399264 0.45688098 0.49945038 0.49385877 0.4911323\n", + " 0.47981727 0.48607313 0.46659662 0.37033228 0.12401959 0.\n", + " 0. 0.0880424 0.37033228 0.48203821 0.47495888 0.46351241\n", + " 0.44166544 0.42360755 0.35553313 0.2914806 0. 0.\n", + " 0. 0.0880424 0.25567294 0.32164358 0.33937198 0.37727176\n", + " 0.37727176 0.24206146 0.24206146 0.21137108 0. 0.\n", + " 0. 0.12401959 0.21137108 0.21137108 0. 0.15128841\n", + " 0.15128841 0. 0.15128841 0.15128841 0. 0.\n", + " 0. 0.12401959 0.21137108 0.21137108 0. 0.12401959\n", + " 0.0880424 0. 0.15128841 0.15128841 0.0880424 0.\n", + " 0. 0.1937437 0.21137108 0.21137108 0. 0.0880424\n", + " 0. 0. 0.12401959 0.12401959 0. 0.\n", + " 0. 0.12401959 0.0880424 0.12401959 0. 0.\n", + " 0. 0. 0.12401959 0.12401959 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0. ]\n", "i? = [[0 0 0 ... 0 0 0]\n", " [0 0 0 ... 0 0 0]\n", " [0 0 0 ... 0 0 0]\n", " ...\n", - " [0 0 0 ... 0 1 0]\n", + " [0 0 0 ... 0 0 0]\n", " [0 0 0 ... 0 0 0]\n", " [0 0 0 ... 0 0 0]]\n", - "diff exp= [ 3 17 12 3 4 1 1 1 36 4 30 45 117 5 1 75 64 75\n", - " 39 20 11 42 40 64 55 15 2 6 1 22 4]\n", - "[[-6.60698722e-02 -7.29361896e-02 -2.52010918e-03 ... -1.59524072e-01\n", - " 4.56764256e-02 -6.63448815e-05]\n", - " [ 7.67937124e-03 -5.49511026e-02 1.01345633e-01 ... 4.67231078e-02\n", - " 4.02507169e-02 2.90096748e-02]\n", - " [-1.17670574e-01 -5.12343778e-02 9.50786298e-02 ... 4.10929609e-02\n", - " -7.07103509e-02 4.93241991e-02]\n", + "diff exp= [ 1 4 3 0 0 0 0 0 9 0 5 5 19 0 0 9 10 8 6 5 3 10 10 8\n", + " 7 1 0 1 0 4 0]\n", + "[[-0.00324666 0.0008685 -0.10104286 ... -0.13601123 -0.00671438\n", + " 0.06617922]\n", + " [ 0.01784416 -0.06281528 0.05495157 ... -0.05346315 -0.0261274\n", + " 0.02987064]\n", + " [ 0.02463508 -0.03563505 -0.00925549 ... -0.01917858 0.03525635\n", + " -0.08205339]\n", " ...\n", - " [ 6.85002500e-02 5.00301758e-02 -4.36550511e-02 ... -4.88110939e-02\n", - " -3.40756448e-02 -1.59853943e-03]\n", - " [ 7.41334647e-02 -5.33964212e-02 6.68686008e-03 ... -5.85214246e-03\n", - " -2.00952284e-02 -4.62444240e-02]\n", - " [-7.96763215e-02 -6.29254591e-02 1.72862299e-02 ... -5.76175961e-03\n", - " 4.65056101e-02 9.59061767e-02]]\n", + " [-0.01318291 -0.03899108 -0.03137097 ... 0.07893079 0.0268401\n", + " 0.07872519]\n", + " [-0.04341548 0.04744597 0.03157013 ... 0.05247824 0.00975248\n", + " -0.10081767]\n", + " [-0.09271694 0.04267457 0.11779636 ... -0.03687039 -0.0015042\n", + " -0.04008934]]\n", "float64\n", - "[[ 0.07869079 0.01784195 -0.01661446 ... -0.03781187 -0.033408\n", - " 0.00952081]\n", - " [ 0.02671465 -0.00897285 0.0321768 ... -0.00086714 -0.05703338\n", - " -0.01002881]\n", - " [ 0.01687378 0.00841117 0.01686227 ... -0.04498684 -0.05211184\n", - " 0.05117629]\n", + "[[-0.05701703 -0.04888133 -0.01998078 ... 0.01132182 -0.03501858\n", + " 0.036734 ]\n", + " [ 0.04179174 -0.02082482 -0.01263243 ... -0.0292859 -0.01351609\n", + " -0.09430827]\n", + " [-0.05381584 -0.00071092 -0.04304324 ... 0.01380626 -0.06682077\n", + " -0.00978878]\n", " ...\n", - " [-0.05044929 -0.03539152 -0.01326199 ... -0.00637028 0.07438454\n", - " 0.04007749]\n", - " [ 0.07533858 0.03509777 0.02189683 ... 0.02176267 0.00699071\n", - " 0.0462815 ]\n", - " [ 0.04403078 0.054973 0.00898661 ... 0.0175749 -0.07828776\n", - " -0.07952211]]\n", + " [ 0.00561043 0.02237729 0.0128138 ... -0.00980096 -0.01296052\n", + " 0.02124782]\n", + " [ 0.119067 0.08050831 0.09264226 ... -0.01759468 0.09545502\n", + " 0.03928334]\n", + " [-0.04037504 0.06551944 0.02158193 ... 0.08979575 0.00216517\n", + " -0.00773649]]\n", "float64\n", - "[[ 0.05900678 -0.02829165 0.02863568 ... -0.05847156 0.05456701\n", - " 0.06037877]\n", - " [-0.0091646 -0.0290578 -0.00603066 ... -0.13805689 -0.00517954\n", - " 0.02099795]\n", - " [-0.05663264 -0.00841634 0.0306576 ... 0.05943252 -0.03177942\n", - " 0.0599138 ]\n", + "[[ 0.0429313 -0.02589082 0.01471088 ... -0.09674027 0.08882899\n", + " 0.01273433]\n", + " [-0.02520829 -0.02231071 -0.05452196 ... -0.08612748 0.05594415\n", + " 0.02374242]\n", + " [-0.03289537 -0.08335208 0.13244499 ... 0.06374945 0.01234061\n", + " 0.09038925]\n", " ...\n", - " [-0.0070786 -0.01648721 -0.05444909 ... 0.04625718 0.08137886\n", - " -0.06628168]\n", - " [ 0.06495866 -0.01196902 0.02260175 ... -0.02214369 0.00846185\n", - " 0.02323075]\n", - " [ 0.01837313 -0.01572588 0.06722422 ... 0.05229227 0.08095286\n", - " 0.01142394]]\n", + " [-0.00540673 -0.09696876 0.02903404 ... -0.08140344 0.07986003\n", + " -0.00036132]\n", + " [-0.03795523 -0.0230879 0.00431476 ... 0.07609646 0.15815737\n", + " 0.0505698 ]\n", + " [ 0.00068026 -0.01303427 0.05587063 ... -0.10055906 -0.04867953\n", + " -0.07769197]]\n", "float64\n", - "[[ 0.10696741 0.00240407 -0.15387654 ... 0.05435701 -0.05087933\n", - " -0.06593519]\n", - " [ 0.02772879 -0.08691446 -0.10054021 ... -0.00859098 0.06726323\n", - " -0.08753627]\n", - " [-0.15457361 0.07443451 0.02716356 ... 0.04303552 0.02146266\n", - " -0.03359605]\n", + "[[-0.11539659 -0.13374381 0.018418 ... -0.07976543 -0.16450755\n", + " 0.01566846]\n", + " [-0.09362723 -0.28165539 0.0723356 ... -0.21493733 -0.03201043\n", + " 0.00912683]\n", + " [-0.1257149 -0.00243859 0.15192195 ... 0.13760308 0.01472072\n", + " -0.00892478]\n", " ...\n", - " [ 0.0777019 0.11091846 -0.01744185 ... -0.17505547 -0.19598354\n", - " 0.10278839]\n", - " [-0.12842631 -0.03147932 0.09359574 ... -0.09563449 0.11847634\n", - " -0.31498832]\n", - " [ 0.03896407 0.09883853 0.12169193 ... 0.03419102 0.03419029\n", - " 0.05204358]]\n", + " [-0.01131486 -0.01303426 0.05497164 ... 0.16911199 -0.01565058\n", + " 0.01002137]\n", + " [ 0.04733466 0.06326436 -0.07836351 ... 0.04118668 0.03751298\n", + " 0.09558597]\n", + " [-0.13888119 -0.08472769 0.01332896 ... -0.01221111 -0.10381216\n", + " 0.2222039 ]]\n", "float64\n", - "[[-0.14973576 -0.36260224 0.29551313 -0.1744974 0.46032515 -0.5467562\n", - " -0.2345089 -0.20990169 0.34855824 -0.39262729 0.30583499 0.36635467\n", - " -0.18156976 -0.16424793 -0.1871476 0.23142369 -0.16092891 0.12968164\n", - " -0.31179845 -0.12507432 -0.30221033 -0.35845277 -0.26239196 -0.09717295\n", - " -0.14260611 -0.3136819 -0.28878178 0.38416913 -0.18776273 0.24372651]\n", - " [-0.2909065 -0.36142029 0.30660084 -0.23737996 0.21692402 -0.25688073\n", - " 0.36995612 0.41237566 0.36537192 0.27375295 -0.38260086 -0.2561971\n", - " -0.28135638 -0.2879116 -0.19361758 -0.3820055 -0.22655146 0.31371979\n", - " 0.45159988 -0.29220915 -0.25958387 -0.20126309 -0.28259112 -0.25464497\n", - " -0.3071605 -0.39981542 -0.31049403 0.39120459 -0.22269949 -0.39686082]\n", - " [-0.29804283 0.51078161 -0.49693209 -0.21358372 -0.45666682 -0.22756087\n", - " -0.2488299 -0.26187321 0.23457939 -0.3867514 0.25507427 0.23960302\n", - " -0.22252161 -0.4642595 -0.45212333 0.22189906 -0.36849644 0.2003641\n", - " -0.20083937 -0.20549131 -0.27916177 0.3396443 -0.26774176 -0.18934934\n", - " -0.19298721 0.51072081 -0.47610706 0.33785483 -0.41853297 0.28691688]\n", - " [ 0.16139944 0.08033216 -0.15991085 -0.20264071 -0.33184207 -0.19814382\n", - " -0.25540642 -0.3291699 0.27904376 0.47248443 0.2643735 0.27267801\n", - " -0.18892399 0.14677434 0.24109302 0.29661284 -0.28415144 0.22082215\n", - " -0.23643634 -0.21839491 -0.29166378 0.22677771 -0.21620926 -0.21136137\n", - " -0.21840886 -0.42533404 -0.3948052 -0.18634895 -0.23345746 0.34384318]\n", - " [-0.16801466 -0.3610321 0.33465942 -0.19542548 0.49433682 0.45254308\n", - " -0.24511313 -0.24614422 0.40292968 -0.39106598 0.30167816 0.34893062\n", - " -0.2657769 -0.19051816 -0.23211769 0.22803771 -0.18832064 0.13070543\n", - " -0.35139181 -0.14711688 -0.40850431 -0.28248311 -0.38867826 -0.15283255\n", - " -0.17170132 -0.31522199 -0.30840989 -0.00801928 -0.22187575 0.22605334]\n", - " [-0.15788831 -0.31726688 0.28489775 0.13078638 0.28482511 -0.18656436\n", - " -0.28064558 -0.32494889 0.41348963 0.36462225 0.38432815 -0.22859257\n", - " -0.2084439 -0.20283343 -0.18558134 -0.10852261 -0.17607629 0.17038491\n", - " 0.35482527 -0.17935643 -0.32649831 -0.19273519 -0.27973565 0.21021257\n", - " 0.08335903 -0.19958272 -0.20150297 -0.12860789 -0.22077416 0.33356316]\n", - " [-0.19612063 0.22461924 0.33655626 -0.19102189 0.29797855 -0.14584735\n", - " -0.19382869 0.17771602 0.34604843 0.28777091 0.23219864 -0.20763202\n", - " -0.15613039 -0.28162671 -0.18059611 -0.06259641 -0.19496241 0.2066153\n", - " -0.37733984 -0.21870787 -0.25553274 -0.21646679 -0.2010439 -0.18009247\n", - " -0.21858488 0.30006963 -0.1966044 -0.1112385 -0.20879291 -0.23732936]\n", - " [-0.16860213 -0.27973779 0.26256281 -0.16367003 -0.30087603 -0.36909745\n", - " -0.23508118 -0.24493457 0.62239599 -0.17332464 0.31925183 0.24068091\n", - " 0.31469156 -0.1992687 -0.17144307 0.18867997 -0.24437313 0.16849525\n", - " 0.21051972 -0.14033269 0.52057223 -0.31764664 0.44344947 -0.20943907\n", - " -0.16884015 0.24821052 -0.25854058 0.14178759 0.22374637 -0.33780504]\n", - " [ 0.01162944 0.39151727 -0.38951563 0.40426528 0.31582459 0.4147554\n", - " 0.27518256 -0.37067739 -0.38042659 0.40301207 -0.41786168 -0.33427828\n", - " -0.3316369 0.2517575 0.36514228 -0.28570312 0.33539267 -0.07221412\n", - " -0.34289718 0.12588544 -0.33288507 0.33211894 -0.34461691 -0.3159625\n", - " 0.13109375 -0.28359188 0.34110405 -0.21720696 -0.32097525 0.26717789]\n", - " [-0.18907625 -0.13269443 0.15706347 -0.23163456 0.18153311 0.25113168\n", - " -0.32313219 -0.14777351 -0.66899858 -0.70567618 0.68558827 -0.41329166\n", - " 0.28731179 -0.14803285 -0.12607743 0.2413902 -0.34940802 0.1996484\n", - " 0.37102958 -0.18982035 0.4109629 -0.31449243 0.34593493 0.10017559\n", - " -0.21608782 -0.28283466 -0.35947164 0.22646001 -0.5708301 0.22503122]\n", - " [-0.49633787 0.24755646 -0.24849818 -0.46321928 -0.2285622 0.20436383\n", - " 0.21322967 0.21800012 -0.21195621 -0.18892146 -0.24833 0.21000455\n", - " 0.21271922 0.19367462 0.73144829 0.22554473 0.155681 0.5231307\n", - " 0.57679619 -0.4847006 0.19537191 0.19743044 0.19643974 0.71021497\n", - " -0.56100103 0.20913396 0.20115071 0.20774666 0.17214792 -0.26011097]\n", - " [-0.47822108 -0.24624429 0.25934957 0.28384086 0.25803889 0.24197077\n", - " 0.23801684 0.57934308 -0.23649293 0.54888353 -0.22117489 -0.26750188\n", - " 0.14397689 -0.32372334 -0.31009984 -0.29631008 0.26077659 -0.27513666\n", - " 0.22140603 0.26736221 0.16150441 -0.34411066 0.22992564 0.23812075\n", - " 0.26061517 -0.26216649 0.43677147 -0.28568801 0.15262055 -0.54663688]\n", - " [ 0.40130992 0.31782063 -0.28939589 0.37542767 -0.31314133 0.27798926\n", - " 0.28366932 0.29140502 -0.26929064 -0.27084178 -0.27636876 0.30173772\n", - " 0.23808837 0.25301468 0.28558075 0.27500567 0.24569605 -0.38112444\n", - " 0.2582676 0.39553388 0.2515253 0.2534919 0.28251368 0.27658888\n", - " 0.39496107 0.3119005 0.31660067 0.3208386 0.24768142 -0.30714536]\n", - " [-0.19374993 -0.32405918 0.30316484 -0.22781076 0.40047242 0.200834\n", - " -0.40054595 -0.27052372 -0.48480973 -0.15502854 0.4256241 0.37129144\n", - " 0.24659749 -0.31232531 -0.2146204 0.20585014 0.28344117 0.21218247\n", - " -0.43857195 -0.20867396 0.32040868 0.3918702 0.30044789 -0.30972283\n", - " -0.19067335 -0.42873678 0.44861008 0.19757719 0.38386374 0.31883434]\n", - " [-0.16108962 -0.21204063 0.2154806 -0.16588425 0.30702553 0.23937038\n", - " -0.25072551 -0.21240856 0.4965927 -0.18568141 0.3621928 0.35111818\n", - " 0.27617463 -0.18140273 -0.17903385 0.18157359 -0.29506238 0.17407977\n", - " 0.29295766 -0.17733574 0.47192796 0.15191911 0.4005843 0.05374512\n", - " -0.1803939 0.20520782 -0.31961994 0.16458323 0.28115527 0.32457584]\n", - " [ 0.22545514 0.23253668 -0.23608664 0.43532661 -0.42590264 -0.23341558\n", - " -0.38410003 0.22510745 0.23955163 0.24230564 -0.42159868 -0.40522114\n", - " -0.24730663 0.24255236 0.43225473 -0.26702031 -0.39715061 -0.22991069\n", - " 0.47185584 0.24214498 -0.24769405 -0.37945212 -0.23047201 0.41978539\n", - " 0.24335597 0.25674489 -0.23120743 -0.24970199 -0.38465764 -0.24742587]\n", - " [ 0.30339044 0.22134391 -0.26223625 -0.38968479 0.33274159 -0.22498513\n", - " 0.41813836 0.25265987 0.24241907 0.22582497 -0.31342923 -0.29115738\n", - " -0.18263981 0.26594862 -0.37733999 -0.21963619 -0.28138128 -0.32877688\n", - " -0.40154657 0.30937304 -0.21315979 -0.28265087 -0.20817706 -0.39292128\n", - " 0.3294288 0.27452695 -0.2574682 -0.26575848 -0.25179936 -0.28318954]\n", - " [ 0.28430125 -0.31038767 0.48597196 0.12973805 0.26646567 0.15723147\n", - " 0.16159973 -0.32119413 -0.17341505 -0.26143442 -0.16414317 -0.30828342\n", - " 0.23733006 0.60251712 0.62908505 -0.56649389 0.13190425 -0.13617064\n", - " 0.23352521 0.15445928 0.22054493 0.60944068 0.24706808 0.25442444\n", - " 0.15965767 -0.26063643 0.60511851 -0.29502172 0.24363511 0.31598863]\n", - " [ 0.4529228 -0.19791896 0.29679114 0.22637048 0.18588557 0.1737891\n", - " 0.21521636 -0.35133952 -0.15132406 -0.45543828 -0.15021506 -0.19219297\n", - " 0.212603 -0.46447686 -0.47703305 -0.42880518 0.21752408 -0.21339358\n", - " 0.16685158 0.20605005 0.1645001 -0.47468397 0.19437734 0.21661455\n", - " 0.20844634 -0.19417028 -0.84422966 -0.23352278 0.22411844 0.3344572 ]\n", - " [ 0.11146242 -0.39493168 -0.67277574 0.17735133 0.3494585 0.17972971\n", - " 0.40599276 -0.35692656 -0.1589401 -0.35652741 -0.16712554 -0.36849136\n", - " 0.21606536 0.43154963 0.5119343 0.60784471 0.09590012 -0.11022693\n", - " 0.25334226 0.07441461 0.19911404 0.49190939 0.25674542 0.2726784\n", - " 0.13339811 -0.39977864 -0.61299349 -0.39448018 0.22425161 0.3550595 ]\n", - " [-0.22553476 -0.16400018 0.1575079 -0.2449659 0.17217196 0.36584871\n", - " -0.4151224 -0.27461835 -0.41322192 0.59516902 -0.53687949 -0.32154433\n", - " 0.34781062 -0.18169761 -0.15132119 0.29670622 -0.31433345 0.23847385\n", - " 0.36530179 -0.23715269 0.40418099 -0.21880823 0.38547712 -0.44393407\n", - " -0.26260981 -0.22584222 -0.35088407 0.25887196 -0.35080979 0.29962415]\n", - " [ 0.28603197 0.05233352 -0.25041726 0.36235969 -0.06954592 -0.18473772\n", - " -0.32398336 0.00850745 0.21988989 0.32266026 0.31345786 0.23226471\n", - " 0.38540573 0.24459801 0.31311568 0.39951464 0.40672904 -0.33995168\n", - " -0.3037531 0.32775014 0.36646224 0.39444158 -0.19076159 0.39300212\n", - " 0.32494267 0.20894777 -0.35848763 -0.43250788 0.42496982 -0.15483433]\n", - " [ 0.26032116 0.21490476 -0.2187275 0.32454007 -0.383701 -0.32476076\n", - " 0.46057243 0.39261432 0.34241075 -0.46568251 0.35107534 0.34344324\n", - " -0.26486451 0.20669484 0.27349297 -0.31557323 0.31907863 -0.28654593\n", - " -0.25847679 0.27663853 -0.25348182 0.26465003 -0.24107552 -0.37446216\n", - " 0.28823435 -0.38761821 0.39293774 -0.26869749 -0.37080169 0.37781043]\n", - " [ 0.18080992 0.16806636 -0.18590519 0.27873606 -0.24228139 -0.20587094\n", - " -0.32836251 0.21025955 0.21867134 0.31244126 0.38533201 0.40978836\n", - " -0.60888186 0.18787758 0.2532362 -0.64523072 0.44087418 -0.21402722\n", - " -0.38465587 0.20243888 -0.60011161 0.41998496 -0.21481067 0.36365279\n", - " 0.21338477 0.3132603 -0.34554328 -0.23921918 0.4161459 -0.32291471]\n", - " [ 0.59686249 -0.21883383 0.25633012 0.19360453 0.19705649 0.1565695\n", - " 0.16489885 -0.43934714 -0.15586798 -0.52240484 -0.16463415 -0.22023174\n", - " 0.22325803 -0.56673684 -0.56077888 -0.28153803 0.17081901 -0.18187243\n", - " 0.17070813 0.15183296 0.20848829 -0.57724419 0.17022846 0.20022649\n", - " 0.17764016 -0.19213312 0.95056651 -0.23223579 0.23021395 0.43167911]\n", - " [-0.306572 0.22358668 -0.27095033 -0.30335723 -0.19471365 -0.32106078\n", - " -0.34113945 -0.36026685 0.33023732 -0.32228608 0.2794934 0.15294394\n", - " -0.330652 0.5427807 0.52853827 0.24113868 0.51050713 0.27053061\n", - " -0.22510015 -0.25642324 -0.34907998 0.15456284 -0.34380483 -0.27850277\n", - " -0.28940116 0.41842568 0.4258372 0.34471769 0.4405998 0.34583737]\n", - " [-0.19499827 -0.45418326 0.42284413 0.22245304 -0.3466359 -0.24153188\n", - " -0.2762196 -0.27119201 0.38269962 -0.24990396 0.2468054 0.25950907\n", - " -0.18607866 -0.26311394 0.25815523 0.24043963 -0.31530991 0.1775384\n", - " -0.22630052 -0.17645148 -0.2743691 0.36635652 -0.25065067 -0.16947293\n", - " -0.2039489 -0.37275883 0.60575769 -0.1831683 -0.34769327 0.18876766]\n", - " [-0.20117861 -0.32265223 0.25055853 -0.21697566 0.2439146 -0.34083987\n", - " 0.26171978 -0.36376315 -0.48507186 0.43520325 -0.27295958 -0.37051814\n", - " -0.3221222 -0.22580224 -0.18515532 0.38574065 -0.23645873 0.18874982\n", - " -0.4154596 -0.19441086 -0.36657829 -0.25857743 -0.39170924 -0.14268765\n", - " -0.21293315 -0.23409365 0.55288324 0.26139872 -0.18649861 0.35905453]\n", - " [-0.18787722 0.24159926 0.29715917 -0.1691407 -0.2460775 -0.23715499\n", - " 0.05646658 -0.29819085 -0.50761501 -0.13211355 -0.02878043 0.24280758\n", - " -0.34962047 0.09461028 -0.18775354 0.19026202 -0.32743804 0.20638663\n", - " -0.35985432 -0.19182861 0.51480121 0.18178444 0.47428626 -0.21715798\n", - " -0.18097537 0.22752919 0.26073176 0.15286636 -0.44220962 0.23048613]\n", - " [-0.30393766 0.27911977 -0.32718729 -0.24786572 -0.26105855 0.34264638\n", - " 0.29620545 0.32677102 -0.23566475 -0.17413566 -0.31712578 0.18246681\n", - " 0.27938709 0.30040454 -0.55074715 0.20147917 0.31734742 0.35047477\n", - " -0.58447039 -0.30768762 0.22746008 0.22492509 0.22846304 -0.57914316\n", - " -0.31291396 0.21631235 0.20127076 0.17339569 0.31236439 -0.2819663 ]\n", - " [-0.16563542 -0.44993409 0.32783508 -0.16275312 0.48069993 -0.4562979\n", - " 0.12691223 0.36229825 -0.38510154 -0.25002113 -0.11781159 0.3651783\n", - " 0.3655273 -0.33382818 -0.17143986 0.19221597 -0.39287596 0.17690961\n", - " -0.40940012 -0.17373452 0.38681247 -0.34371589 0.37729264 -0.19076642\n", - " -0.17840069 0.35707524 0.37659455 0.16533107 -0.45989463 -0.3639547 ]]\n", + "[[ 3.31073838e-01 -2.90831185e-01 1.56481122e-01 2.35394629e-01\n", + " -2.98081786e-01 2.52284864e-01 -2.79246678e-01 -1.01401447e-01\n", + " -1.22745157e-01 2.26424752e-01 -1.79473595e-01 -2.95038627e-01\n", + " 2.19523887e-01 -1.75309756e-01 -1.62784087e-01 -2.79850867e-01\n", + " 2.38234381e-01 -3.14241897e-01 -3.16668251e-01 -1.63008160e-01\n", + " 1.20432032e-01 3.72461410e-01 -2.37591705e-01 4.52074729e-01\n", + " -1.66461394e-01 -1.99152610e-01 -1.42377565e-01 2.04058058e-01\n", + " 2.82067765e-01 2.58554245e-01]\n", + " [ 2.52698018e-01 2.87433599e-01 1.88436089e-01 -3.96205116e-01\n", + " -2.95702759e-01 4.27565017e-01 -2.13340610e-01 -3.00880006e-01\n", + " -1.58900107e-01 2.45228968e-01 -2.05841947e-01 -4.52928174e-01\n", + " -2.92169047e-01 3.09552123e-01 3.19962992e-01 -2.56529877e-01\n", + " 4.44352094e-01 2.93848704e-01 2.35424969e-01 2.76498887e-01\n", + " 3.95967451e-01 -2.49619784e-01 -2.41049534e-01 -3.13997709e-01\n", + " -1.56788671e-01 3.22168918e-01 -2.05394348e-01 4.35428304e-01\n", + " -2.47321191e-01 -2.82769459e-01]\n", + " [ 2.86324210e-01 -4.03037185e-01 2.43918016e-01 2.37767384e-01\n", + " -1.97675622e-01 3.61553000e-01 3.79688828e-01 -1.83675480e-01\n", + " -2.04914893e-01 2.11192978e-01 -2.16774033e-01 4.10110235e-01\n", + " 2.80110801e-01 4.21724880e-01 3.55500900e-01 -2.03683189e-01\n", + " 3.56810445e-01 -3.46500725e-01 4.16371508e-01 -3.02084050e-01\n", + " 2.26953524e-01 -4.52471582e-01 -1.75079614e-01 -2.53760799e-01\n", + " -2.55510259e-01 -3.34643649e-01 -2.52671441e-01 3.62833733e-01\n", + " -3.42549121e-01 2.92499654e-01]\n", + " [ 1.37486775e-02 1.84049790e-02 -2.55986981e-02 4.75369487e-02\n", + " -5.95354728e-02 8.24515556e-02 -6.44025438e-03 1.50196265e-01\n", + " 1.17274314e-01 5.11277330e-02 -1.94330250e-02 -1.00652547e-01\n", + " 8.97576804e-02 -2.98501020e-02 6.24068492e-03 -7.25229755e-02\n", + " 1.19540980e-01 -6.29622176e-02 -1.29693101e-01 -5.64237755e-02\n", + " -1.17658871e-02 2.93616277e-02 -6.72849459e-02 -1.61939733e-01\n", + " -1.22740185e-02 -8.81902876e-03 5.64701087e-03 9.40013265e-02\n", + " 1.08857143e-01 9.06266490e-02]\n", + " [-3.76462635e-01 -3.01808931e-01 1.84097419e-01 2.30231530e-01\n", + " -2.95282334e-01 2.53786911e-01 4.18807733e-01 -1.78191665e-01\n", + " -1.75766475e-01 2.74281572e-01 -1.90374793e-01 -2.41255461e-01\n", + " 2.62358321e-01 -2.04074028e-01 -2.68204077e-01 -2.63757534e-01\n", + " 2.76150465e-01 -2.79868217e-01 -2.72229874e-01 -2.25890591e-01\n", + " 1.77371647e-01 -3.70400394e-01 -2.20947217e-01 -3.59557381e-01\n", + " -2.08066816e-01 -1.96889103e-01 -2.20556656e-01 2.17992599e-01\n", + " 2.22598072e-01 2.64308598e-01]\n", + " [ 2.57528690e-01 4.80099653e-01 1.45036661e-01 1.95553190e-01\n", + " -2.37956742e-01 2.78559127e-01 -2.92698481e-01 -1.30691945e-01\n", + " -1.10562117e-01 2.22443862e-01 -1.88771380e-01 -2.50730130e-01\n", + " 2.41842092e-01 -1.18992630e-01 -2.15306549e-01 -2.32690411e-01\n", + " 3.03870038e-01 -3.31166636e-01 -2.84838344e-01 -1.79278576e-01\n", + " 1.16438948e-01 3.75459992e-01 -2.21238298e-01 -3.66886653e-01\n", + " -1.82775927e-01 -2.50444753e-01 -1.59721779e-01 2.48783001e-01\n", + " 2.47778916e-01 2.61708628e-01]\n", + " [ 1.13951365e-02 1.58475075e-02 -1.15151363e-02 4.08183186e-02\n", + " -5.96174239e-02 6.16338754e-02 -1.79089004e-02 9.51512357e-02\n", + " 9.20260967e-02 3.67953087e-02 -2.95153818e-02 -9.69162537e-02\n", + " 7.77662399e-02 -2.23722948e-02 6.14743312e-03 -5.82502315e-02\n", + " 1.35642756e-01 -7.94697856e-02 -1.39481275e-01 -3.71431022e-02\n", + " 1.46617318e-02 2.78784873e-02 -6.94091563e-02 -1.24549992e-01\n", + " -5.35309573e-03 -1.71255893e-02 8.38815487e-03 6.37816248e-02\n", + " 9.47298982e-02 9.58225189e-02]\n", + " [ 3.37494857e-01 -3.45274246e-01 1.30580825e-01 1.93485781e-01\n", + " -2.60408978e-01 2.33906485e-01 -3.39854696e-01 -1.10876242e-01\n", + " -1.26175223e-01 2.32566414e-01 -1.63468333e-01 -2.90749206e-01\n", + " 2.40102770e-01 -1.46408849e-01 -2.11515091e-01 -2.32102974e-01\n", + " 2.38341107e-01 -2.69484020e-01 -3.03696687e-01 -1.80073311e-01\n", + " 1.03336259e-01 3.18335349e-01 -2.22564933e-01 -4.29311253e-01\n", + " -1.58423854e-01 -2.05745570e-01 -1.39232910e-01 2.12183975e-01\n", + " 2.88022580e-01 2.45597607e-01]\n", + " [-4.28211522e-01 3.96601397e-01 2.73538326e-01 -1.90019115e-01\n", + " 1.62110483e-01 3.38314057e-01 -3.52193524e-01 2.49770987e-01\n", + " -2.94599615e-01 -2.09835646e-01 -3.21260377e-01 -2.92855774e-01\n", + " -1.88872361e-01 -2.91027470e-01 -2.15298590e-01 1.84431507e-01\n", + " -5.26989732e-01 2.84521946e-01 -2.81117389e-01 1.81398574e-01\n", + " -5.07099991e-01 -2.42503981e-01 2.01572111e-01 1.71427374e-01\n", + " -3.42784286e-01 3.00312344e-01 -2.67603719e-01 3.12357653e-01\n", + " 2.83163853e-01 -1.76984842e-01]\n", + " [-3.00606197e-01 -2.46607907e-01 2.87822118e-01 -2.46601771e-01\n", + " -3.76447907e-01 2.78637833e-01 -3.05679701e-01 -2.37171249e-01\n", + " -3.79515638e-01 3.98414294e-01 -4.08882339e-01 -2.34390413e-01\n", + " 3.95436027e-01 4.49526055e-01 -2.17142521e-01 3.27447455e-01\n", + " 2.44061867e-01 3.40793157e-01 -2.48425333e-01 -2.89746854e-01\n", + " 2.04614129e-01 3.48275420e-01 3.10158434e-01 1.49680538e-01\n", + " -1.93484447e-01 -2.41024914e-01 -1.53255358e-01 2.00413923e-01\n", + " 2.56169067e-01 -3.24181578e-01]\n", + " [-2.03686239e-01 -2.19147707e-01 4.31992910e-01 -1.94613944e-01\n", + " 1.43384958e-01 2.84637428e-01 3.71891202e-01 2.01574914e-01\n", + " 3.51434400e-01 -1.84348685e-01 3.39251726e-01 3.33755949e-01\n", + " -1.65643141e-01 -2.09935934e-01 -2.09507992e-01 2.04597443e-01\n", + " 3.72039959e-01 -3.10280491e-01 2.91124277e-01 1.90862531e-01\n", + " -3.52388409e-01 -2.86468331e-01 2.92514383e-01 1.58382879e-01\n", + " 3.57378627e-01 -3.01195722e-01 -3.92531043e-01 3.85466910e-01\n", + " -3.46230089e-01 -1.93808503e-01]\n", + " [-2.20726013e-01 -2.41049855e-01 -3.19791999e-01 -2.07543265e-01\n", + " 2.12905978e-01 -3.09711278e-01 -3.29441701e-01 2.89988996e-01\n", + " 3.04706626e-01 3.53816903e-01 2.76352442e-01 -2.57972433e-01\n", + " -1.73556539e-01 2.90939585e-01 3.77845044e-01 -3.52771391e-01\n", + " 2.74818232e-01 2.72234566e-01 3.62435383e-01 2.81557770e-01\n", + " -3.38499043e-01 -3.56816480e-01 1.99212041e-01 2.07775174e-01\n", + " -3.13925336e-01 -3.19067245e-01 3.26242678e-01 2.81018493e-01\n", + " 2.65427244e-01 -1.68126137e-01]\n", + " [-2.36370877e-01 -2.31501738e-01 -5.18905165e-01 -2.27309413e-01\n", + " 2.01236350e-01 3.62137296e-01 2.33335827e-01 2.17177669e-01\n", + " 2.77201491e-01 -2.09146915e-01 2.48756946e-01 3.75700290e-01\n", + " -2.07401448e-01 -2.88067531e-01 -2.31539971e-01 2.21648796e-01\n", + " -5.49359129e-01 -3.79913073e-01 3.86753706e-01 2.21455115e-01\n", + " -2.48504816e-01 -2.64948631e-01 1.99653395e-01 2.05964161e-01\n", + " 2.44750178e-01 -3.52497908e-01 5.26724507e-01 -5.35601298e-01\n", + " -3.80899878e-01 -2.14488840e-01]\n", + " [-3.11736085e-01 -2.42533927e-01 1.34923477e-01 2.25358733e-01\n", + " 3.67592424e-01 2.04093599e-01 -2.78181276e-01 -1.92115500e-01\n", + " -7.85879801e-02 -2.85976635e-01 -2.50496608e-01 -2.64329186e-01\n", + " 3.21509188e-01 -2.52081188e-01 -1.52830018e-01 -3.32257519e-01\n", + " 2.23890834e-01 -3.29123076e-01 -2.98732287e-01 -2.34646033e-01\n", + " 1.48187036e-01 -2.87223197e-01 -2.91843953e-01 2.99346511e-01\n", + " -1.52993472e-01 -1.89473970e-01 -1.34493488e-01 1.48746450e-01\n", + " 2.64153865e-01 2.80413342e-01]\n", + " [ 4.88179725e-03 9.20273417e-03 -9.36123957e-03 5.11232744e-02\n", + " -8.05561971e-02 6.97142333e-02 -1.84310596e-02 1.38796274e-01\n", + " 9.64369137e-02 5.46621640e-02 -1.14057566e-02 -9.20739306e-02\n", + " 7.71566557e-02 -1.92553131e-02 1.12190717e-03 -6.52854171e-02\n", + " 1.32861917e-01 -7.19552527e-02 -1.40984664e-01 -6.41238002e-02\n", + " -3.85702836e-04 2.66076086e-02 -7.16454354e-02 -1.15643223e-01\n", + " -1.65892248e-03 -5.36281836e-03 1.13173283e-02 7.21674023e-02\n", + " 9.50009506e-02 1.03000891e-01]\n", + " [ 1.65553653e-01 2.21525224e-01 2.79681548e-01 1.92540339e-01\n", + " -1.77961759e-01 -2.83873174e-01 -3.80460907e-01 -1.97723008e-01\n", + " -1.82964216e-01 2.11961162e-01 -2.75111987e-01 2.11231155e-01\n", + " 4.37590916e-01 2.41860318e-01 1.99959701e-01 -2.44788077e-01\n", + " -2.44505988e-01 4.12368335e-01 2.55455697e-01 -4.66428218e-01\n", + " 4.40476061e-01 4.80241241e-01 -2.55434312e-01 -1.81827238e-01\n", + " -3.25303117e-01 3.33993731e-01 -2.82593724e-01 -2.85758958e-01\n", + " -2.49177375e-01 4.51348027e-01]\n", + " [ 1.96335571e-01 2.10407563e-01 2.23049570e-01 3.36143849e-01\n", + " -2.07366230e-01 -3.59530516e-01 -2.36055018e-01 -2.10914801e-01\n", + " -1.83008569e-01 2.01401830e-01 -2.26414464e-01 3.71314516e-01\n", + " -4.21095262e-01 2.06934786e-01 2.03657591e-01 -2.05661038e-01\n", + " -3.60442277e-01 2.92886418e-01 2.17045908e-01 4.74743140e-01\n", + " -1.74518023e-01 -4.99075045e-01 -2.07843371e-01 -2.18959412e-01\n", + " -2.33417495e-01 2.75011676e-01 -1.82623820e-01 -3.92526670e-01\n", + " -2.20441281e-01 -4.31630694e-01]\n", + " [-1.41462868e-01 -2.26005453e-01 -2.78204369e-01 -1.54211868e-01\n", + " 1.28073952e-01 -4.48825364e-01 2.65538564e-01 1.65309156e-01\n", + " 6.54308203e-01 -1.63858522e-01 2.21493677e-01 -3.80969956e-01\n", + " -1.58370955e-01 -7.72363899e-01 -1.72151243e-01 1.64815848e-01\n", + " -5.94978829e-01 4.10227568e-01 -3.95347994e-01 1.78093533e-01\n", + " -1.66691828e-01 -5.98664944e-01 1.40903060e-01 1.31350649e-01\n", + " 2.92659050e-01 4.37872134e-01 6.03781964e-01 -3.32984035e-01\n", + " 3.74783373e-01 -1.38282485e-01]\n", + " [-1.68109984e-01 -1.92335053e-01 -2.67319382e-01 -1.55479547e-01\n", + " 1.17168802e-01 -3.22862034e-01 3.24096772e-01 2.64187186e-01\n", + " 5.28300499e-01 -2.07125334e-01 2.11960932e-01 -2.65072299e-01\n", + " -1.73715095e-01 3.97836831e-01 -2.23489889e-01 2.05419638e-01\n", + " 6.15731381e-01 2.91776648e-01 -2.95565845e-01 2.96123736e-01\n", + " -3.05913156e-01 6.58917916e-01 1.38141165e-01 1.35803604e-01\n", + " 3.80457779e-01 4.03781766e-01 5.26008843e-01 -3.71957107e-01\n", + " 2.77244234e-01 -1.71537236e-01]\n", + " [-1.79599838e-01 -2.33892335e-01 4.25923918e-01 -1.98522708e-01\n", + " 2.13657419e-01 4.12960391e-01 4.59188666e-01 -2.44015666e-01\n", + " 3.45134678e-01 -2.43913034e-01 3.32792557e-01 -2.85255304e-01\n", + " -2.14259507e-01 -4.47671386e-01 -1.76203815e-01 2.11755325e-01\n", + " 2.63345912e-01 3.13031399e-01 -2.94015604e-01 -3.58066753e-01\n", + " 2.75278985e-01 3.03384562e-01 1.80391322e-01 1.49805427e-01\n", + " -3.27472510e-01 -2.97143972e-01 -2.28208911e-01 2.60190232e-01\n", + " 2.97406804e-01 1.51845072e-01]\n", + " [-1.46001974e-01 -1.81833461e-01 -4.50674605e-01 -1.50060747e-01\n", + " 2.05656124e-01 -4.67298428e-01 -4.94528860e-01 -2.92398371e-01\n", + " 3.12336231e-01 -3.00545592e-01 2.54720316e-01 -1.95167427e-01\n", + " -2.32513684e-01 4.13330033e-01 -2.20372220e-01 2.31909134e-01\n", + " 2.74832248e-01 2.20219597e-01 -2.79329722e-01 -3.64932245e-01\n", + " 3.20770029e-01 3.42642121e-01 1.36931556e-01 1.41917857e-01\n", + " -3.18781630e-01 -3.15710810e-01 -3.58910991e-01 3.27090188e-01\n", + " 1.93970597e-01 -3.25871844e-01]\n", + " [ 2.13128591e-01 2.19787941e-01 -3.14151273e-01 2.13589088e-01\n", + " -2.27286630e-01 3.49846690e-01 2.78011106e-01 -2.46884546e-01\n", + " 5.33831482e-01 -4.07943577e-01 3.11943194e-01 1.64441550e-01\n", + " 2.74048140e-01 -3.24466631e-01 2.01778011e-01 -2.48724548e-01\n", + " -1.55868398e-01 -2.75890776e-01 1.75936443e-01 -3.94019039e-01\n", + " 5.81633800e-01 2.90061879e-01 -2.33070942e-01 -2.10975249e-01\n", + " 3.24564966e-01 -3.06204798e-01 3.27286567e-01 -1.85132152e-01\n", + " -1.72386831e-01 2.83913364e-01]\n", + " [ 2.56194626e-01 2.55500283e-01 2.49592250e-01 2.62415055e-01\n", + " 2.51203322e-01 -2.47542727e-01 -2.75317522e-01 2.86856302e-01\n", + " -2.33700819e-01 -2.35906858e-01 -2.60527880e-01 2.36773135e-01\n", + " 2.69364501e-01 -3.03752233e-01 2.85557409e-01 2.80245079e-01\n", + " -2.09514083e-01 -2.49236946e-01 2.71257402e-01 2.44061602e-01\n", + " -2.94985267e-01 2.73357360e-01 2.56393714e-01 3.01487101e-01\n", + " 2.46242601e-01 2.67971613e-01 3.19149047e-01 2.75862673e-01\n", + " -2.61153017e-01 2.67054717e-01]\n", + " [ 1.97815681e-01 2.24746473e-01 -3.66567273e-01 1.91673053e-01\n", + " -2.06809593e-01 -4.99392280e-01 3.80462938e-01 -2.11491203e-01\n", + " -3.63372319e-01 4.54551150e-01 3.24127986e-01 1.79489640e-01\n", + " 2.32512021e-01 4.43201898e-01 2.01472148e-01 -2.46240179e-01\n", + " -2.42811920e-01 -3.21029649e-01 2.36777342e-01 -4.90400184e-02\n", + " -2.75059295e-01 2.50384332e-01 -2.57455185e-01 -2.12198966e-01\n", + " 3.72652066e-01 -3.37492165e-01 3.33667886e-01 -2.52758752e-01\n", + " -2.40226520e-01 2.24947584e-01]\n", + " [-1.79950553e-01 -2.48032866e-01 -3.05338913e-01 -1.63118667e-01\n", + " 1.38743834e-01 -3.65867682e-01 3.03050969e-01 1.85977777e-01\n", + " -4.15268096e-01 -1.99111478e-01 2.57593201e-01 -3.03503759e-01\n", + " -1.53425133e-01 4.88485577e-01 -1.84589681e-01 2.11600393e-01\n", + " -6.61998056e-01 3.26338276e-01 -3.30152440e-01 1.95194114e-01\n", + " -1.96779963e-01 -6.03247441e-01 1.61418079e-01 1.30592467e-01\n", + " 3.21755424e-01 3.61556920e-01 -2.76567502e-01 -3.49290118e-01\n", + " 2.97302443e-01 -1.36239217e-01]\n", + " [ 1.89780747e-01 1.98554771e-01 2.95740371e-01 2.02009874e-01\n", + " -2.82147689e-01 -3.26158623e-01 4.09547381e-01 -2.80803170e-01\n", + " -2.13380613e-01 3.15487101e-01 -3.03249622e-01 2.59595751e-01\n", + " 2.31199227e-01 3.08588062e-01 2.66352060e-01 4.46603235e-01\n", + " -1.88468014e-01 -3.76999358e-01 -3.99053727e-01 -2.88850535e-01\n", + " 3.17743300e-01 2.34783128e-01 4.44143116e-01 -2.61451181e-01\n", + " 4.30367482e-01 3.56662582e-01 -3.18853568e-01 -3.06851730e-01\n", + " 4.04867624e-01 2.18832135e-01]\n", + " [ 2.55556481e-01 2.47583764e-01 1.70187817e-01 2.45803912e-01\n", + " 2.19837279e-01 2.81029813e-01 -2.26201867e-01 3.37611006e-01\n", + " -1.60404568e-01 -2.44470225e-01 -2.12517630e-01 -2.12489587e-01\n", + " 2.92420056e-01 -2.64138041e-01 -1.83725398e-01 2.44172637e-01\n", + " -6.32625924e-02 -3.10257473e-01 -3.44315429e-01 -2.85772311e-01\n", + " 1.65319441e-01 3.03529634e-01 2.27075677e-01 -3.85683428e-01\n", + " 2.06940204e-01 1.76680305e-01 -2.21614813e-01 2.13896875e-01\n", + " 3.38069699e-01 2.96403062e-01]\n", + " [ 5.16402376e-01 4.27872889e-01 1.90930320e-01 -1.26989804e-01\n", + " 8.31389863e-02 2.32890607e-01 -2.44107737e-01 3.48080869e-01\n", + " -2.51465702e-01 -2.64260548e-01 -2.79539894e-01 -2.74218855e-01\n", + " -1.81407030e-01 -2.95351644e-01 -2.03722405e-01 2.14071856e-01\n", + " 7.23627406e-01 3.49313567e-01 -3.57485465e-01 1.88262303e-01\n", + " 5.42320039e-01 -3.52495219e-01 3.04240532e-01 1.77799212e-01\n", + " -2.14149303e-01 3.90284232e-01 -1.90312948e-01 1.88841894e-01\n", + " 3.58570981e-01 -1.30959378e-01]\n", + " [ 4.00978905e-03 1.72006614e-02 -1.63959053e-02 5.52320537e-02\n", + " -4.51654126e-02 7.42416086e-02 -1.89240016e-02 1.45234827e-01\n", + " 1.09010019e-01 3.45663759e-02 -2.69616213e-02 -9.90824282e-02\n", + " 6.66673751e-02 -8.75108241e-03 6.75106251e-03 -6.72583590e-02\n", + " 1.21721687e-01 -7.31974446e-02 -1.44208544e-01 -5.53949358e-02\n", + " -5.68551250e-03 3.01241934e-02 -9.00143806e-02 -1.46264483e-01\n", + " -1.44289082e-02 -2.33006392e-02 7.28759549e-03 7.49709164e-02\n", + " 9.83959534e-02 1.14028151e-01]\n", + " [-3.66739804e-01 -4.05306658e-01 2.04204574e-01 -1.88858044e-01\n", + " 1.76861340e-01 2.42516436e-01 -3.31574887e-01 2.32031054e-01\n", + " -3.83822065e-01 -3.30483908e-01 -3.90078001e-01 2.98717232e-01\n", + " -1.70419512e-01 -2.33273104e-01 -1.99870347e-01 3.60408320e-01\n", + " 2.58246314e-01 -2.77204243e-01 2.86147968e-01 1.43067288e-01\n", + " 3.20504496e-01 -2.13066989e-01 -3.07630948e-01 1.52211344e-01\n", + " -4.21533191e-01 -2.91201727e-01 -1.87455495e-01 2.24276142e-01\n", + " -3.24798158e-01 -1.64526693e-01]\n", + " [ 3.87872905e-01 4.56999355e-01 1.89952186e-01 -2.10264670e-01\n", + " 2.58816225e-01 2.56110704e-01 -2.26932760e-01 2.93086384e-01\n", + " -1.92678064e-01 4.01935354e-01 -2.37668613e-01 2.53594566e-01\n", + " -1.86458745e-01 -2.12479060e-01 -2.44815472e-01 -4.59255598e-01\n", + " 2.78115442e-01 -3.18436282e-01 1.26527604e-01 1.44363223e-01\n", + " 2.67196273e-01 -2.08769761e-01 -3.00349958e-01 2.31856483e-01\n", + " -2.15769365e-01 -3.20518376e-01 -1.92530829e-01 2.47185279e-01\n", + " -1.81654271e-01 -2.02605887e-01]]\n", "float64\n", "[1800, 600, 300, 30, 31]\n" ] @@ -740,7 +984,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 9, "metadata": { "scrolled": true }, @@ -749,11 +993,11 @@ "name": "stdout", "output_type": "stream", "text": [ - "weights_0-815_2018-01-20_21:58:11.params\n", + "weights_0-815_2018-01-24_14:25:45.params\n", "[540000, 1080000, 180000, 9000, 930]\n", "14479464\n", "True\n", - "bias_0-815_2018-01-20_21:58:11.params\n", + "bias_0-815_2018-01-24_14:25:45.params\n", "[1800, 600, 300, 30, 31]\n", "22112\n", "True\n" @@ -1997,7 +2241,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -2024,7 +2268,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -2085,19 +2329,26 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "lenX,m 300 1\n", - "image \"data/ext_ln0_car0.pgm\" recognized as 'P'\n", - "lenX,m 300 1\n", - "image \"data/ext_ln0_car1.pgm\" recognized as 'r'\n", - "lenX,m 300 1\n", - "image \"data/ext_ln0_car15.pgm\" recognized as 'e'\n" + "{'size': 300, 'dims': (12, 25), 'version': 'P5', 'max_value': 255}\n" + ] + }, + { + "ename": "NameError", + "evalue": "name 'mlp' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 14\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[0mname\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"data/ext_ln0_car0.pgm\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 16\u001b[0;31m \u001b[0mvec\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_recognized_char\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 17\u001b[0m \u001b[0mletter\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mletters_data\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_letter_of_vector\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvec\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"image \\\"{}\\\" recognized as '{}'\"\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mletter\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36mget_recognized_char\u001b[0;34m(filename)\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mimg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_info\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0midata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mimg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_data_bin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 11\u001b[0;31m \u001b[0moutput\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmlp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompute_outputs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0midata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 12\u001b[0m \u001b[0mh\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0moutput_to_hard\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0moutput\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 13\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mh\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mflatten\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtolist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mNameError\u001b[0m: name 'mlp' is not defined" ] } ], @@ -2110,6 +2361,7 @@ " if img.load(filename) == False:\n", " print(\"ERROR: failed to open '{}'\".format(filename))\n", " image_size = img.get_size()\n", + " print(img.get_info())\n", " idata = img.get_data_bin()\n", " output = mlp.compute_outputs(idata, 1)\n", " h = output_to_hard(output)\n", @@ -2121,7 +2373,7 @@ "print(\"image \\\"{}\\\" recognized as '{}'\".format(name, letter))\n", "\n", "\n", - "name = \"data/ext_ln0_car1.pgm\"\n", + "name = \"data/ext_ln0_car10.pgm\"\n", "vec = get_recognized_char(name)\n", "letter = letters_data.get_letter_of_vector(vec)\n", "print(\"image \\\"{}\\\" recognized as '{}'\".format(name, letter))\n", @@ -2132,6 +2384,24 @@ "print(\"image \\\"{}\\\" recognized as '{}'\".format(name, letter))\n" ] }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from pnmimage import PnmImage\n", + "filename = \"data/ext_ln0_car0.pgm\"\n", + "img = PnmImage()\n", + "if img.load(filename) == False:\n", + " print(\"ERROR: failed to open '{}'\".format(filename))\n", + "img2 = PnmImage()\n", + "w,h = img.get_dims()\n", + "img2.set_image(img.get_data(), w, h, 255, \"P5\")\n", + "img2.resize(12, 25)\n", + "img2.save(\"extl0c0.pgm\")" + ] + }, { "cell_type": "code", "execution_count": 29, diff --git a/mlp.py b/mlp.py index a2a7d56..a829a8d 100644 --- a/mlp.py +++ b/mlp.py @@ -149,6 +149,10 @@ class MultiLayerPerceptron(object): assert(len(self._g) == len(self._W)) assert(len(self._g) == len(self._b)) assert(len(self._g) == len(self._n)) + self._bacthes_x = [] + self._bacthes_y = [] + self._current_batch = 0 + self._nb_batches = 0 def init_random_weights(self, use_formula=False, w_rand_factor=1): """Initialize randomly weights using a factor or using some formula @@ -274,6 +278,29 @@ class MultiLayerPerceptron(object): self.set_all_input_examples(X, m) self.set_all_expected_output_examples(Y, m) + def set_batches(self, batches): + """Set the batch for training. dimensions are nb_minibatches, exemples (in/out->2), minibatch lengths + """ + self._batch_x = [] + self._batch_y = [] + self._batch_m = [] + for b in batches: + self._batch_x.append(np.array(b[0]).T) + self._batch_y.append(np.array(b[1]).T) + self._batch_m.append(len(b[0])) + self._current_batch = 0 + self._nb_batches = len(batches) + + def get_next_batch(self): + """Get the current mini-bacth and update to next the current. If reaches the end then go back to first. + """ + X = self._batch_x[self._current_batch] + Y = self._batch_y[self._current_batch] + self._current_batch += 1 + if self._current_batch >= self._nb_batches: + self._current_batch = 0 + return X, Y + def prepare(self, X=None, m=None, force=False): """Prepare network for propagation""" if X is not None: @@ -370,7 +397,7 @@ class MultiLayerPerceptron(object): J += self._lambda_regul/(2*m) * wnorms return J - def back_propagation(self, get_cost_function=False): + def back_propagation(self): """Back propagation""" L = self._L m = self._m @@ -454,6 +481,45 @@ class MultiLayerPerceptron(object): mp.show() return {"iterations": nb_iter, "cost_function": J} + def minimize_cost_batches(self, min_cost, max_iter=100000, alpha=None, plot=False): + """Propagate forward then backward in loop while minimizing the cost function. + + :param min_cost: cost function value to reach in order to stop algo. + :param max_iter: maximum number of iterations to reach min cost befor stoping algo. (Default 100000). + :param alpha: learning rate, if None use the instance alpha value. Default None. + :param plot: if True will plot the graph cost function depending on iteration + + """ + nb_iter = 0 + if alpha is None: + alpha = self._alpha + if plot: + y=[] + x=[] + for i in range(max_iter): + nb_iter = i + 1 + tot_j = 0 + for t in range(self._nb_batches): + X, Y = self.get_next_batch() + self.set_all_training_examples(X, Y, self._batch_m[t]) + self.prepare() + # forward propagation + self.propagate() + # compute cost function + J = self.compute_cost_function() + # back propagation + self.back_propagation() + tot_j += J / self._nb_batches + if plot: + y.append(tot_j) + x.append(nb_iter) + #if tot_j <= min_cost: + # break + if mp and plot: + mp.plot(x,y) + mp.show() + return {"iterations": nb_iter, "cost_function": tot_j} + def learning(self, X, Y, m, min_cost=0.05, max_iter=100000, alpha=None, plot=False): """Tune parameters in order to learn examples by propagate and backpropagate. @@ -470,6 +536,19 @@ class MultiLayerPerceptron(object): res = self.minimize_cost(min_cost, max_iter, alpha, plot) return res + def learning_batches(self, min_cost=0.05, max_iter=100000, alpha=None, plot=False): + """Tune parameters in order to learn examples by propagate and backpropagate. + + :param X: the inputs training examples + :param Y: the expected outputs training examples + :param m: the number of examples + :param min_cost: cost function value to reach in order to stop algo. Default 0.0.5 + :param max_iter: maximum number of iterations to reach min cost befor stoping algo. (Default 100000). + :param alpha: learning rate, if None use the instance alpha value. Default None. + + """ + res = self.minimize_cost_batches(min_cost, max_iter, alpha, plot) + return res def get_output(self): return self._A[self._L]