diff --git a/mlp.ipynb b/mlp.ipynb index 2406825..c6779d1 100644 --- a/mlp.ipynb +++ b/mlp.ipynb @@ -9,7 +9,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'l': {'count': 64, 'vector': [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'index': 0}, 'u': {'count': 55, 'vector': [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0], 'index': 7}, 'o': {'count': 39, 'vector': [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0], 'index': 8}, 'e': {'count': 117, 'vector': [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0], 'index': 9}, 't': {'count': 64, 'vector': [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'index': 1}, 'n': {'count': 75, 'vector': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0], 'index': 10}, 's': {'count': 40, 'vector': [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0], 'index': 3}, 'a': {'count': 36, 'vector': [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0], 'index': 4}, 'd': {'count': 45, 'vector': [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0], 'index': 5}, 'c': {'count': 30, 'vector': [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0], 'index': 6}, 'i': {'count': 75, 'vector': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], 'index': 11}, 'r': {'count': 42, 'vector': [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'index': 2}}\n", + "{'d': {'index': 2, 'count': 45, 'vector': [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, 'i': {'index': 4, 'count': 75, 'vector': [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]}, 'a': {'index': 0, 'count': 36, 'vector': [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, 'c': {'index': 1, 'count': 30, 'vector': [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}, 'r': {'index': 8, 'count': 42, 'vector': [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0]}, 'n': {'index': 6, 'count': 75, 'vector': [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0]}, 't': {'index': 10, 'count': 64, 'vector': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0]}, 'o': {'index': 7, 'count': 39, 'vector': [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]}, 'e': {'index': 3, 'count': 117, 'vector': [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0]}, 's': {'index': 9, 'count': 40, 'vector': [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0]}, 'l': {'index': 5, 'count': 64, 'vector': [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0]}, 'u': {'index': 11, 'count': 55, 'vector': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]}}\n", "12\n", "1\n", "number of batches=1\n", @@ -52,6 +52,68 @@ "cell_type": "code", "execution_count": 2, "metadata": {}, + "outputs": [], + "source": [ + "# BATCH LOAD AND SAVE FUNCTIONS\n", + "\n", + "def save_batch(filename):\n", + " with open(filename, \"w\") as f:\n", + " f.write(str(batch))\n", + " print(\"ok\")\n", + "\n", + "def load_batch(filename):\n", + " batch = None\n", + " with open(\"batch\") as f:\n", + " sbatch = f.read()\n", + " batch = eval(sbatch, {\"__builtins__\":None})\n", + " return batch\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ok\n" + ] + } + ], + "source": [ + "# SAVE BATCH\n", + "\n", + "save_batch(\"batch\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "300 31\n" + ] + } + ], + "source": [ + "# LOAD BATCH\n", + "\n", + "batch = load_batch(\"batch\")\n", + "xsize = len(batch[0][0][0])\n", + "ysize = len(batch[0][1][0])\n", + "print(xsize, ysize)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -61,10 +123,12 @@ " [1 3 5 7 8]]\n", "[[0 0 0 0 1]\n", " [1 1 1 1 0]]\n", + "35\n", "[[11 2 13 4]\n", " [ 5 6 7 8]]\n", "[[1 0 1 0]\n", " [0 1 0 1]]\n", + "18\n", "1\n" ] } @@ -94,22 +158,29 @@ " return nb_err\n", " \n", "\n", - "\n", + "def range_weighted_sum(vec):\n", + " rng = np.arange(1, vec.size+1, 1).reshape(vec.shape)\n", + " return np.sum(vec * rng)\n", + " \n", + " \n", "a = np.array([[0, 1], [2, 3], [4, 5], [6, 7], [9, 8]]).T\n", "print(a)\n", - "print(output_to_hard(a))\n", + "ah = output_to_hard(a)\n", + "print(ah)\n", + "print(range_weighted_sum(ah))\n", "a = np.array([[11,2,13,4],[5,6,7,8]])\n", "print(a)\n", "b = np.array([[1, 0, 1, 0], [1, 1, 0, 1]])\n", "h = output_to_hard(a)\n", "print(h)\n", + "print(range_weighted_sum(h))\n", "\n", "print(count_errors(h, b))\n" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -162,7 +233,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -232,7 +303,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 8, "metadata": { "scrolled": true }, @@ -241,7 +312,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]\n" + "[0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n" ] } ], @@ -251,7 +322,6 @@ "from mlp import MultiLayerPerceptron\n", "import numpy as np\n", "\n", - "X, Y = np.array(batch[0][0]), np.array(batch[0][1])\n", "xsize = len(batch[0][0][0])\n", "ysize = len(batch[0][1][0])\n", "print(batch[0][1][0])\n", @@ -263,7 +333,39 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "815\n" + ] + } + ], + "source": [ + "# PREPARE INPUTS\n", + "\n", + "X, Y = np.array(batch[0][0]), np.array(batch[0][1])\n", + "m = len(batch[0][0])\n", + "print(m)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# FEED NETWORK with inputs,expected outputs\n", + "\n", + "mlp.set_all_training_examples(X.T, Y.T, m)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -275,17 +377,16 @@ "tanh factor=0.040824829046386304\n", "tanh factor=0.05773502691896258\n", "softmax factor=0.01\n", - "(300, 815) 300 815\n", - "nb errors before training=774/815\n", - "Training...\n", - "(300, 815) 300 815\n" + "lenX,m 300 815\n", + "nb errors before training=808/815\n", + "Training...\n" ] }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -295,9 +396,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "learning duration=423.7619242668152(s)\n", - "{'iterations': 400, 'cost_function': 0.03647720713386014}\n", - "nb errors=0/815\n" + "learning duration=423.0116012096405(s)\n", + "{'iterations': 400, 'cost_function': 0.07465448444289242}\n", + "nb errors=1/815\n" ] } ], @@ -305,6 +406,8 @@ "# TRAINING MLP\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", @@ -332,7 +435,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 12, "metadata": { "scrolled": true }, @@ -343,47 +446,52 @@ "text": [ "[[0 0 0 ... 0 0 0]\n", " [0 0 0 ... 0 0 0]\n", - " [0 0 0 ... 0 1 0]\n", + " [0 0 0 ... 0 0 0]\n", " ...\n", - " [0 0 0 ... 0 0 1]\n", + " [0 0 0 ... 0 0 0]\n", " [0 0 0 ... 0 0 0]\n", " [0 0 0 ... 0 0 0]]\n", - "out=[[4.02037550e-05 5.08508797e-04 1.06952737e-04 ... 6.90627241e-04\n", - " 4.48964139e-05 2.14162585e-04]\n", - " [1.84800747e-03 9.71943093e-06 8.52629012e-05 ... 1.29846509e-05\n", - " 4.41800847e-03 3.40338342e-04]\n", - " [1.08228023e-02 2.15103553e-04 1.59061695e-05 ... 1.48215408e-06\n", - " 9.09058825e-01 2.00836526e-03]\n", + "815\n", + "11205435\n", + "out=[[7.02156302e-03 2.33280598e-05 4.02268624e-08 ... 1.30178221e-05\n", + " 1.63821129e-02 1.21589216e-02]\n", + " [1.68391781e-03 3.09986375e-07 4.26591269e-07 ... 9.55882496e-05\n", + " 5.12839707e-04 2.55024708e-03]\n", + " [1.47725468e-02 8.30785492e-04 7.21927595e-06 ... 3.47815949e-08\n", + " 1.19174745e-03 8.22096419e-02]\n", " ...\n", - " [3.18261532e-03 5.26193930e-05 5.05545438e-08 ... 4.32711136e-05\n", - " 7.19238954e-03 8.67241619e-01]\n", - " [6.34245842e-04 4.93213135e-05 4.57927769e-07 ... 3.76821169e-04\n", - " 6.03246442e-04 2.92431724e-02]\n", - " [1.31052791e-02 8.18982449e-06 5.47497733e-07 ... 8.46367980e-05\n", - " 2.17122828e-03 2.62691643e-02]]\n", + " [3.92805062e-03 1.97200169e-06 1.02163734e-04 ... 6.69744040e-05\n", + " 4.96492855e-04 1.50799104e-04]\n", + " [1.67386876e-04 9.89408390e-06 1.05090024e-03 ... 1.02952984e-04\n", + " 7.46969275e-06 4.33721488e-05]\n", + " [3.01240797e-02 2.29844924e-06 5.52163749e-05 ... 6.88642825e-06\n", + " 6.63783082e-05 1.94845737e-03]]\n", "alleq? = False\n", - "eq? = [0.25924556 0.08267856 0.04282241 0.25607265 0.20887564 0.1516461\n", - " 0.21388612 0.19943628 0.22536132 0.18298195 0.13134766 0.05186903\n", - " 0.11161251 0.06383863 0.02833336 0.14028731 0.23607068 0.19713953\n", - " 0.34331537 0.15790335 0.28469948 0.02592643 0.06598417 0.02731072\n", - " 0.11712871 0.07352249 0.05255094 0.27716012 0.06096794 0.02520463\n", - " 0.02432388]\n", + "eq? = [0.05040805 0.13959513 0.11492665 0.05502723 0.06011746 0.02361683\n", + " 0.02586794 0.02769004 0.2025706 0.06500607 0.18406011 0.22181191\n", + " 0.34456376 0.07416278 0.028787 0.28131057 0.26352134 0.24755618\n", + " 0.14341575 0.14964145 0.11307199 0.21138317 0.21132063 0.26183176\n", + " 0.20867916 0.13169467 0.04338615 0.08219188 0.02569916 0.15934616\n", + " 0.06531444]\n", "hout=[[0. 0. 0. ... 0. 0. 0.]\n", " [0. 0. 0. ... 0. 0. 0.]\n", - " [0. 0. 0. ... 0. 1. 0.]\n", + " [0. 0. 0. ... 0. 0. 0.]\n", " ...\n", - " [0. 0. 0. ... 0. 0. 1.]\n", + " [0. 0. 0. ... 0. 0. 0.]\n", " [0. 0. 0. ... 0. 0. 0.]\n", " [0. 0. 0. ... 0. 0. 0.]]\n", + "11203805.0\n", "alleq? = False\n", "expout=[[0 0 0 ... 0 0 0]\n", " [0 0 0 ... 0 0 0]\n", - " [0 0 0 ... 0 1 0]\n", + " [0 0 0 ... 0 0 0]\n", " ...\n", - " [0 0 0 ... 0 0 1]\n", + " [0 0 0 ... 0 0 0]\n", " [0 0 0 ... 0 0 0]\n", " [0 0 0 ... 0 0 0]]\n", - "nb errors=0\n", + "11205435\n", + "nb errors=1\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", @@ -441,219 +549,219 @@ " [0 0 0 ... 0 1 0]\n", " [0 0 0 ... 0 0 0]\n", " [0 0 0 ... 0 0 0]]\n", - "diff exp= [ 64 6 2 64 42 20 40 36 45 30 15 3 11 4 1 17 55 39\n", - " 117 22 75 1 4 1 12 5 3 75 4 1 1]\n", - "[[ 0.02305652 0.02293969 -0.03351205 ... -0.01382011 -0.06856867\n", - " -0.08543151]\n", - " [ 0.04801012 0.03075537 0.10830808 ... -0.03133071 0.09976655\n", - " -0.03126336]\n", - " [-0.03682391 0.04921497 -0.02348153 ... 0.02364989 -0.05083313\n", - " -0.02020903]\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", + "[[ 0.0557544 0.07220544 0.02348561 ... 0.10377472 0.07024534\n", + " -0.03906525]\n", + " [-0.06879682 0.01771189 0.07511974 ... -0.08158879 0.04889255\n", + " -0.03149567]\n", + " [-0.03905324 0.02414413 0.02660072 ... 0.02757606 0.02100658\n", + " -0.01965769]\n", " ...\n", - " [-0.08702357 0.01646373 -0.01348482 ... -0.04948279 0.04419087\n", - " 0.02029533]\n", - " [ 0.00269033 0.08650693 -0.03824462 ... 0.05285797 -0.12694204\n", - " 0.04784096]\n", - " [ 0.02857453 0.02707221 0.05326686 ... 0.04546911 0.01493789\n", - " -0.00314553]]\n", + " [-0.04725369 -0.06673883 0.01933836 ... -0.02371734 0.06508109\n", + " -0.03886366]\n", + " [ 0.10340191 0.07321227 -0.00748062 ... 0.06231394 0.01620147\n", + " -0.0616713 ]\n", + " [-0.08271943 0.04697974 0.00823985 ... -0.05828773 -0.10284097\n", + " -0.01427887]]\n", "float64\n", - "[[-0.04763941 -0.00165213 -0.01472557 ... -0.03758796 0.05618212\n", - " 0.03976971]\n", - " [ 0.01264144 0.04645618 -0.06771761 ... -0.02748338 -0.04455201\n", - " 0.01696473]\n", - " [ 0.04950068 -0.01349692 -0.00343407 ... 0.00799625 -0.0109285\n", - " -0.08815256]\n", + "[[ 0.02213613 0.05731779 -0.01394594 ... 0.04772608 0.07225857\n", + " -0.0825427 ]\n", + " [ 0.03485324 0.00096309 -0.05849745 ... -0.02192778 0.02390578\n", + " 0.0275471 ]\n", + " [ 0.00336947 -0.04794582 -0.02038197 ... -0.00901655 0.02860445\n", + " -0.0435919 ]\n", " ...\n", - " [ 0.07878267 0.09401743 0.00861482 ... -0.02046249 -0.0309148\n", - " 0.1041147 ]\n", - " [-0.05079743 -0.06212101 -0.01354801 ... -0.03225145 0.00792118\n", - " 0.00541506]\n", - " [ 0.05560252 0.02426592 0.05679859 ... 0.0695036 0.07687002\n", - " 0.01283602]]\n", + " [-0.0257934 0.02804016 -0.06647186 ... -0.01146406 -0.03654793\n", + " 0.01019006]\n", + " [ 0.04151595 -0.0675045 -0.03321654 ... -0.02684758 -0.01795175\n", + " 0.03171039]\n", + " [ 0.00528835 0.04428263 0.00381019 ... 0.00282927 0.07898217\n", + " -0.0762144 ]]\n", "float64\n", - "[[-0.00030529 -0.0361909 0.04603198 ... 0.03268144 0.0026181\n", - " -0.0118466 ]\n", - " [-0.03146446 -0.12144629 0.08608142 ... 0.02176837 0.02422811\n", - " -0.04096614]\n", - " [-0.08811906 0.06622404 0.06665839 ... -0.0455521 0.03309829\n", - " 0.0377115 ]\n", + "[[-0.02997247 0.03455656 -0.07417923 ... -0.02829024 0.05436532\n", + " 0.05134025]\n", + " [-0.07875419 0.00393465 -0.08026576 ... -0.05465974 0.0324817\n", + " -0.02375458]\n", + " [-0.07305269 0.02395509 -0.11152735 ... -0.12659137 0.06807575\n", + " 0.01484116]\n", " ...\n", - " [-0.02061757 -0.01438613 0.05677501 ... 0.05061476 0.07287069\n", - " -0.02118244]\n", - " [ 0.00687921 -0.01981501 0.03788708 ... -0.00217768 0.02177478\n", - " 0.02345711]\n", - " [-0.09522429 -0.01083687 0.06087016 ... -0.05490665 -0.03358236\n", - " 0.00356812]]\n", + " [ 0.08643974 0.02929352 0.01158213 ... -0.01526343 -0.07215164\n", + " 0.03576821]\n", + " [ 0.01417914 0.05976536 -0.03049588 ... 0.03925342 -0.01863501\n", + " -0.04170468]\n", + " [ 0.06499799 0.01864715 -0.00152425 ... -0.0446093 0.01481864\n", + " -0.04618011]]\n", "float64\n", - "[[ 0.04328632 0.07644075 0.09869383 ... 0.19851855 0.01478\n", - " 0.14905889]\n", - " [-0.05642917 -0.05404862 -0.06469322 ... -0.00635012 -0.19701379\n", - " -0.06841576]\n", - " [ 0.00636632 0.01305872 -0.12682967 ... 0.06187919 -0.07034849\n", - " 0.03826143]\n", + "[[-0.05889484 0.18344976 -0.00160981 ... -0.03903363 -0.12195829\n", + " -0.01015448]\n", + " [-0.10341429 0.0963354 -0.03478289 ... -0.08986487 0.10298888\n", + " -0.06136903]\n", + " [-0.01390351 0.01830357 -0.0745976 ... -0.07265028 -0.06033243\n", + " -0.05752233]\n", " ...\n", - " [-0.09759004 -0.18498106 -0.15652528 ... -0.0929882 -0.12015744\n", - " -0.01661448]\n", - " [ 0.05301149 -0.02907717 -0.02538045 ... -0.00192035 0.02613385\n", - " 0.00176775]\n", - " [ 0.10932519 -0.00240596 0.00231574 ... 0.10465175 0.0068048\n", - " 0.0504715 ]]\n", + " [ 0.11936787 0.05431646 -0.00324428 ... -0.1010773 0.11150053\n", + " 0.01251737]\n", + " [-0.12802571 -0.0775965 0.05992476 ... 0.02712887 -0.18085427\n", + " 0.05829372]\n", + " [-0.29162374 -0.06629717 -0.1275772 ... 0.04846268 -0.09815413\n", + " -0.01593007]]\n", "float64\n", - "[[-0.26661675 -0.33475613 0.25169095 -0.23979593 -0.25573377 -0.28279077\n", - " 0.24550993 -0.27517093 -0.54225535 0.27183204 -0.24790071 0.28287373\n", - " 0.33993862 0.23877079 0.27832352 0.25268152 0.64180487 0.25351048\n", - " 0.28172176 0.56860375 -0.26909117 -0.24965687 -0.23389013 0.27700967\n", - " -0.27672752 0.28511057 -0.26719832 0.25944955 0.31718183 -0.30236453]\n", - " [ 0.23536534 0.30346623 0.20889132 -0.13749706 -0.17006025 0.21797273\n", - " 0.37147517 0.29188791 -0.45867567 -0.4636067 0.64421705 -0.28863301\n", - " 0.37725925 0.36766676 -0.29502239 0.08953751 0.12172058 0.32130248\n", - " -0.25148257 0.24643991 0.35788749 -0.24920433 0.2669185 -0.28577811\n", - " 0.02278615 -0.24940888 -0.38750059 0.26110786 0.45482116 0.26669534]\n", - " [ 0.26761025 0.32433825 0.26573278 0.20356029 -0.18798144 0.1702255\n", - " 0.29732748 0.20153523 0.27718297 0.40892731 -0.32554252 -0.42447637\n", - " -0.26373563 0.39053396 -0.20396828 -0.15953264 -0.36653093 0.31518382\n", - " 0.22428294 0.02948406 0.23800481 -0.12238356 0.28367631 -0.25068397\n", - " 0.39813079 -0.44806355 -0.22529034 0.3070436 -0.22226594 0.18002938]\n", - " [-0.59636033 0.53165526 0.16274869 -0.15581274 -0.14946619 -0.25953322\n", - " -0.51531926 -0.27735399 0.2989642 0.25331334 -0.20490546 0.25818591\n", - " -0.50786022 0.20110598 0.27069973 0.15370255 -0.30141322 0.21016553\n", - " 0.59767823 -0.29116806 -0.30799375 -0.23530574 -0.23245621 0.2585436\n", - " -0.26052371 0.25351432 -0.22301427 0.15908994 -0.53939878 -0.63200095]\n", - " [ 0.44600831 0.36097192 0.23196562 0.03866603 -0.17302864 -0.46606347\n", - " -0.37333023 -0.45813085 0.33021662 0.20048982 -0.16647372 0.23996453\n", - " -0.27675388 0.17226022 0.46009675 -0.05707947 -0.33876081 0.17587329\n", - " -0.66375267 -0.30662045 -0.51753567 -0.35359333 -0.38554654 0.3834056\n", - " 0.10024047 0.2086028 -0.17674566 0.20433233 -0.38065609 0.62466834]\n", - " [ 0.24842297 -0.43997291 -0.31568677 0.30434566 0.3044142 0.2808598\n", - " -0.30616696 0.26789 0.36908001 -0.2538584 0.28294327 -0.26312765\n", - " 0.42155835 -0.19959789 -0.27608983 -0.26587238 -0.35510557 -0.27532414\n", - " 0.3764235 0.33298472 -0.37754012 -0.33564813 0.34356159 -0.31965206\n", - " 0.26813394 -0.29656116 0.24633555 -0.29229119 -0.30758983 0.25297636]\n", - " [-0.39391137 0.3071116 0.1943953 -0.18615705 -0.15914057 0.27853483\n", - " 0.35533001 -0.30813345 0.28735887 -0.33366438 -0.34391004 -0.36193433\n", - " 0.33880336 0.31697195 0.28851173 0.19693592 0.37560428 0.32076379\n", - " -0.32907209 -0.33761618 0.34084053 0.24361242 -0.38110249 -0.23872732\n", - " -0.18380165 -0.34521278 -0.33202874 0.20701825 -0.35492459 -0.39306011]\n", - " [-0.55508621 0.35094235 0.27390069 -0.23545737 -0.10523511 -0.31626668\n", - " 0.5451543 -0.2808552 0.32418033 -0.34015512 0.35537982 -0.28371645\n", - " 0.12244093 0.52874849 0.25866114 0.2985482 0.21841646 -0.35985561\n", - " -0.31639398 0.4892776 -0.27965369 -0.20857042 0.35427257 0.30168692\n", - " -0.17240272 -0.26981791 0.32291616 0.27376268 0.52354234 -0.27859132]\n", - " [-0.32528617 -0.2306217 -0.228802 0.22769427 0.24016266 0.31113102\n", - " 0.25772921 -0.30892682 -0.24678659 -0.26818158 0.23218286 0.37412029\n", - " -0.35055473 -0.21908901 0.34230927 -0.22098833 -0.31415721 -0.23080234\n", - " -0.3930135 -0.26045666 0.31564521 0.25293518 -0.25705148 -0.25842516\n", - " -0.4277395 0.34727063 0.22553411 -0.21224969 -0.35978748 -0.34985677]\n", - " [ 0.219036 0.23576068 0.24037668 -0.28088248 -0.25268238 0.44017473\n", - " -0.2631877 0.48047743 0.18553771 -0.18777 0.43586063 -0.1203525\n", - " 0.51477578 -0.29907554 -0.46960862 0.29677797 0.30413073 -0.21856424\n", - " -0.23511509 0.52010828 -0.56315361 -0.06385018 0.19419758 0.58932329\n", - " 0.42038804 -0.12185963 0.22420158 0.25278791 -0.27210783 0.47273354]\n", - " [-0.61252017 0.26192269 0.2583952 -0.33193471 -0.19148981 0.33502401\n", - " -0.33496845 0.3648333 0.26189805 0.27301391 -0.16099261 0.35965489\n", - " -0.23895926 0.18098753 -0.37474276 0.33438294 -0.24510553 0.16323861\n", - " 0.42442909 -0.30139904 0.34577826 0.43412559 -0.48278841 -0.38688411\n", - " 0.43005768 0.29620178 -0.15258105 0.30871695 -0.26212799 0.33201557]\n", - " [ 0.39066352 0.31514518 0.2693526 0.28731202 0.19138925 0.30299599\n", - " -0.42321519 0.30640452 0.2500535 0.3870631 -0.25553159 -0.19394255\n", - " -0.21028908 0.46391695 -0.29639266 -0.15464765 -0.33739153 0.28181818\n", - " -0.25206537 -0.37269926 0.32474228 -0.21823463 0.50788424 0.10809733\n", - " -0.05938183 0.59170611 -0.21706299 0.38687258 -0.21003181 0.19243934]\n", - " [ 0.45628005 -0.25535308 -0.13195611 0.11154747 0.14452578 0.23717866\n", - " 0.31765238 0.37861915 -0.24239067 -0.33346229 0.37052949 -0.49909505\n", - " -0.32023941 -0.18762546 -0.38661406 -0.13262811 -0.26710965 -0.35865279\n", - " 0.41986982 -0.42371822 0.34086574 0.24403678 -0.44045896 -0.14584137\n", - " 0.3088187 0.44069881 0.30228363 -0.13617625 -0.3554111 0.37120509]\n", - " [ 0.31365779 -0.52845603 -0.19895585 0.23079585 0.14531661 0.16221983\n", - " -0.53573894 0.16973809 -0.21214912 0.40344078 -0.35686645 0.37339895\n", - " -0.21543863 -0.58178064 -0.16040415 -0.19966528 -0.2876322 0.35519567\n", - " 0.26585703 0.2263244 0.21085954 0.2127049 0.48725088 -0.04464219\n", - " 0.20774711 0.38451325 0.57141418 -0.14961197 0.50832232 0.15716981]\n", - " [ 0.23066426 -0.30145481 0.27774773 -0.1949846 0.303881 0.19482688\n", - " 0.13107381 0.20734645 -0.34004606 0.37645782 -0.31099161 0.20661565\n", - " 0.22786179 0.26129499 -0.20240107 0.11179206 0.18749353 0.24547457\n", - " 0.28610874 0.23401658 -0.03803122 -0.11188187 0.29037043 -0.11761771\n", - " 0.17359209 -0.27012635 -0.15870356 0.35849309 0.31912791 0.17906936]\n", - " [-0.46923708 -0.31308723 -0.31481452 -0.29848095 0.30470674 0.24376235\n", - " 0.3390804 0.25172163 -0.23628945 0.32334863 -0.24999901 0.29477302\n", - " -0.27622886 0.27583306 -0.2495961 0.35376225 0.39676881 0.27949258\n", - " -0.41814104 0.23662502 0.26618927 0.27910841 0.3276634 -0.25938232\n", - " -0.39585024 0.31894588 -0.2247501 -0.33102591 0.33907859 0.25943143]\n", - " [-0.33598474 -0.23832022 -0.23829328 0.24450015 0.33160297 -0.22019185\n", - " 0.22949347 -0.29152638 -0.34563826 -0.35426861 0.21063305 0.16696448\n", - " 0.26226235 -0.20188032 0.2635945 -0.20388118 0.696193 -0.22170149\n", - " 0.36542165 -0.23988149 -0.33838634 0.36407277 -0.23036535 0.23724529\n", - " 0.34125791 -0.27859117 0.21566506 -0.22544563 0.29990249 -0.25922566]\n", - " [-0.3755945 -0.18468908 -0.2182871 0.22091099 0.29692213 -0.25361233\n", - " 0.25379274 -0.28119924 -0.31125513 -0.32724514 0.20662859 -0.7061422\n", - " 0.24217927 -0.1993671 0.28630322 -0.20502555 -0.25511037 -0.19172981\n", - " 0.36662153 -0.17119277 -0.38584302 0.30094607 -0.24214335 -0.76760327\n", - " 0.33860166 -0.32832625 0.1809174 -0.20715865 0.33157709 -0.3178759 ]\n", - " [ 0.33411392 0.28628486 0.26020686 -0.31378264 -0.22048408 -0.36116222\n", - " -0.35686759 -0.34872565 0.22727281 -0.30250504 0.27538527 -0.21921758\n", - " 0.26463514 -0.34026353 0.35782859 0.31393073 0.27410219 -0.281235\n", - " -0.26831821 -0.44885147 -0.27768128 -0.22252483 0.32437478 0.26979624\n", - " -0.27674854 -0.23638212 0.23905072 0.29116432 -0.36318752 -0.38509016]\n", - " [ 0.19732609 0.17415543 0.27282625 -0.1905837 -0.31770151 0.26227231\n", - " -0.23337136 0.34340711 0.35468988 -0.27359753 -0.28132788 -0.10771679\n", - " -0.4101709 -0.44900978 -0.30864236 0.20687853 0.31027483 -0.38647763\n", - " -0.15292827 0.32932223 0.50021521 -0.43949874 0.16679617 -0.38165196\n", - " -0.65229224 -0.16533649 0.40206865 0.27349145 -0.22878409 0.30960993]\n", - " [ 0.35906321 -0.30334327 -0.33198606 0.30382513 -0.31545458 -0.24142824\n", - " 0.32102492 -0.25067842 0.3694385 0.39097077 0.23748562 -0.27799469\n", - " 0.23874338 -0.2477173 0.23446657 -0.30561318 0.26288317 -0.25145426\n", - " -0.34653194 -0.21957817 -0.24966533 -0.38513688 -0.28764939 0.24885022\n", - " -0.38047819 -0.25218104 0.23709594 -0.32068517 0.32325251 -0.23572268]\n", - " [ 0.23781636 0.29217735 0.2221326 -0.12295707 -0.1374592 0.14050786\n", - " -0.2957996 0.17072151 -0.41064113 0.35795103 -0.31550668 -0.26497124\n", - " -0.20422 0.36691842 -0.18489811 0.0821428 0.16757931 0.341784\n", - " -0.24393865 0.28076971 0.21502099 0.290013 0.25077286 -0.13920853\n", - " -0.0553221 -0.32148458 -0.22498506 0.30959181 -0.16903841 0.15236558]\n", - " [ 0.22590593 0.36566691 -0.43803325 -0.38172901 0.39693787 0.09488915\n", - " -0.26766898 0.15080448 -0.4282305 -0.3927285 -0.45558347 -0.28973147\n", - " -0.20051489 0.56080358 -0.16660533 0.27897826 0.21102247 -0.41549784\n", - " -0.2480252 0.19254936 0.20076074 0.40212361 0.18458823 -0.12066758\n", - " -0.18823525 -0.28516433 0.37153645 -0.53475068 -0.17687488 0.13645203]\n", - " [ 0.22587481 0.41119348 0.29966247 -0.28069321 0.27909173 0.13085309\n", - " -0.25962779 0.14423216 -0.26916317 0.43996305 -0.34385715 -0.2440039\n", - " -0.15957965 -0.48434893 -0.15524718 -0.28840517 -0.23116174 0.30499023\n", - " -0.34017802 0.22299843 0.15826137 -0.0471504 0.26062928 -0.17003021\n", - " 0.24123208 0.31623545 -0.21179547 -0.36960734 -0.19236906 0.12116717]\n", - " [ 0.29267405 -0.46307658 -0.26140196 0.30840625 0.21871059 0.17841694\n", - " -0.37561449 0.19564138 -0.25546204 -0.57664571 -0.32197102 0.37035968\n", - " -0.23869812 0.44512566 -0.18294697 -0.31500587 0.44560461 0.34846942\n", - " 0.33595403 0.24003343 0.23321453 0.26143089 0.35960999 -0.18978366\n", - " 0.27230482 -0.40506961 -0.37718233 -0.27904052 -0.48146427 0.18875964]\n", - " [ 0.18757207 0.51536702 -0.24231049 0.36058019 0.21717877 0.12590132\n", - " -0.37192051 0.18017705 -0.47796893 -0.2137554 0.57451222 -0.3322461\n", - " -0.35066032 -0.35347024 -0.19533099 -0.29249364 -0.38559993 -0.23104395\n", - " -0.50279073 0.32304773 0.30880326 0.39275572 0.31758752 -0.08895652\n", - " 0.29257102 -0.45120595 0.16078146 -0.21415294 -0.11087665 0.17040108]\n", - " [ 0.24501452 0.60935679 -0.38965032 0.36037246 0.20441744 0.12660225\n", - " -0.37207631 0.1260695 -0.27583202 0.47608574 -0.24940724 0.35076945\n", - " -0.13359544 -0.35144142 -0.14647741 -0.23499387 -0.27199649 0.26877448\n", - " 0.32313719 0.24280165 0.1633481 0.28002247 0.35680835 -0.19634178\n", - " 0.20125108 0.44155202 -0.36673123 -0.32185995 -0.55551401 0.10013354]\n", - " [-0.29043057 -0.49822868 0.21597193 -0.21522345 -0.19393021 -0.21601265\n", - " 0.52767176 -0.19734699 0.65292233 0.24530525 -0.24519727 0.26005615\n", - " 0.5642461 0.23200642 0.1872245 0.23230685 -0.54119063 0.23765979\n", - " 0.31207876 -0.61435555 -0.24794739 -0.23732405 -0.2172678 0.22868972\n", - " -0.16346381 0.25891986 -0.24584954 0.2262622 0.48595131 -0.30613616]\n", - " [ 0.46815077 -0.31736307 -0.18354228 0.34292725 0.16635105 0.2362213\n", - " 0.23563269 0.14251043 -0.18996582 0.34505396 -0.23527867 0.32307019\n", - " -0.30479124 0.63289602 -0.14569812 -0.30650306 -0.39796638 0.21066002\n", - " 0.26418874 0.21933391 0.27093329 0.18354317 -0.21619154 -0.30377309\n", - " 0.24729231 0.36062704 -0.32858673 -0.23356886 0.42085673 0.13642199]\n", - " [-0.15977917 -0.23006301 -0.2032081 0.3063376 0.2101001 -0.17370098\n", - " 0.1140742 0.18633836 -0.212433 0.38476478 -0.31981912 0.19812091\n", - " 0.22124376 0.42616477 -0.17268427 -0.26041786 -0.28628337 0.28125111\n", - " 0.17662016 0.21488182 -0.13453314 0.2087169 -0.09454391 0.21008353\n", - " 0.23483259 0.2479335 -0.18808295 -0.25604238 0.27778913 0.15142774]\n", - " [-0.11044268 -0.21664398 -0.18789835 0.25546007 0.17046535 0.16994671\n", - " 0.17269294 0.16433049 -0.20659818 0.42955727 -0.40025325 -0.4746978\n", - " -0.19573033 -0.59071572 -0.16475015 -0.19410971 -0.23514992 0.36392051\n", - " 0.18695141 0.21864881 0.20568798 0.1988923 -0.15267848 -0.14833362\n", - " 0.19650132 0.25322446 -0.25838275 -0.16914734 0.36335526 0.14649388]]\n", + "[[-0.1325509 -0.28917484 -0.36452295 0.38937275 0.29855446 -0.56633955\n", + " -0.11894985 0.14615452 0.27506117 -0.24378192 -0.34014836 0.21207197\n", + " 0.25185663 0.2990967 0.20847993 0.12416778 0.30845196 0.52906747\n", + " -0.25591803 0.0950176 0.20374602 0.12380838 -0.41130144 0.51340886\n", + " -0.22932788 0.25614323 0.40494047 0.29963032 0.09064212 -0.22466064]\n", + " [-0.21842741 0.43676121 0.32452456 0.27560908 0.28688555 -0.36684637\n", + " -0.2768973 0.29701715 0.19682916 -0.31462011 0.38411373 0.33629757\n", + " 0.34275558 0.23991198 0.26962312 0.20933339 0.21741257 0.33292256\n", + " -0.26847848 0.27164927 0.20145696 0.28183788 -0.36570778 -0.36743662\n", + " 0.29275853 -0.3609941 0.31134782 0.30701609 0.27148187 -0.35127274]\n", + " [-0.18599914 -0.22932647 -0.31723792 0.20418819 0.28729868 0.32326105\n", + " -0.26978205 0.28940955 0.23779453 -0.28113315 -0.28252582 -0.33966319\n", + " -0.34871357 0.18614191 0.17825152 0.20967203 0.28518052 0.25728927\n", + " -0.29057523 0.21341496 0.29856243 0.2924751 0.28642851 -0.34079255\n", + " -0.33091028 0.34753619 0.38126717 -0.77839147 0.26838924 0.77949332]\n", + " [-0.40169393 -0.25607432 -0.26595841 0.29851479 -0.14951521 -0.36084095\n", + " -0.18139971 0.20430822 -0.21556439 -0.1608901 -0.247382 -0.1748354\n", + " -0.39732983 -0.31562482 0.45752789 0.18159422 -0.21784561 0.36183266\n", + " 0.12945519 0.17901193 -0.27784385 0.17413807 -0.50380271 0.27528009\n", + " -0.18252525 0.19188617 -0.45737423 0.42686217 0.2288345 -0.29587747]\n", + " [-0.15284004 -0.2026549 -0.27157136 0.17058932 0.22224184 0.39031447\n", + " -0.14797518 0.18888431 0.19669651 -0.17162832 -0.27117957 -0.31872442\n", + " -0.41845489 0.15855717 0.15640793 0.12740839 0.22793032 0.39229163\n", + " -0.20033951 0.14076785 0.18689386 0.16807512 0.54858314 -0.48847065\n", + " -0.25785232 0.25003725 0.52842041 0.57522003 0.24027416 -0.76779422]\n", + " [-0.16269435 -0.22101611 -0.26564475 0.25660618 -0.11680178 0.4066733\n", + " -0.17336099 0.19325702 0.25785189 0.07929265 -0.25670364 0.08402639\n", + " 0.22129468 0.20311439 0.19174751 0.17662273 0.26511539 0.34131359\n", + " 0.09364041 0.12279871 0.21911012 0.17608278 -0.44638682 0.40532443\n", + " -0.19844155 0.20304209 0.26645852 0.30339491 0.14043021 -0.32977136]\n", + " [-0.20638367 -0.2956799 0.28066711 0.1954509 0.18261799 0.27356401\n", + " -0.16210314 -0.00223359 0.17245733 -0.18338077 0.31941986 -0.23080695\n", + " -0.29152289 0.12281143 0.25914849 0.19904965 0.18737266 0.45747444\n", + " -0.17952803 0.27794814 0.15737723 0.16461571 0.21821248 -0.27856394\n", + " 0.11016427 -0.10571796 -0.62591474 0.28720669 0.33389292 0.2035094 ]\n", + " [-0.22050631 -0.25286749 -0.26953045 0.37834351 0.13994768 0.28652657\n", + " -0.12953209 0.17627146 0.22070618 -0.15044046 -0.3156661 -0.1907288\n", + " -0.23970326 0.18682206 0.31507868 0.1599644 0.19687159 -0.49983208\n", + " -0.15579676 0.31519764 0.13486501 0.14867391 -0.39377148 -0.4115842\n", + " -0.19440296 0.22168248 -0.60043367 0.20596054 -0.36041086 -0.30412567]\n", + " [ 0.23725364 0.232269 0.3358541 0.38533614 -0.27655159 -0.31937577\n", + " 0.38835809 -0.1527393 -0.28846214 -0.38725845 -0.37205894 0.38767994\n", + " -0.33814773 -0.28432981 -0.19543037 -0.22426076 -0.29944027 0.36233396\n", + " 0.23096656 -0.26667835 0.31057796 -0.15387669 0.3711605 -0.37204284\n", + " 0.27964392 -0.34422825 -0.34702616 0.32679397 -0.25323086 0.38148361]\n", + " [-0.28136464 -0.35197033 0.58572854 -0.49150689 0.16590307 -0.36151608\n", + " -0.123372 0.13832011 0.23829353 -0.21289359 -0.46981036 -0.43507413\n", + " 0.3731331 0.37657815 0.36952183 0.19363351 0.27531143 -0.52124736\n", + " -0.17088236 0.29686848 0.22096809 0.1355081 -0.25947609 0.36644829\n", + " -0.18458954 0.21819228 0.4086827 0.17063448 0.34251301 -0.17429822]\n", + " [ 0.25133848 -0.41098215 -0.3520982 -0.26423149 0.46178095 0.27089767\n", + " 0.44654513 -0.14077847 -0.37100797 -0.46246192 -0.49946467 -0.2432107\n", + " -0.20472625 0.44892511 -0.24948815 -0.24926501 0.4704408 -0.27195505\n", + " 0.46524209 -0.25134345 -0.3945018 -0.19142922 0.1962772 -0.25094776\n", + " 0.24729043 -0.28370583 -0.25098298 -0.26314313 -0.27684739 0.20037508]\n", + " [ 0.22865932 0.19923317 0.23638424 0.47632851 -0.33085159 -0.22782283\n", + " -0.42024901 -0.29747022 -0.20939235 0.37385286 0.22563263 0.28725024\n", + " 0.32464 -0.16933172 -0.18395516 -0.21693742 -0.24693684 -0.20685558\n", + " 0.3211959 -0.1804937 0.35336637 -0.35274561 -0.26961425 0.26087096\n", + " -0.50318762 0.40675928 -0.51164734 0.22169163 -0.17326055 -0.24861885]\n", + " [ 0.26072773 0.35485058 -0.33020539 -0.25595515 -0.36449747 0.34852049\n", + " 0.27430986 -0.23271388 -0.27391331 0.38567377 0.38143339 -0.32685676\n", + " -0.3199825 -0.33443088 -0.25600089 -0.2393313 -0.29401318 -0.30889824\n", + " 0.26025367 -0.29960242 -0.32428516 -0.22722387 0.31788572 -0.33900581\n", + " 0.25162114 -0.29115866 -0.32001207 -0.34629479 -0.27660776 0.31193061]\n", + " [-0.4945423 -0.42688381 -0.46157494 -0.44988147 0.13610896 -0.29941681\n", + " -0.1435885 0.15323543 0.41112111 -0.13356885 -0.47942275 -0.20212103\n", + " -0.30397655 0.41348186 -0.38727232 0.35118387 0.2062873 -0.34593166\n", + " -0.16423655 -0.4128686 0.14939665 0.14140491 -0.2463531 0.38166041\n", + " -0.22295011 0.22316516 -0.3911026 0.1492317 -0.38251338 -0.24881655]\n", + " [ 0.0854394 -0.27936426 -0.33077924 -0.38280048 0.18901215 0.1918798\n", + " -0.15310969 0.17027026 0.24017082 -0.17158513 0.2176656 -0.24800393\n", + " 0.20056674 -0.26115848 0.34003346 0.20774728 0.23383834 -0.48759314\n", + " -0.16416862 0.26474999 -0.11615717 0.15502662 -0.29113322 0.30504138\n", + " -0.1641698 0.17626062 0.32548999 0.20128478 0.29200888 -0.21065557]\n", + " [-0.23417311 -0.43011248 -0.43503175 0.24771656 -0.22188664 0.2154642\n", + " 0.22312176 -0.19816269 0.40298213 0.23152692 -0.40826669 0.22499916\n", + " 0.26404724 0.24929604 0.24188434 0.4093906 -0.46271672 0.21524827\n", + " 0.21762978 0.20482595 -0.4793256 -0.19928453 0.19714477 -0.44794345\n", + " 0.4694556 -0.47386103 0.21473289 -0.20325124 0.21493616 0.18831664]\n", + " [-0.24592325 0.48325534 0.4563129 0.23178082 -0.2905243 0.25907037\n", + " 0.29588913 -0.26355106 0.26029627 0.30125561 0.44199938 0.24682005\n", + " 0.24248588 0.24735151 0.24330372 0.2615582 0.42166943 0.23235929\n", + " 0.29327792 0.24493469 0.41436112 -0.2525025 0.28464491 -0.25585653\n", + " 0.25204777 -0.27377021 0.24823772 -0.28345512 0.25196669 0.23852596]\n", + " [ 0.16955011 0.19852533 0.32076844 -0.40255553 -0.18841045 -0.29581985\n", + " 0.47200894 -0.19519046 -0.17735968 0.26149577 0.24164748 0.34646626\n", + " 0.3807342 -0.17854462 -0.15490903 -0.17423235 -0.20228916 -0.23093513\n", + " 0.18501136 -0.20705726 -0.78586764 -0.18452845 -0.35735279 0.3409857\n", + " 0.41402353 -0.39248486 -0.92594813 0.31864015 -0.18814035 -0.31942308]\n", + " [ 0.18873441 0.1548334 0.3385235 -0.33670861 -0.12917905 -0.26797894\n", + " 0.38428232 -0.14734577 -0.1826554 0.22119324 0.25349943 0.30391684\n", + " 0.33417976 -0.19354773 -0.16805905 -0.17731272 -0.1597804 -0.26231867\n", + " 0.1529347 -0.23942497 -1.05310839 -0.16989469 -0.31248883 0.29809725\n", + " 0.31710832 -0.41393381 0.8750729 0.29088307 -0.25207511 -0.29290745]\n", + " [ 0.27147662 0.25194653 0.2404362 -0.32551328 0.2731765 -0.1966141\n", + " -0.21464236 0.27830366 -0.29866638 -0.29772267 0.26356289 -0.30726081\n", + " -0.30189467 -0.28571272 -0.13966994 -0.31059602 0.29542614 -0.18564245\n", + " -0.2864951 -0.25291384 0.2105983 0.28079009 -0.20804756 0.2453756\n", + " -0.28497174 0.29380434 -0.26076532 0.19480014 -0.17437401 -0.2507283 ]\n", + " [-0.43546416 0.28610252 0.24563272 -0.38279164 0.30680311 -0.16174682\n", + " -0.24578522 0.31396347 0.40718273 0.30109553 0.3008191 0.32269498\n", + " 0.33090804 -0.32015576 -0.30590253 0.37653498 -0.39990787 -0.30551113\n", + " -0.31316886 0.35599666 0.2221606 0.30053462 -0.16817282 0.22245397\n", + " -0.29883457 0.2866909 0.37658469 0.15045594 -0.34202289 -0.16345502]\n", + " [ 0.58174524 -0.38036293 -0.12371625 -0.58953115 -0.03496946 0.42960706\n", + " 0.07981041 -0.01678514 -0.42752442 0.09707686 -0.20415672 -0.39930325\n", + " -0.57077582 -0.5732624 0.44166947 -0.49831284 -0.10388246 0.22528448\n", + " 0.03922221 0.21675925 -0.09118511 -0.04640922 0.08514536 0.41655103\n", + " -0.5388268 0.35444164 0.21959447 -0.14831794 0.24770064 0.1404669 ]\n", + " [ 0.34344785 0.52470703 -0.30207387 -0.34692644 -0.10710187 -0.46747203\n", + " 0.16852558 -0.12194306 -0.19728183 0.26989604 -0.31405313 0.52842723\n", + " -0.34971979 -0.30597677 -0.46436916 -0.23031576 -0.16409086 0.32400693\n", + " 0.07448135 0.34848751 -0.32521744 -0.09965054 0.30140678 0.33832832\n", + " 0.46210998 0.33877623 0.33647071 -0.33722428 0.37402961 0.29210687]\n", + " [-0.40026696 -0.2571476 -0.22715913 0.4523929 -0.17567459 0.27815996\n", + " 0.2660151 -0.19499637 -0.48344326 0.22926542 -0.23046939 0.37959823\n", + " 0.46723975 0.43109145 0.21965306 -0.48484388 -0.24350426 0.18304369\n", + " 0.21867198 0.18302082 -0.24423417 -0.22257808 0.19293941 0.43795414\n", + " -0.42368013 0.40634573 0.18557437 -0.20223412 0.19123416 0.23628946]\n", + " [ 0.20067388 0.17972366 0.258392 -0.43565131 -0.1881831 -0.25979871\n", + " 0.50992188 -0.19674711 -0.20716478 0.27721717 0.2574644 0.2520596\n", + " 0.32144983 -0.18317972 -0.18698139 -0.19556815 -0.2039489 -0.24379815\n", + " 0.21205838 -0.22347751 0.7151945 -0.21571999 -0.28661461 0.26133561\n", + " 0.42070747 -0.44814001 0.61711587 0.2398771 -0.22085111 -0.28450324]\n", + " [-0.25621537 -0.20588322 -0.21241789 0.27019802 -0.29045806 -0.38320329\n", + " -0.34345049 0.32419838 -0.3866418 -0.46000132 -0.18722989 0.40503982\n", + " 0.39830478 -0.41405026 0.22916122 0.32123524 -0.33529907 0.19281364\n", + " -0.40046807 0.16507402 -0.41475995 0.33622089 0.48843724 0.24777033\n", + " -0.22635939 0.19653097 0.30235507 -0.49346781 0.16237926 -0.35108631]\n", + " [ 0.32426821 -0.29325158 -0.31253514 0.33169679 0.2648384 -0.25218521\n", + " -0.15778054 0.1917039 -0.15036747 -0.17484011 -0.32225221 -0.16028381\n", + " -0.34795778 -0.30004198 -0.33959329 0.23771047 -0.20829783 0.46750362\n", + " -0.27478765 0.29938001 0.2750411 0.15034207 -0.32573619 0.26711827\n", + " -0.16234707 0.16172314 -0.40146416 0.25074182 0.34594557 -0.2294527 ]\n", + " [-0.39086492 0.33791729 0.25414414 0.32317143 0.21256975 -0.4470921\n", + " -0.21674408 0.29532214 0.26004134 -0.13979308 -0.52392183 -0.26257366\n", + " -0.23330853 0.28028351 -0.39352121 0.34194571 0.25478363 0.53539054\n", + " -0.20687121 -0.30287403 0.11174146 0.23049415 0.46617705 -0.23231521\n", + " 0.16600536 -0.10823017 -0.31983309 0.28450134 -0.32340862 0.34792134]\n", + " [ 0.15968989 0.04539796 0.13797866 -0.33090176 0.1551261 -0.27926428\n", + " -0.14101174 0.21062505 0.31322432 -0.1640927 0.21693746 -0.17905015\n", + " -0.22241877 0.00181916 -0.14322096 0.31862468 0.18874978 -0.28229745\n", + " -0.14949976 -0.10474744 0.14203505 0.18323023 -0.4414623 -0.5609364\n", + " 0.16476426 -0.11101744 -0.34873226 0.28405074 -0.22093934 0.35101786]\n", + " [ 0.26700571 0.47050586 0.43780121 -0.29181925 0.37043068 0.34028964\n", + " -0.40350734 -0.42949405 0.31350065 -0.35928447 0.38846802 -0.21866305\n", + " -0.19920717 0.35424354 -0.23298011 -0.40000894 0.3427951 -0.23520597\n", + " -0.37691376 -0.18746862 0.31498652 -0.53372021 0.29027364 -0.22985006\n", + " 0.21668987 -0.20602572 -0.20156348 -0.36831792 -0.18906395 0.23244866]\n", + " [-0.36746827 -0.46811686 0.28314736 0.41309417 0.17322531 0.36050697\n", + " -0.13050854 0.30692526 0.20300263 -0.17103054 0.39539739 -0.18433297\n", + " -0.18497732 0.16366456 0.44616947 0.27476185 0.15297747 -0.62442161\n", + " -0.15777164 -0.3991839 0.13190469 0.19668899 0.4007979 -0.23605135\n", + " 0.15509607 -0.11119275 -0.35150633 0.38848914 -0.45603468 0.29247722]]\n", "float64\n", "[1800, 600, 300, 30, 31]\n" ] @@ -662,19 +770,27 @@ "source": [ "# SHOW STATS\n", "\n", - "print(mlp.get_expected_output())\n", + "mlp.prepare(force=True)\n", + "e=mlp.get_expected_output()\n", + "print(e)\n", + "print(np.sum(e))\n", + "print(range_weighted_sum(e))\n", + "mlp.compute_outputs()\n", "o = mlp.get_output()#[:,:5]\n", "print(\"out={}\".format(o))\n", "print(\"alleq? =\",all_axis_equal(o))\n", "print(\"eq? =\",axis_equal(o))\n", "h = output_to_hard(o)\n", "print(\"hout={}\".format(h))\n", + "print(range_weighted_sum(h))\n", "print(\"alleq? =\",all_axis_equal(h))\n", "e = mlp.get_expected_output()#[:,:5]\n", "print(\"expout={}\".format(e))\n", + "print(range_weighted_sum(e))\n", "print(\"nb errors={}\".format(count_errors(h, e)))\n", "#print(mlp.get_weights())\n", "i = mlp.get_input()\n", + "print(range_weighted_sum(i))\n", "print(\"ieq? =\",axis_equal(i))\n", "print(\"i? =\",i)\n", "print(\"diff exp=\", np.sum(e,axis=1))\n", @@ -689,8 +805,10 @@ }, { "cell_type": "code", - "execution_count": 8, - "metadata": {}, + "execution_count": 13, + "metadata": { + "scrolled": true + }, "outputs": [ { "name": "stdout", @@ -699,11 +817,11 @@ "[540000, 1080000, 180000, 9000, 930]\n", "14479464\n", "ok\n", - "weights_0-815_2018-01-16_22:36:45.params\n", + "weights_1-815_2018-01-19_22:43:36.params\n", "[1800, 600, 300, 30, 31]\n", "22112\n", "ok\n", - "bias_0-815_2018-01-16_22:36:45.params\n" + "bias_1-815_2018-01-19_22:43:36.params\n" ] } ], @@ -727,46 +845,1226 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "expected: 'P'\n", - "(300, 815) 300 815\n", - "[[4.02037550e-05 5.08508797e-04 1.06952737e-04 ... 6.90627241e-04\n", - " 4.48964139e-05 2.14162585e-04]\n", - " [1.84800747e-03 9.71943093e-06 8.52629012e-05 ... 1.29846509e-05\n", - " 4.41800847e-03 3.40338342e-04]\n", - " [1.08228023e-02 2.15103553e-04 1.59061695e-05 ... 1.48215408e-06\n", - " 9.09058825e-01 2.00836526e-03]\n", - " ...\n", - " [3.18261532e-03 5.26193930e-05 5.05545438e-08 ... 4.32711136e-05\n", - " 7.19238954e-03 8.67241619e-01]\n", - " [6.34245842e-04 4.93213135e-05 4.57927769e-07 ... 3.76821169e-04\n", - " 6.03246442e-04 2.92431724e-02]\n", - " [1.31052791e-02 8.18982449e-06 5.47497733e-07 ... 8.46367980e-05\n", - " 2.17122828e-03 2.62691643e-02]]\n", - "[[0. 0. 0. ... 0. 0. 0.]\n", - " [0. 0. 0. ... 0. 0. 0.]\n", - " [0. 0. 0. ... 0. 1. 0.]\n", - " ...\n", - " [0. 0. 0. ... 0. 0. 1.]\n", - " [0. 0. 0. ... 0. 0. 0.]\n", - " [0. 0. 0. ... 0. 0. 0.]]\n", - "[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]\n", - "recognized: 'P'\n", - "expected: 'P'\n", - "[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1.\n", - " 0. 0. 0. 0. 0. 0. 0.]\n", - "[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0]\n" + "[array([[-0.04057058, 0.0651853 , -0.01361134, ..., -0.08432194,\n", + " -0.08524303, 0.01243363],\n", + " [-0.00286033, 0.12115291, 0.09767998, ..., -0.00536564,\n", + " -0.05191855, -0.02886238],\n", + " [ 0.04904284, -0.07196302, -0.011977 , ..., -0.01733713,\n", + " -0.02678482, -0.01814325],\n", + " ...,\n", + " [ 0.00394269, -0.0310804 , 0.02376524, ..., -0.0601834 ,\n", + " -0.01638902, -0.05306143],\n", + " [-0.01504806, 0.02644431, 0.00124966, ..., -0.05542552,\n", + " 0.00306502, -0.01145775],\n", + " [ 0.00036982, -0.01023131, -0.02188288, ..., 0.04519798,\n", + " 0.09076506, 0.07051898]]), array([[-0.05250401, -0.08025294, 0.06132811, ..., 0.0405196 ,\n", + " -0.01162708, 0.03672399],\n", + " [ 0.09482913, 0.00679376, -0.03453199, ..., 0.02318048,\n", + " -0.05202014, -0.08659085],\n", + " [ 0.04236078, 0.03640715, -0.05303196, ..., -0.02014327,\n", + " -0.03987304, -0.00654301],\n", + " ...,\n", + " [-0.0842528 , -0.07436639, 0.03113683, ..., -0.01078837,\n", + " 0.00892173, 0.05104199],\n", + " [ 0.0030353 , 0.06464886, 0.00414398, ..., -0.02579914,\n", + " 0.04410472, -0.0385331 ],\n", + " [-0.01009386, -0.03736783, -0.01091777, ..., -0.01303171,\n", + " -0.0384781 , 0.02204992]]), array([[ 0.11061017, 0.0420736 , -0.04642054, ..., -0.07134354,\n", + " -0.03904634, -0.01886542],\n", + " [ 0.04064045, -0.04554107, -0.07069191, ..., 0.06552462,\n", + " 0.07950895, 0.00872621],\n", + " [-0.03146787, 0.05169459, -0.01455458, ..., 0.04899692,\n", + " 0.036003 , 0.00135215],\n", + " ...,\n", + " [ 0.04261361, -0.05432634, 0.01165223, ..., 0.02563088,\n", + " 0.03101841, -0.00810351],\n", + " [-0.06358307, -0.03166734, 0.14649339, ..., -0.06680764,\n", + " 0.06550367, 0.03018188],\n", + " [-0.05601524, 0.0246683 , 0.00018749, ..., -0.05908162,\n", + " -0.04142182, 0.01382154]]), array([[-0.02762126, 0.15890358, -0.02989871, ..., -0.0829157 ,\n", + " 0.05174366, -0.05561284],\n", + " [-0.15735023, -0.15949128, 0.03114682, ..., 0.06222333,\n", + " -0.17313786, 0.00764474],\n", + " [ 0.01382 , -0.0176754 , 0.0012808 , ..., 0.0462353 ,\n", + " -0.0018297 , 0.12981864],\n", + " ...,\n", + " [ 0.03184086, 0.10902008, -0.09454381, ..., -0.00361243,\n", + " 0.03193602, -0.03649373],\n", + " [ 0.10149575, 0.0782519 , -0.09373522, ..., 0.08087716,\n", + " 0.01729115, 0.07176767],\n", + " [ 0.02119645, -0.081914 , 0.17181034, ..., -0.02136329,\n", + " -0.09641983, 0.03086602]]), array([[ 0.1907328 , 0.18845196, -0.12224441, -0.05964109, 0.12367525,\n", + " -0.14402297, 0.11241219, -0.13761712, -0.14355683, -0.19991072,\n", + " 0.17114651, 0.14952979, -0.15596192, -0.15104949, -0.23011689,\n", + " -0.15934663, 0.26955059, 0.12671634, -0.24147539, 0.09565542,\n", + " 0.15679567, -0.12698284, -0.14428198, -0.12377838, -0.14584396,\n", + " 0.20000168, 0.11843919, 0.1480444 , -0.10038054, -0.19976624],\n", + " [-0.26594002, 0.24584459, -0.18039047, 0.15171004, 0.20866433,\n", + " 0.22284714, 0.16988576, -0.19359829, -0.23692458, 0.23815787,\n", + " -0.24761103, 0.21239668, 0.22052156, -0.20040023, 0.22730025,\n", + " -0.21014211, 0.19981055, 0.19265382, -0.24858026, 0.17936175,\n", + " -0.21152444, -0.18768684, -0.18730713, -0.2318144 , -0.22607281,\n", + " -0.25467438, 0.19574515, 0.21314958, -0.17710156, -0.21450085],\n", + " [-0.25615497, -0.19865084, -0.20528219, 0.21217482, 0.19610866,\n", + " -0.24527752, 0.18374664, -0.20198927, 0.21765273, -0.24950495,\n", + " 0.20526937, 0.2217967 , -0.20025442, -0.21887354, -0.20594999,\n", + " -0.19181317, -0.1639516 , 0.154928 , 0.17484602, 0.17860372,\n", + " 0.24819725, -0.18159039, -0.19416877, -0.19785529, -0.23132332,\n", + " -0.20847492, 0.18232355, 0.22824306, -0.18691723, -0.23293103],\n", + " [ 0.19472992, 0.16533858, -0.15963799, -0.18106074, 0.10123149,\n", + " 0.14237273, 0.07513196, -0.03270703, -0.10656724, -0.23463651,\n", + " 0.15565149, 0.15875073, -0.16138707, -0.15227946, -0.20782596,\n", + " -0.16188313, -0.23936766, 0.07554376, -0.12082848, 0.0511624 ,\n", + " 0.08963224, -0.11438051, -0.1254928 , -0.00549724, -0.14007508,\n", + " 0.17932819, 0.11322132, 0.13622499, -0.11977518, -0.08605742],\n", + " [ 0.21137036, 0.16977975, -0.14861876, 0.19382205, 0.17887821,\n", + " -0.19236291, 0.13210304, -0.15731299, -0.16763513, -0.21103014,\n", + " 0.16214318, 0.16514125, -0.17850148, -0.17187628, -0.21351516,\n", + " -0.14518994, -0.09725853, 0.1434566 , -0.1324925 , 0.10728972,\n", + " 0.18440369, -0.13522509, -0.1524557 , -0.16699473, -0.17502949,\n", + " 0.19349478, 0.1423498 , 0.1731691 , -0.11229991, -0.21206251],\n", + " [ 0.12195248, 0.10241038, -0.10367074, -0.05472222, 0.01144459,\n", + " 0.0166204 , 0.09638881, -0.08526092, -0.09770319, -0.11627265,\n", + " 0.09582335, 0.12626977, -0.10243554, -0.11886656, -0.13740106,\n", + " -0.05767998, -0.16101139, 0.10154252, -0.08185051, 0.04870284,\n", + " 0.09993 , -0.07882295, -0.0869228 , 0.04811999, -0.10613874,\n", + " 0.12802619, 0.06396679, 0.10684346, -0.05206837, -0.12849488],\n", + " [ 0.08656625, 0.09071858, -0.11948021, 0.03779479, 0.02079479,\n", + " 0.0379051 , 0.08068836, -0.09783856, -0.05666694, -0.10606728,\n", + " 0.10557745, 0.13188151, -0.1104979 , -0.09741735, -0.17654707,\n", + " -0.05717396, 0.09927688, 0.0968594 , -0.14976854, 0.02986896,\n", + " -0.00643134, -0.07775161, -0.12088278, 0.01849153, -0.09181426,\n", + " 0.06135522, 0.03427657, 0.10717171, -0.08853887, -0.14552713],\n", + " [ 0.11740736, 0.11235667, -0.12252784, -0.07941132, -0.13795959,\n", + " -0.05622596, 0.06639817, -0.05201894, -0.10426249, -0.16277948,\n", + " 0.11576816, 0.10638292, -0.11806386, -0.12976171, -0.17514634,\n", + " -0.05916817, 0.04886434, 0.09867757, -0.15749694, -0.01074741,\n", + " 0.05367458, -0.07634598, -0.12029428, -0.00167797, -0.13584242,\n", + " 0.10335138, -0.05427742, 0.11941579, -0.07177931, -0.15643634],\n", + " [ 0.17595935, -0.20609675, -0.18143248, 0.20202628, 0.2258074 ,\n", + " 0.23324888, 0.20565947, -0.17898123, -0.19707043, 0.21328099,\n", + " -0.19241915, -0.23998225, 0.18609225, -0.22031085, 0.21510215,\n", + " 0.21189783, 0.20304097, -0.21196697, 0.20114608, 0.20220369,\n", + " -0.22486312, 0.20355904, 0.23241498, 0.21094049, 0.25270852,\n", + " 0.18300853, 0.21338279, -0.22487285, 0.18570458, -0.21601711],\n", + " [ 0.16426065, 0.24864853, -0.15571289, -0.17283897, -0.24625815,\n", + " -0.14915066, 0.14764493, -0.15897913, -0.16317202, -0.1866881 ,\n", + " 0.23435393, 0.15669011, -0.22181878, -0.15380664, 0.05829437,\n", + " 0.1368447 , 0.09863624, 0.15981646, -0.26349993, 0.14259404,\n", + " 0.14901409, -0.18159128, -0.14006383, 0.21945115, -0.13061565,\n", + " 0.14923529, -0.15280675, 0.16797761, -0.16314103, -0.15339762],\n", + " [-0.20497796, -0.16754841, 0.24178219, 0.2001116 , -0.1793657 ,\n", + " -0.19427466, -0.14013332, 0.16299845, 0.18716269, -0.21014232,\n", + " -0.22724343, -0.28214883, 0.15116052, 0.20427022, 0.20755894,\n", + " 0.21634892, 0.19072303, 0.1423838 , -0.19900561, -0.14328682,\n", + " -0.15372109, 0.13000759, -0.1658216 , -0.30039756, 0.1957482 ,\n", + " -0.23308782, -0.19903931, 0.24974225, 0.28763474, -0.21003888],\n", + " [-0.25506614, -0.19321983, 0.19520065, -0.24451778, -0.1429063 ,\n", + " -0.16494355, -0.169921 , -0.274448 , 0.27525092, 0.25920018,\n", + " -0.15850576, 0.2497452 , 0.18821718, 0.23025386, 0.15638221,\n", + " 0.16852656, -0.26671685, -0.16851117, -0.21910654, -0.19380967,\n", + " -0.26947104, 0.17199281, 0.18467458, 0.19777896, 0.29087537,\n", + " 0.23284929, -0.16447449, -0.19723623, 0.18760104, 0.25985938],\n", + " [-0.21174235, -0.20655813, 0.21226996, 0.20025221, -0.21221078,\n", + " -0.20358154, -0.19415422, 0.22035696, 0.20653507, -0.22851798,\n", + " -0.21568831, -0.22675565, 0.21036629, 0.21108008, 0.21686017,\n", + " 0.20729859, 0.22273732, -0.25619059, -0.22197814, -0.21068322,\n", + " -0.20406842, 0.19442939, 0.2442369 , 0.21345035, 0.22502593,\n", + " -0.24742137, -0.20851847, -0.25795292, 0.22549153, -0.21546929],\n", + " [ 0.16218221, 0.2328384 , -0.1515921 , -0.16540639, -0.26097742,\n", + " -0.14694794, 0.17179765, -0.20794037, -0.12909054, -0.199324 ,\n", + " 0.2029075 , 0.13680517, -0.22604583, -0.16166194, 0.16629779,\n", + " 0.16505158, 0.27203012, 0.18997283, -0.24068873, 0.15456526,\n", + " 0.18955915, -0.20893271, -0.15394913, 0.22611481, -0.14610592,\n", + " 0.16609924, -0.17452934, 0.14769448, -0.1665387 , -0.21905183],\n", + " [ 0.12793143, 0.10358451, -0.11974823, -0.07082481, -0.12153695,\n", + " -0.03904276, 0.06832945, -0.08350856, -0.10117885, -0.16148915,\n", + " 0.10894323, 0.12112644, -0.11834827, -0.10786552, -0.1321922 ,\n", + " 0.05682548, -0.02311914, 0.11340907, -0.17576706, 0.0296034 ,\n", + " 0.08329146, -0.0867687 , -0.11650399, 0.14119883, -0.13058192,\n", + " 0.11826897, -0.05044192, 0.11489005, -0.08546129, -0.14739331],\n", + " [-0.19574007, 0.19127729, 0.26248003, 0.23440636, 0.1795472 ,\n", + " 0.18106473, 0.21776239, -0.21343952, 0.19511341, 0.24650008,\n", + " 0.1842012 , -0.19195523, -0.19579392, 0.20039746, -0.18651895,\n", + " -0.17731094, -0.25816992, 0.22580006, 0.21233623, 0.21767289,\n", + " 0.26181771, -0.1894634 , 0.2341736 , -0.18892036, 0.20412436,\n", + " -0.1910831 , 0.19686854, -0.18195706, 0.26164865, 0.18180563],\n", + " [-0.19201865, 0.19691479, -0.25851425, 0.21347198, 0.16742095,\n", + " 0.18829225, 0.22924853, -0.23194416, 0.17085646, 0.24018277,\n", + " 0.1785183 , -0.18957899, -0.19103589, 0.21345841, -0.18306562,\n", + " -0.18262232, 0.25513847, 0.21480054, 0.19101232, 0.18572381,\n", + " -0.26942916, -0.19382695, -0.25111218, -0.19079301, 0.20394295,\n", + " -0.19163417, 0.1827297 , -0.22528814, -0.24284794, 0.17557648],\n", + " [ 0.21819745, -0.15993116, 0.20167028, -0.21728075, -0.18854303,\n", + " -0.17105889, -0.20122533, 0.21092387, -0.21591872, 0.22843911,\n", + " -0.18475488, -0.27309067, 0.1826669 , 0.23190809, 0.18134682,\n", + " 0.17678637, 0.28515794, -0.18055569, 0.23177122, -0.15985432,\n", + " 0.21291899, 0.19590387, 0.20673145, 0.1834919 , -0.19018212,\n", + " 0.19019907, -0.16287378, -0.19643127, 0.18461828, 0.22376866],\n", + " [ 0.21167788, -0.1604803 , 0.21951069, -0.17469115, -0.15996937,\n", + " -0.16089493, -0.21127477, 0.24394319, -0.23889769, 0.19655921,\n", + " -0.16398725, 0.28050827, 0.16860756, -0.21501606, 0.14286128,\n", + " 0.14075075, -0.29728241, -0.17714433, -0.22015238, -0.18415704,\n", + " 0.22713752, 0.16542158, 0.20874216, 0.16838574, -0.21514939,\n", + " 0.18801104, -0.15467157, -0.2231831 , 0.16750895, 0.2064657 ],\n", + " [ 0.1996851 , -0.24155722, -0.2578425 , -0.18995297, -0.18941166,\n", + " -0.18599282, 0.2404339 , 0.26356824, -0.17142509, 0.20954472,\n", + " -0.20205125, 0.21403967, 0.23975 , -0.20749248, 0.12315517,\n", + " 0.15968173, 0.26536293, -0.23204245, -0.24622288, 0.2436839 ,\n", + " 0.22332601, -0.2299695 , -0.26495212, 0.16692971, -0.17251154,\n", + " 0.17121524, -0.19326782, 0.22063119, 0.16735783, 0.24038869],\n", + " [ 0.18215249, 0.23550876, -0.22841557, -0.19767606, -0.25002138,\n", + " -0.21694721, 0.19847355, -0.24375172, -0.1898401 , 0.2936732 ,\n", + " -0.08661613, 0.189157 , -0.24300052, -0.19159314, 0.2338246 ,\n", + " 0.23671634, -0.30431972, 0.15083636, 0.28372967, 0.1915271 ,\n", + " 0.19252856, -0.2096086 , -0.21429457, 0.19829573, -0.18744975,\n", + " 0.18686946, -0.21726422, 0.1990251 , -0.23385138, 0.23376095],\n", + " [-0.16487229, 0.21736378, 0.16035093, -0.2516034 , -0.27887578,\n", + " 0.20728775, -0.18037562, 0.20102997, 0.15831404, -0.19790163,\n", + " 0.19092339, -0.1697134 , -0.21007563, 0.1396911 , -0.20122559,\n", + " -0.18298215, -0.22915208, -0.20106209, -0.26989745, -0.27279542,\n", + " -0.16738536, 0.22034288, 0.17097415, -0.20099698, 0.16368292,\n", + " -0.16136864, -0.24297259, -0.17211456, -0.1929739 , 0.2236316 ],\n", + " [-0.15905729, -0.24250095, 0.18394737, 0.21452204, 0.24027111,\n", + " 0.23417546, -0.20678908, 0.23851135, 0.1442595 , -0.20471045,\n", + " 0.20437609, -0.14158635, 0.26378855, 0.16150167, -0.22829262,\n", + " -0.22156588, 0.2308239 , -0.19722222, 0.24795137, -0.23251672,\n", + " -0.18102752, 0.23641158, 0.19912975, -0.24198679, 0.1537202 ,\n", + " -0.17105895, 0.24028409, -0.1952164 , 0.27605179, -0.24400159],\n", + " [-0.18192654, 0.19760561, 0.22537266, -0.27157467, 0.2327721 ,\n", + " 0.16851414, -0.2538133 , 0.18187381, 0.18786217, -0.24035638,\n", + " 0.1984586 , -0.19881226, -0.19798767, 0.17969084, -0.17242792,\n", + " -0.16451899, -0.22347965, -0.22790095, 0.24528808, 0.21935064,\n", + " -0.19341128, -0.25155042, 0.21707131, -0.18698439, 0.18694626,\n", + " -0.18673402, 0.23241588, -0.1455434 , -0.22167468, 0.18645628],\n", + " [ 0.21809613, -0.17045839, 0.19428934, -0.20044656, -0.16605168,\n", + " -0.16177226, -0.18912845, 0.21428729, -0.20636135, 0.20441315,\n", + " -0.16479735, -0.28455701, 0.16352746, 0.21015725, 0.15652452,\n", + " 0.16374228, -0.31588354, -0.16857391, 0.25224163, -0.17845344,\n", + " 0.23376334, 0.16444704, 0.17320432, 0.16037508, -0.2137657 ,\n", + " 0.19391543, -0.17253873, -0.17968757, 0.18942232, 0.20226475],\n", + " [ 0.22572428, 0.19564087, 0.22078116, -0.21565601, 0.24160951,\n", + " 0.2424269 , -0.21685548, 0.22001859, 0.22129396, -0.22529551,\n", + " 0.19401455, 0.23106438, -0.21681847, -0.22252577, -0.19784479,\n", + " -0.20818945, -0.21218031, 0.22296548, 0.23651593, -0.23888863,\n", + " 0.23688886, 0.14305781, -0.21634886, 0.24054326, -0.20886862,\n", + " 0.22053074, -0.25045919, 0.22342618, -0.18674614, 0.22028996],\n", + " [ 0.16883106, 0.13898946, -0.12126907, -0.13864663, 0.11952522,\n", + " 0.08519253, 0.09527768, -0.1065714 , -0.14117656, -0.19303931,\n", + " 0.1163915 , 0.15651804, -0.12938404, -0.14239816, -0.19665824,\n", + " -0.11031734, -0.19606519, 0.10893486, 0.00922573, -0.00502963,\n", + " 0.12848948, -0.02054687, -0.1333508 , 0.19398733, -0.12925496,\n", + " 0.14675511, 0.10862354, 0.1592537 , -0.0885517 , -0.15028118],\n", + " [ 0.241493 , -0.24655615, -0.15188545, 0.19061559, 0.21384566,\n", + " 0.20164582, 0.12914974, -0.18394987, -0.16967813, 0.14930956,\n", + " -0.18138957, 0.18383737, 0.16361615, -0.16212898, 0.20088115,\n", + " -0.21043134, 0.17839552, 0.2219276 , 0.23283961, 0.14868441,\n", + " -0.15564164, -0.22515652, -0.2051097 , 0.26271525, -0.20704748,\n", + " 0.24795846, 0.18298621, 0.20765366, -0.18310315, -0.19198758],\n", + " [ 0.14603073, -0.01854124, -0.11674552, 0.06004529, -0.11341442,\n", + " -0.05302997, 0.06322247, -0.08001928, -0.11410933, -0.15169671,\n", + " 0.02642597, 0.12328342, -0.0184219 , -0.11712042, -0.07348047,\n", + " 0.04300176, 0.06957878, 0.12580343, -0.16404834, -0.04384091,\n", + " -0.00076468, 0.00969206, -0.11597377, 0.12301344, -0.11180431,\n", + " 0.11889772, -0.02523292, 0.12312133, -0.08818183, -0.16973155],\n", + " [-0.23521606, -0.18611864, -0.28743954, 0.18371157, -0.16944342,\n", + " -0.18737756, -0.16180626, 0.22186599, 0.17371077, -0.20029356,\n", + " -0.21758563, 0.22965642, 0.17428883, -0.19034643, 0.1895514 ,\n", + " 0.19759278, 0.18154441, 0.18761481, -0.18535817, -0.19478933,\n", + " -0.15778567, 0.21502387, -0.18524453, -0.22402376, 0.22325489,\n", + " -0.21401477, -0.21304758, 0.24455513, -0.21886554, -0.21213158],\n", + " [ 0.03010671, -0.17727856, -0.15746903, 0.19191682, -0.27997733,\n", + " -0.1572646 , 0.20692155, -0.20448688, -0.20663719, -0.24647756,\n", + " -0.13208029, 0.17683254, 0.11380687, -0.18777525, 0.11430546,\n", + " 0.14603996, 0.14529346, 0.18639466, -0.21953716, -0.15394316,\n", + " -0.11788935, -0.22867283, -0.16711727, -0.19146617, -0.19404575,\n", + " -0.05522092, 0.16848797, 0.15329358, -0.17279433, -0.17219105]])]\n", + "[array([[-0.04846611],\n", + " [-0.04964174],\n", + " [ 0.05359007],\n", + " ...,\n", + " [-0.01537898],\n", + " [-0.05568209],\n", + " [ 0.0392154 ]]), array([[ 1.75756112e-02],\n", + " [ 2.04182525e-02],\n", + " [ 4.12743583e-03],\n", + " [-4.03501139e-03],\n", + " [ 1.70787622e-02],\n", + " [ 2.01314052e-03],\n", + " [-1.97025792e-02],\n", + " [-5.84516599e-03],\n", + " [-4.14159886e-02],\n", + " [ 2.88752797e-02],\n", + " [ 2.16019355e-03],\n", + " [ 1.86458604e-02],\n", + " [ 1.84439134e-02],\n", + " [-5.92207227e-03],\n", + " [ 1.93448353e-02],\n", + " [ 3.00923944e-02],\n", + " [-3.71364337e-02],\n", + " [-9.20047098e-03],\n", + " [ 1.49428752e-02],\n", + " [-2.21979183e-03],\n", + " [-3.35269675e-05],\n", + " [ 5.78781174e-02],\n", + " [-5.00323968e-02],\n", + " [ 5.25110979e-02],\n", + " [ 3.46565676e-02],\n", + " [ 3.55970251e-03],\n", + " [ 1.92716585e-02],\n", + " [-1.33526832e-02],\n", + " [ 2.83397667e-02],\n", + " [ 1.87451277e-02],\n", + " [-1.68575829e-02],\n", + " [ 2.81266619e-04],\n", + " [-2.49884543e-02],\n", + " [ 2.60431430e-02],\n", + " [-7.45730339e-03],\n", + " [-2.27940731e-02],\n", + " [ 1.80243830e-02],\n", + " [ 2.05508009e-02],\n", + " [ 8.39557903e-03],\n", + " [ 3.91535822e-02],\n", + " [-2.30279232e-02],\n", + " [ 2.51881006e-02],\n", + " [-3.92445660e-03],\n", + " [-1.91722748e-02],\n", + " [ 9.64986925e-03],\n", + " [-2.91603134e-02],\n", + " [ 2.86248543e-02],\n", + " [ 7.96741509e-03],\n", + " [ 2.82894463e-02],\n", + " [ 9.25422978e-03],\n", + " [-2.97846232e-02],\n", + " [ 2.09152682e-02],\n", + " [ 2.55270006e-02],\n", + " [-2.44866619e-02],\n", + " [ 5.16121393e-02],\n", + " [-1.77984632e-02],\n", + " [-2.68996535e-03],\n", + " [ 2.29019105e-02],\n", + " [ 3.87973107e-02],\n", + " [ 1.63155180e-02],\n", + " [ 5.35119288e-02],\n", + " [-2.55533079e-02],\n", + " [ 3.09050114e-03],\n", + " [-2.39368329e-02],\n", + " [ 2.05091789e-03],\n", + " [ 1.92049723e-02],\n", + " [-8.46090367e-03],\n", + " [ 2.86878394e-02],\n", + " [ 1.10627628e-02],\n", + " [ 1.48939313e-02],\n", + " [-2.65319227e-02],\n", + " [-1.79574257e-02],\n", + " [ 2.00279816e-02],\n", + " [ 9.96688109e-03],\n", + " [-1.65257102e-02],\n", + " [-2.87207655e-03],\n", + " [ 5.31139311e-02],\n", + " [-2.69101414e-03],\n", + " [ 3.57282334e-02],\n", + " [-1.32094810e-02],\n", + " [-2.34803906e-02],\n", + " [ 1.18299876e-02],\n", + " [ 1.06327988e-02],\n", + " [-3.14940169e-03],\n", + " [-1.14000723e-02],\n", + " [-2.25782125e-02],\n", + " [-2.71653208e-03],\n", + " [ 2.15951524e-02],\n", + " [-2.08916703e-02],\n", + " [ 1.87911111e-02],\n", + " [ 1.90946083e-02],\n", + " [-2.96383775e-02],\n", + " [-3.26207076e-02],\n", + " [-2.04116992e-03],\n", + " [ 4.31231139e-03],\n", + " [ 1.35534516e-03],\n", + " [-1.52601806e-02],\n", + " [-1.94589817e-02],\n", + " [-4.85493555e-03],\n", + " [ 2.34813217e-02],\n", + " [ 1.95240063e-02],\n", + " [ 7.00935879e-03],\n", + " [ 4.33344384e-02],\n", + " [ 3.60270242e-02],\n", + " [-6.60674573e-04],\n", + " [-2.86890137e-02],\n", + " [ 2.29162525e-02],\n", + " [ 4.51064974e-03],\n", + " [-2.32284449e-02],\n", + " [-2.46491263e-02],\n", + " [ 3.92917792e-03],\n", + " [ 7.05535631e-02],\n", + " [-2.65109885e-02],\n", + " [-1.84674700e-02],\n", + " [ 7.28681752e-03],\n", + " [ 1.58859662e-03],\n", + " [ 2.37755863e-02],\n", + " [-4.78120501e-02],\n", + " [ 3.13649953e-02],\n", + " [-4.60724730e-03],\n", + " [-2.02707873e-02],\n", + " [ 1.87074300e-02],\n", + " [ 4.84559288e-02],\n", + " [ 2.11460553e-02],\n", + " [-3.67323687e-03],\n", + " [ 1.82558351e-02],\n", + " [-3.06363664e-02],\n", + " [-3.35324538e-02],\n", + " [ 5.13314395e-02],\n", + " [ 1.34114201e-02],\n", + " [-1.61825266e-02],\n", + " [ 4.70431351e-03],\n", + " [-3.14738197e-02],\n", + " [ 6.64279984e-03],\n", + " [ 8.31672602e-03],\n", + " [ 2.93731906e-02],\n", + " [ 5.04139218e-02],\n", + " [-5.07041598e-02],\n", + " [ 3.14423960e-02],\n", + " [-7.51099533e-03],\n", + " [-4.34223560e-03],\n", + " [-1.64052312e-02],\n", + " [ 3.60997061e-03],\n", + " [-3.36520361e-02],\n", + " [ 2.74493847e-02],\n", + " [-1.56515927e-02],\n", + " [ 1.53352321e-03],\n", + " [ 1.32893041e-03],\n", + " [-7.44310388e-03],\n", + " [ 2.11861733e-02],\n", + " [ 1.55976052e-02],\n", + " [ 3.31603877e-02],\n", + " [-1.14302578e-02],\n", + " [-2.81853315e-02],\n", + " [ 3.25679427e-02],\n", + " [ 1.40162768e-02],\n", + " [ 4.25808739e-03],\n", + " [ 3.67311287e-02],\n", + " [-3.65472974e-02],\n", + " [-2.99931284e-02],\n", + " [ 2.15771593e-03],\n", + " [ 1.27151569e-02],\n", + " [ 2.45971775e-02],\n", + " [-5.32211500e-03],\n", + " [-1.86406994e-02],\n", + " [ 2.93015847e-02],\n", + " [-2.82863111e-02],\n", + " [-4.72697201e-03],\n", + " [ 3.79429658e-02],\n", + " [-3.87467155e-02],\n", + " [ 3.63085701e-02],\n", + " [-3.10417622e-02],\n", + " [ 3.30170293e-02],\n", + " [ 2.86340095e-02],\n", + " [-1.43689772e-02],\n", + " [ 2.01094889e-03],\n", + " [-1.23412131e-03],\n", + " [-2.67490674e-02],\n", + " [ 1.28026209e-02],\n", + " [ 2.27228363e-02],\n", + " [ 7.26475746e-03],\n", + " [-8.29223370e-03],\n", + " [ 7.22274295e-03],\n", + " [-1.61017081e-02],\n", + " [-7.88848294e-03],\n", + " [-5.64093114e-02],\n", + " [ 1.91346862e-02],\n", + " [-2.21920693e-03],\n", + " [ 2.53592263e-02],\n", + " [ 7.34355791e-04],\n", + " [ 1.03092785e-02],\n", + " [-8.16066571e-03],\n", + " [ 5.31842630e-03],\n", + " [ 2.35771138e-03],\n", + " [-2.45620042e-02],\n", + " [-3.34859054e-02],\n", + " [-2.45833273e-02],\n", + " [ 4.39270904e-03],\n", + " [ 9.32458837e-03],\n", + " [ 3.86225328e-02],\n", + " [ 7.80443085e-03],\n", + " [-1.65746668e-02],\n", + " [-1.89955699e-02],\n", + " [ 1.99624470e-02],\n", + " [ 3.59608458e-03],\n", + " [-4.00393067e-02],\n", + " [-2.30186535e-02],\n", + " [-2.03293672e-03],\n", + " [-2.92686824e-02],\n", + " [-2.33108452e-02],\n", + " [ 5.99909576e-03],\n", + " [ 5.40829206e-02],\n", + " [-1.61265093e-02],\n", + " [-3.70227405e-02],\n", + " [-1.09751881e-02],\n", + " [ 1.01805974e-02],\n", + " [-3.65937063e-02],\n", + " [ 2.53145062e-02],\n", + " [-2.46144953e-02],\n", + " [-1.40802005e-02],\n", + " [ 1.02665019e-02],\n", + " [ 3.13998808e-02],\n", + " [-2.14513557e-02],\n", + " [ 1.38220033e-02],\n", + " [-3.19524810e-03],\n", + " [-2.05644391e-02],\n", + " [ 2.82648792e-04],\n", + " [-6.72310215e-02],\n", + " [-6.44530482e-03],\n", + " [ 2.78144364e-02],\n", + " [ 3.14016585e-02],\n", + " [-3.69193629e-02],\n", + " [-1.81051614e-02],\n", + " [-3.19879577e-02],\n", + " [-9.09258089e-04],\n", + " [-8.53191828e-03],\n", + " [-1.95963122e-02],\n", + " [-2.68933882e-02],\n", + " [-2.73845258e-02],\n", + " [ 1.38972828e-02],\n", + " [ 2.45462663e-02],\n", + " [-3.59691200e-02],\n", + " [-1.29649402e-03],\n", + " [ 8.26376290e-03],\n", + " [-4.29640178e-03],\n", + " [ 2.64849674e-02],\n", + " [-4.81576675e-03],\n", + " [-2.52265739e-02],\n", + " [ 1.87564336e-02],\n", + " [-5.46597306e-03],\n", + " [-1.81280213e-02],\n", + " [-2.16292587e-02],\n", + " [ 8.65311982e-03],\n", + " [ 2.06368399e-02],\n", + " [ 7.23345995e-03],\n", + " [ 2.33602208e-02],\n", + " [-3.51434749e-03],\n", + " [ 2.05927280e-02],\n", + " [ 2.75774934e-02],\n", + " [ 1.12017359e-02],\n", + " [-1.26934432e-02],\n", + " [-4.00744632e-02],\n", + " [ 1.83479811e-02],\n", + " [ 1.03159792e-02],\n", + " [ 2.34406133e-02],\n", + " [-1.49103761e-03],\n", + " [ 4.68648899e-03],\n", + " [ 1.94587584e-02],\n", + " [ 1.45348705e-02],\n", + " [-2.41346612e-02],\n", + " [-3.70597888e-02],\n", + " [-4.41622378e-02],\n", + " [ 2.52089188e-02],\n", + " [-2.06488966e-02],\n", + " [-8.88229282e-03],\n", + " [-1.12506698e-03],\n", + " [-1.46026086e-02],\n", + " [ 2.49637653e-02],\n", + " [-2.52330107e-03],\n", + " [-6.78117120e-03],\n", + " [-3.43049175e-03],\n", + " [ 4.65300256e-02],\n", + " [-1.76204391e-02],\n", + " [ 2.22446296e-02],\n", + " [ 1.37603992e-02],\n", + " [-2.06215255e-02],\n", + " [ 3.62787958e-03],\n", + " [-5.48660347e-03],\n", + " [-6.82821938e-02],\n", + " [ 1.45133476e-02],\n", + " [-1.10804896e-02],\n", + " [-7.13397903e-03],\n", + " [-2.17168406e-02],\n", + " [-2.25789929e-02],\n", + " [ 1.04630162e-02],\n", + " [-1.88386793e-02],\n", + " [ 3.56123926e-02],\n", + " [-1.52176080e-02],\n", + " [-1.07955750e-02],\n", + " [ 2.32043616e-02],\n", + " [ 1.15858865e-03],\n", + " [-1.69390720e-03],\n", + " [-1.45178325e-02],\n", + " [ 1.22052382e-02],\n", + " [-2.29130756e-03],\n", + " [-1.12019013e-02],\n", + " [-5.69167268e-03],\n", + " [ 7.49765617e-03],\n", + " [-6.80123007e-03],\n", + " [-5.26588241e-02],\n", + " [-1.16878871e-02],\n", + " [-2.11761711e-03],\n", + " [ 2.52402992e-03],\n", + " [ 2.35264345e-02],\n", + " [ 4.02698916e-02],\n", + " [-2.69764380e-02],\n", + " [-4.12857400e-03],\n", + " [ 6.61398711e-03],\n", + " [ 2.11827710e-02],\n", + " [ 1.85839992e-02],\n", + " [ 3.11514882e-04],\n", + " [ 1.11406757e-04],\n", + " [ 4.90033292e-03],\n", + " [-4.45343562e-02],\n", + " [-6.62955352e-03],\n", + " [-4.87850992e-03],\n", + " [-3.69156509e-03],\n", + " [-3.44328118e-02],\n", + " [ 2.79314023e-03],\n", + " [-2.99629113e-02],\n", + " [ 2.58312151e-02],\n", + " [-3.53997609e-03],\n", + " [-3.84928332e-02],\n", + " [ 3.06395086e-02],\n", + " [-2.99766983e-02],\n", + " [ 8.59291660e-02],\n", + " [ 1.79236448e-03],\n", + " [ 2.07668720e-02],\n", + " [-3.61858427e-02],\n", + " [-1.58013954e-03],\n", + " [-4.65349450e-02],\n", + " [-2.38615312e-03],\n", + " [-2.21568125e-02],\n", + " [ 2.33169227e-02],\n", + " [-8.32886522e-03],\n", + " [-2.19225187e-02],\n", + " [ 1.73917479e-02],\n", + " [-4.18897156e-02],\n", + " [ 2.67794354e-02],\n", + " [-8.84602473e-03],\n", + " [ 1.97893799e-02],\n", + " [-2.98126296e-02],\n", + " [-5.72401155e-03],\n", + " [-2.20768105e-02],\n", + " [ 2.64037591e-02],\n", + " [-1.73706494e-02],\n", + " [ 2.09647091e-02],\n", + " [-1.15467493e-02],\n", + " [ 1.20792155e-03],\n", + " [-2.11164938e-03],\n", + " [-1.12125092e-02],\n", + " [ 1.76250031e-02],\n", + " [-7.22060011e-03],\n", + " [ 2.38298659e-02],\n", + " [-6.40042825e-03],\n", + " [-1.78614899e-02],\n", + " [-8.04581879e-04],\n", + " [-2.24200382e-02],\n", + " [-1.17976372e-02],\n", + " [ 3.18620454e-03],\n", + " [ 7.95273065e-04],\n", + " [ 7.65261963e-03],\n", + " [ 1.61255905e-03],\n", + " [ 9.11085540e-03],\n", + " [ 9.56004704e-03],\n", + " [-1.91476022e-02],\n", + " [ 1.76168000e-02],\n", + " [-2.62705740e-03],\n", + " [ 5.32042836e-03],\n", + " [-6.40704568e-03],\n", + " [ 2.55064150e-02],\n", + " [-4.55316491e-02],\n", + " [-2.12921092e-03],\n", + " [-5.64549772e-06],\n", + " [ 9.92659949e-03],\n", + " [ 1.51512217e-02],\n", + " [-1.06001623e-03],\n", + " [ 7.11928346e-03],\n", + " [ 5.14853512e-02],\n", + " [ 1.83121639e-02],\n", + " [-7.19094961e-02],\n", + " [ 9.45611711e-03],\n", + " [ 3.27686267e-02],\n", + " [ 2.38465814e-02],\n", + " [-1.02791789e-02],\n", + " [-2.28376864e-02],\n", + " [ 3.37208794e-02],\n", + " [ 3.65540605e-03],\n", + " [-4.31368110e-03],\n", + " [ 2.39309286e-02],\n", + " [-1.94026472e-02],\n", + " [ 2.82416465e-02],\n", + " [-2.27071100e-02],\n", + " [-1.01173117e-02],\n", + " [-7.61136567e-03],\n", + " [-2.34931305e-02],\n", + " [-1.28354609e-02],\n", + " [-3.21093727e-02],\n", + " [ 1.36443646e-02],\n", + " [ 1.55799305e-02],\n", + " [-1.90314582e-02],\n", + " [ 1.80162355e-02],\n", + " [ 2.83893075e-02],\n", + " [ 2.25070972e-02],\n", + " [-1.86625927e-02],\n", + " [ 4.01578696e-02],\n", + " [ 4.16208803e-02],\n", + " [-1.64825856e-02],\n", + " [ 1.64384379e-02],\n", + " [ 1.24869929e-02],\n", + " [-1.83981377e-02],\n", + " [ 2.77067207e-02],\n", + " [ 8.63180844e-03],\n", + " [-9.58461248e-03],\n", + " [-2.53791210e-03],\n", + " [ 1.20823472e-02],\n", + " [ 2.00576408e-02],\n", + " [-3.42745678e-02],\n", + " [-6.15264880e-03],\n", + " [-1.30638143e-02],\n", + " [-5.90847355e-02],\n", + " [-2.00124071e-02],\n", + " [ 3.94243469e-03],\n", + " [-6.17840460e-03],\n", + " [ 6.47084422e-03],\n", + " [ 1.99312467e-02],\n", + " [-3.70277079e-03],\n", + " [ 3.24642441e-02],\n", + " [ 3.29149579e-02],\n", + " [ 3.99071860e-04],\n", + " [-4.16078105e-02],\n", + " [ 2.23077026e-02],\n", + " [-1.59971066e-02],\n", + " [-6.81504760e-03],\n", + " [-6.01759879e-03],\n", + " [ 2.81279602e-02],\n", + " [ 6.10086085e-02],\n", + " [ 4.83727542e-03],\n", + " [ 1.27795750e-02],\n", + " [ 2.80799684e-02],\n", + " [ 5.00537258e-02],\n", + " [-1.35472832e-02],\n", + " [-5.07766715e-04],\n", + " [ 2.95761239e-02],\n", + " [ 6.88277979e-02],\n", + " [-5.48122906e-03],\n", + " [-2.39621422e-02],\n", + " [ 8.12782772e-03],\n", + " [-2.78899796e-03],\n", + " [-2.38922554e-02],\n", + " [ 4.83087238e-02],\n", + " [-1.60127411e-02],\n", + " [-5.08570168e-04],\n", + " [-7.40572649e-03],\n", + " [-2.39027653e-02],\n", + " [-1.43742040e-02],\n", + " [ 1.60416548e-02],\n", + " [ 1.91552282e-02],\n", + " [ 1.21520976e-02],\n", + " [-3.58369858e-02],\n", + " [ 3.10432079e-02],\n", + " [-1.18561132e-02],\n", + " [ 2.04218321e-02],\n", + " [ 2.71987292e-02],\n", + " [-2.06255513e-02],\n", + " [ 2.37607497e-02],\n", + " [-9.66372114e-02],\n", + " [ 2.45842214e-02],\n", + " [ 1.74269686e-02],\n", + " [-7.14823852e-02],\n", + " [-1.56388942e-02],\n", + " [-1.73886629e-02],\n", + " [ 7.90299770e-05],\n", + " [-3.78200199e-03],\n", + " [-5.91347357e-02],\n", + " [ 4.89278786e-03],\n", + " [ 1.74365816e-02],\n", + " [ 2.46553403e-02],\n", + " [-1.73623089e-02],\n", + " [ 6.93371592e-03],\n", + " [ 1.86197364e-02],\n", + " [-1.70149390e-02],\n", + " [-2.09023316e-02],\n", + " [ 7.48604579e-03],\n", + " [ 4.12977148e-02],\n", + " [-1.17524633e-02],\n", + " [ 2.73902404e-03],\n", + " [ 1.30311459e-03],\n", + " [-7.67690052e-03],\n", + " [ 2.45318680e-02],\n", + " [ 2.90422234e-02],\n", + " [-9.92625995e-03],\n", + " [-2.33534214e-02],\n", + " [ 2.34703394e-02],\n", + " [ 7.31076017e-03],\n", + " [ 3.92257648e-02],\n", + " [ 2.00077584e-02],\n", + " [-2.22877249e-02],\n", + " [-4.70377214e-03],\n", + " [-1.60410133e-02],\n", + " [-3.88202775e-02],\n", + " [ 2.00055003e-02],\n", + " [-1.57081156e-02],\n", + " [ 4.96295138e-02],\n", + " [ 5.27412603e-03],\n", + " [ 1.44900413e-02],\n", + " [ 1.52035816e-03],\n", + " [ 1.04590787e-02],\n", + " [-1.27174410e-02],\n", + " [-1.27062697e-02],\n", + " [-2.47312584e-02],\n", + " [-5.46189675e-03],\n", + " [-1.11128760e-02],\n", + " [-2.88804396e-04],\n", + " [-1.12680899e-02],\n", + " [ 1.20104991e-02],\n", + " [-2.90428509e-02],\n", + " [ 1.11240504e-02],\n", + " [-1.51455378e-02],\n", + " [ 1.22908503e-03],\n", + " [-3.24554796e-02],\n", + " [-1.24319487e-04],\n", + " [-6.69850302e-03],\n", + " [-2.43887167e-02],\n", + " [ 3.24296274e-02],\n", + " [ 4.12166266e-02],\n", + " [-1.95243972e-02],\n", + " [-2.43649165e-02],\n", + " [ 3.25305096e-02],\n", + " [ 1.63693726e-02],\n", + " [ 1.61266815e-02],\n", + " [-4.28627655e-02],\n", + " [-2.93948356e-02],\n", + " [-4.61409280e-03],\n", + " [ 6.79405742e-03],\n", + " [-3.86272615e-03],\n", + " [-1.69203783e-03],\n", + " [ 1.13857154e-02],\n", + " [-1.66042552e-02],\n", + " [-1.66380988e-02],\n", + " [ 1.89680518e-02],\n", + " [ 2.01367281e-02],\n", + " [-2.27644043e-02],\n", + " [-1.12287899e-02],\n", + " [-3.23130733e-04],\n", + " [-1.07827647e-02],\n", + " [ 8.02841544e-03],\n", + " [-8.71656137e-03],\n", + " [-2.52336119e-02],\n", + " [ 8.65599862e-03],\n", + " [ 1.05931100e-02],\n", + " [ 2.80799690e-02],\n", + " [-2.82971017e-02],\n", + " [ 1.77435499e-02],\n", + " [ 6.92332531e-03],\n", + " [ 2.66769083e-02],\n", + " [-5.61462970e-03],\n", + " [ 3.99426882e-03],\n", + " [ 2.21242617e-02],\n", + " [ 3.59846977e-03],\n", + " [-2.65067703e-02],\n", + " [-3.06645263e-02],\n", + " [ 1.50708088e-02],\n", + " [ 6.32014491e-03],\n", + " [ 1.44999272e-02],\n", + " [-2.89086592e-03],\n", + " [ 1.07007568e-02],\n", + " [-3.67309789e-02],\n", + " [-2.17517220e-02],\n", + " [ 3.32429758e-02],\n", + " [ 1.95256200e-02],\n", + " [ 1.49965842e-03],\n", + " [-1.35060096e-02],\n", + " [-3.03060006e-02],\n", + " [ 1.17423278e-02],\n", + " [ 1.60729416e-02],\n", + " [ 4.68263191e-03],\n", + " [ 8.43515417e-03],\n", + " [ 1.06477922e-02],\n", + " [-1.44629828e-02],\n", + " [-2.13470923e-02],\n", + " [-9.72381234e-03],\n", + " [ 4.42189194e-02],\n", + " [-2.77174969e-02],\n", + " [-2.08965367e-02],\n", + " [-3.43601972e-02],\n", + " [ 6.29491396e-03],\n", + " [-3.34189940e-03],\n", + " [-1.84664669e-02],\n", + " [-1.03655723e-02]]), array([[ 2.50142841e-02],\n", + " [-3.42758937e-02],\n", + " [ 3.47441569e-02],\n", + " [ 1.43971638e-02],\n", + " [-1.26606545e-02],\n", + " [-2.61136873e-02],\n", + " [-7.78988354e-03],\n", + " [ 6.08938412e-02],\n", + " [ 5.29444070e-03],\n", + " [-4.84117763e-02],\n", + " [ 1.86303642e-02],\n", + " [ 1.06036627e-02],\n", + " [-1.07456643e-02],\n", + " [-3.82212816e-03],\n", + " [-6.17120484e-03],\n", + " [-4.47772624e-02],\n", + " [-1.12310134e-02],\n", + " [ 4.46878323e-03],\n", + " [ 3.48909093e-02],\n", + " [ 8.42303283e-04],\n", + " [ 9.71441246e-03],\n", + " [ 2.22324403e-02],\n", + " [-2.08973383e-02],\n", + " [-2.21027358e-02],\n", + " [ 5.75952836e-02],\n", + " [ 4.64969758e-02],\n", + " [-3.82189167e-03],\n", + " [-2.71391759e-02],\n", + " [-2.21877164e-02],\n", + " [-5.60614984e-02],\n", + " [ 1.50505270e-02],\n", + " [ 3.11705193e-02],\n", + " [ 1.65792504e-02],\n", + " [ 5.78586025e-03],\n", + " [ 9.76214755e-03],\n", + " [ 4.81972819e-03],\n", + " [-9.92064251e-03],\n", + " [ 1.85115011e-02],\n", + " [-9.28667732e-03],\n", + " [-2.17725955e-02],\n", + " [-2.51531049e-02],\n", + " [-3.01849926e-02],\n", + " [-2.26862040e-02],\n", + " [-4.97510220e-02],\n", + " [-2.34395793e-02],\n", + " [ 2.26315297e-02],\n", + " [-2.43309024e-02],\n", + " [-2.79272320e-02],\n", + " [-3.29656171e-02],\n", + " [-2.82127741e-03],\n", + " [-3.02305875e-02],\n", + " [ 2.68345039e-02],\n", + " [ 4.30939710e-03],\n", + " [ 1.32394584e-02],\n", + " [-5.00781347e-03],\n", + " [-2.27484866e-02],\n", + " [ 4.37854548e-02],\n", + " [-3.91910172e-02],\n", + " [ 2.09623550e-02],\n", + " [-4.34768464e-02],\n", + " [ 1.86355975e-02],\n", + " [ 1.54658519e-02],\n", + " [ 1.18274559e-02],\n", + " [ 1.99711654e-02],\n", + " [-3.62118827e-02],\n", + " [-2.77084250e-02],\n", + " [ 2.30781028e-02],\n", + " [-4.44421366e-02],\n", + " [ 1.07989880e-02],\n", + " [ 4.42895438e-02],\n", + " [-5.67431216e-03],\n", + " [-8.70466807e-03],\n", + " [ 1.41204969e-02],\n", + " [-6.41355137e-02],\n", + " [ 1.48231473e-02],\n", + " [-7.77996714e-03],\n", + " [ 2.48436309e-02],\n", + " [ 5.79119519e-03],\n", + " [ 2.84736813e-02],\n", + " [-3.43402145e-02],\n", + " [ 2.02125028e-02],\n", + " [-6.87171455e-03],\n", + " [ 5.59207502e-03],\n", + " [ 1.30518197e-02],\n", + " [ 1.58844570e-02],\n", + " [ 2.76113680e-03],\n", + " [ 1.96706636e-02],\n", + " [ 2.98303830e-02],\n", + " [-3.69430840e-04],\n", + " [-5.08525814e-02],\n", + " [ 2.07354565e-02],\n", + " [-3.14961819e-02],\n", + " [ 2.22486117e-02],\n", + " [ 1.52345855e-02],\n", + " [-5.88869486e-03],\n", + " [-2.55543844e-02],\n", + " [ 1.60482182e-03],\n", + " [-1.55155469e-02],\n", + " [ 2.19796439e-02],\n", + " [-5.82650544e-03],\n", + " [-4.78927712e-02],\n", + " [ 8.56248875e-03],\n", + " [-3.91148646e-02],\n", + " [ 5.61986869e-03],\n", + " [-4.42777540e-02],\n", + " [-6.28538068e-03],\n", + " [ 1.10476759e-02],\n", + " [-2.38015368e-02],\n", + " [ 3.69273020e-02],\n", + " [ 2.37568665e-02],\n", + " [-2.01641023e-02],\n", + " [ 7.19961377e-03],\n", + " [-1.51841599e-02],\n", + " [-3.43610756e-03],\n", + " [ 1.66602301e-02],\n", + " [-2.77577567e-02],\n", + " [ 1.60050159e-02],\n", + " [-1.96514651e-02],\n", + " [ 2.82074387e-02],\n", + " [ 3.13691947e-02],\n", + " [ 1.17060522e-04],\n", + " [ 3.60677391e-03],\n", + " [-2.62871500e-02],\n", + " [ 6.56603766e-02],\n", + " [-2.08965112e-02],\n", + " [ 5.97987059e-02],\n", + " [ 1.63352782e-03],\n", + " [-8.11536012e-03],\n", + " [-2.95699881e-02],\n", + " [ 1.13097714e-02],\n", + " [-1.73590949e-02],\n", + " [-1.47885913e-02],\n", + " [ 2.66208700e-02],\n", + " [-3.61075127e-04],\n", + " [ 4.61225419e-02],\n", + " [ 9.32277038e-05],\n", + " [ 4.77358721e-03],\n", + " [-2.64604621e-02],\n", + " [ 2.02094721e-02],\n", + " [-1.70998605e-02],\n", + " [-1.72628309e-02],\n", + " [ 5.71683199e-03],\n", + " [-3.03408734e-02],\n", + " [ 7.79906981e-03],\n", + " [ 6.14099470e-03],\n", + " [ 1.76521602e-02],\n", + " [-9.49668592e-04],\n", + " [ 1.72923577e-02],\n", + " [ 7.23097523e-02],\n", + " [-4.73678492e-03],\n", + " [-2.43547135e-02],\n", + " [ 4.93013460e-02],\n", + " [-5.10913049e-02],\n", + " [-6.32001109e-02],\n", + " [ 2.79541214e-02],\n", + " [ 3.55160291e-02],\n", + " [ 7.67223823e-03],\n", + " [ 4.44109208e-02],\n", + " [-2.30431742e-02],\n", + " [-3.44067780e-02],\n", + " [ 2.59988628e-02],\n", + " [-3.51230580e-02],\n", + " [ 3.49199739e-02],\n", + " [ 9.23856588e-03],\n", + " [-3.61601956e-02],\n", + " [-3.54745549e-02],\n", + " [-1.45804226e-02],\n", + " [ 6.86002538e-03],\n", + " [-5.78802060e-03],\n", + " [ 3.71721553e-02],\n", + " [ 2.31033116e-02],\n", + " [ 3.10893933e-03],\n", + " [ 8.70518250e-03],\n", + " [-4.57266641e-02],\n", + " [ 3.80878065e-02],\n", + " [ 6.18732228e-03],\n", + " [ 4.79684281e-04],\n", + " [ 1.11520573e-02],\n", + " [-3.31185744e-02],\n", + " [ 4.68683556e-02],\n", + " [-1.49874689e-02],\n", + " [-3.44729346e-02],\n", + " [-2.48734670e-02],\n", + " [ 7.37530889e-03],\n", + " [ 1.33301345e-02],\n", + " [ 3.15129755e-02],\n", + " [-6.19440819e-04],\n", + " [ 5.33935928e-02],\n", + " [ 3.71109788e-04],\n", + " [ 1.24270359e-02],\n", + " [-3.27045616e-02],\n", + " [ 3.90640081e-02],\n", + " [-3.41287328e-02],\n", + " [-4.29333854e-02],\n", + " [-2.29024878e-02],\n", + " [-1.69262862e-02],\n", + " [ 2.53205794e-02],\n", + " [-3.42092723e-03],\n", + " [-1.68694684e-02],\n", + " [-1.96152958e-03],\n", + " [-5.16237730e-03],\n", + " [ 2.49792128e-02],\n", + " [-2.93539208e-02],\n", + " [-2.30017851e-02],\n", + " [ 1.75209120e-02],\n", + " [ 2.85102681e-02],\n", + " [-2.98054721e-02],\n", + " [ 4.21270798e-02],\n", + " [-3.79042508e-02],\n", + " [-1.79329150e-02],\n", + " [ 2.69714184e-02],\n", + " [-7.65829778e-03],\n", + " [ 5.34366595e-02],\n", + " [-2.50243872e-02],\n", + " [-8.93702184e-03],\n", + " [-2.60786570e-02],\n", + " [ 3.42484598e-03],\n", + " [ 1.79377490e-03],\n", + " [-1.33919723e-02],\n", + " [ 1.83020755e-02],\n", + " [ 1.98001944e-02],\n", + " [ 6.73833164e-02],\n", + " [-2.12604091e-02],\n", + " [-2.02177766e-03],\n", + " [ 1.73243791e-02],\n", + " [-3.38738521e-02],\n", + " [-3.10173733e-02],\n", + " [ 3.48396547e-02],\n", + " [-1.03668042e-02],\n", + " [-2.82860271e-02],\n", + " [-3.14018262e-02],\n", + " [ 5.95991982e-02],\n", + " [-7.27377274e-03],\n", + " [ 2.51962673e-03],\n", + " [ 2.45368246e-02],\n", + " [-4.38233197e-02],\n", + " [ 1.73756713e-02],\n", + " [ 1.26303213e-03],\n", + " [-1.59406834e-02],\n", + " [-1.43064149e-02],\n", + " [-6.30846382e-03],\n", + " [-8.91552224e-03],\n", + " [-6.53103599e-03],\n", + " [ 2.13170079e-02],\n", + " [-1.64386725e-02],\n", + " [ 4.88061713e-02],\n", + " [-2.26740219e-02],\n", + " [ 1.93679955e-03],\n", + " [ 4.48509352e-02],\n", + " [ 6.95172314e-02],\n", + " [-1.15439364e-02],\n", + " [ 2.57775474e-02],\n", + " [ 3.37792243e-03],\n", + " [-4.88007772e-02],\n", + " [ 2.41316694e-03],\n", + " [ 1.82478569e-02],\n", + " [-6.53753435e-03],\n", + " [ 3.55267452e-02],\n", + " [-6.64407968e-04],\n", + " [ 2.61443646e-02],\n", + " [-2.24171015e-02],\n", + " [-3.10643198e-02],\n", + " [-4.67564623e-04],\n", + " [ 2.70659133e-02],\n", + " [ 3.42294895e-02],\n", + " [ 1.24537601e-02],\n", + " [ 4.59116402e-03],\n", + " [-9.06253495e-03],\n", + " [ 3.06714676e-02],\n", + " [-5.27384384e-03],\n", + " [-4.72307417e-02],\n", + " [-4.81553034e-02],\n", + " [ 1.72003328e-02],\n", + " [-5.78547317e-02],\n", + " [-1.10847101e-02],\n", + " [ 2.79296032e-02],\n", + " [-3.78801502e-02],\n", + " [ 4.14781452e-02],\n", + " [ 3.34212512e-02],\n", + " [ 3.78235072e-04],\n", + " [-3.21171769e-02],\n", + " [ 3.34742705e-02],\n", + " [-1.77152444e-02],\n", + " [-2.87723570e-02],\n", + " [ 3.08189708e-02],\n", + " [-3.18428519e-02],\n", + " [-4.15655531e-02],\n", + " [ 1.36175995e-04],\n", + " [-2.67928248e-02],\n", + " [ 1.03131059e-02],\n", + " [ 9.49765312e-03],\n", + " [-3.85137668e-03],\n", + " [-1.44831503e-02],\n", + " [ 1.67389811e-04],\n", + " [-8.91762199e-03],\n", + " [ 2.05854573e-02],\n", + " [ 3.34967999e-03],\n", + " [ 2.75580078e-03],\n", + " [-1.24999768e-02],\n", + " [ 1.92162764e-02]]), array([[-0.04063365],\n", + " [ 0.01500192],\n", + " [ 0.01155429],\n", + " [ 0.01084445],\n", + " [-0.02025007],\n", + " [ 0.00970291],\n", + " [-0.01869824],\n", + " [ 0.03025998],\n", + " [ 0.04717784],\n", + " [ 0.02069029],\n", + " [-0.00322925],\n", + " [-0.03524307],\n", + " [ 0.0583552 ],\n", + " [ 0.04365331],\n", + " [ 0.05732471],\n", + " [-0.01572487],\n", + " [ 0.02608565],\n", + " [-0.02453298],\n", + " [ 0.06522083],\n", + " [ 0.02926387],\n", + " [-0.02268049],\n", + " [-0.04218387],\n", + " [ 0.00430445],\n", + " [-0.00291497],\n", + " [ 0.02114237],\n", + " [ 0.00359234],\n", + " [ 0.01238629],\n", + " [-0.05348402],\n", + " [ 0.005845 ],\n", + " [ 0.06022076]]), array([[-0.17365484],\n", + " [-0.09489937],\n", + " [-0.12895467],\n", + " [-0.1621321 ],\n", + " [-0.1672037 ],\n", + " [-0.18413244],\n", + " [-0.18523752],\n", + " [-0.18385742],\n", + " [ 0.15470179],\n", + " [-0.16888425],\n", + " [-0.09014148],\n", + " [ 0.11352326],\n", + " [ 0.1927987 ],\n", + " [-0.16811378],\n", + " [-0.18508637],\n", + " [ 0.18735534],\n", + " [ 0.18322863],\n", + " [ 0.17512173],\n", + " [ 0.0838658 ],\n", + " [-0.17509903],\n", + " [-0.14821157],\n", + " [ 0.14748116],\n", + " [ 0.02902309],\n", + " [ 0.1668159 ],\n", + " [ 0.13671752],\n", + " [-0.09753125],\n", + " [-0.17599583],\n", + " [-0.16613489],\n", + " [-0.18254197],\n", + " [-0.17835342],\n", + " [-0.17021598]])]\n" ] } ], "source": [ - "# GENERALIZATION\n", + "print(mlp.get_weights())\n", + "print(mlp.get_bias())" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# LOAD FEATURES\n", "\n", "# load params from file\n", "res = load_params(\"weights_0-815_2018-01-16_22:36:45.params\")\n", @@ -777,9 +2075,53 @@ "# set MLP\n", "mlp.set_flatten_weights(W)\n", "mlp.set_flatten_bias(b)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "recognized: 'P'\n", + "expected: 'P'\n", + "recognized: 'r'\n", + "expected: 'r'\n", + "recognized: 'l'\n", + "expected: 'l'\n", + "recognized: 'd'\n", + "expected: 'd'\n" + ] + } + ], + "source": [ + "# GENERALIZATION\n", "\n", - "# Compute outputs\n", - "e = batch[0][1][0]\n", + "def recognize_letter(num_letter):\n", + " # Compute outputs\n", + " e = batch[0][1][num_letter]\n", + " res = output_to_hard(mlp.compute_outputs())\n", + " print(\"recognized: '{}'\".format(data.get_letter_of_vector(res[:,num_letter].flatten().tolist())))\n", + " print(\"expected: '{}'\".format(data.get_letter_of_vector(Y.T[:,num_letter].flatten().tolist())))\n", + "\n", + "recognize_letter(0)\n", + "recognize_letter(1)\n", + "recognize_letter(12)\n", + "recognize_letter(25)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "num_letter = 15\n", + "e = batch[0][1][num_letter]\n", "#X = np.array(batch[0][0][0]).reshape(1, len(batch[0][0][0]))\n", "\n", "print(\"expected: '{}'\".format(data.get_letter_of_vector(e)))\n", @@ -789,12 +2131,90 @@ "print(mlp.compute_outputs())\n", "res = output_to_hard(mlp.compute_outputs())\n", "print(res)\n", - "print(res[:,0].flatten().tolist())\n", + "print(res[:,num_letter].flatten().tolist())\n", "# check the first input image\n", - "print(\"recognized: '{}'\".format(data.get_letter_of_vector(res[:,0].flatten().tolist())))\n", - "print(\"expected: '{}'\".format(data.get_letter_of_vector(Y.T[:,0].flatten().tolist())))\n", - "print(res[:,0])\n", - "print(Y.T[:,0])" + "print(\"recognized: '{}'\".format(data.get_letter_of_vector(res[:,num_letter].flatten().tolist())))\n", + "print(\"expected: '{}'\".format(data.get_letter_of_vector(Y.T[:,num_letter].flatten().tolist())))\n", + "print(res[:,num_letter])\n", + "print(Y.T[:,num_letter])" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n", + "lenX,m 300 1\n", + "[[0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [1.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]]\n" + ] + }, + { + "ename": "ValueError", + "evalue": "The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\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 15\u001b[0m \u001b[0mr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_recognized_char\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"data/ext_ln0_car0.pgm\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 16\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 17\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_letter_of_vector\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 18\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/devel/machine_learning/deep_learning/ocr_mlp/letters.py\u001b[0m in \u001b[0;36mget_letter_of_vector\u001b[0;34m(self, vector)\u001b[0m\n\u001b[1;32m 104\u001b[0m \u001b[0mret\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 105\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mletter\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvec\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mletter_to_vector\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitems\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[0;32m--> 106\u001b[0;31m \u001b[0;32mif\u001b[0m \u001b[0mvec\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mvector\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 107\u001b[0m \u001b[0mret\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mletter\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 108\u001b[0m \u001b[0;32mbreak\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mValueError\u001b[0m: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()" + ] + } + ], + "source": [ + "# RECOGNIZE IMAGE\n", + "from pnmimage import PnmImage\n", + "\n", + "def get_recognized_char(filename):\n", + " img = PnmImage()\n", + " if img.load(filename) == False:\n", + " print(\"ERROR: failed to open '{}'\".format(filename))\n", + " image_size = img.get_size()\n", + " idata = img.get_data_bin()\n", + " print(idata)\n", + " output = mlp.compute_outputs(idata, 1)\n", + " h = output_to_hard(output)\n", + " return h\n", + "\n", + "r = get_recognized_char(\"data/ext_ln0_car0.pgm\")\n", + "print(r)\n", + "print(data.get_letter_of_vector(r))\n", + "\n" ] }, {