machinelearning

Machine learning code
git clone git://git.laack.co/machinelearning.git
Log | Files | Refs

NeuralNetworkForSorting.ipynb (25242B)


      1 {
      2  "cells": [
      3   {
      4    "cell_type": "code",
      5    "execution_count": 86,
      6    "metadata": {},
      7    "outputs": [],
      8    "source": [
      9     "import keras\n",
     10     "import numpy as np\n",
     11     "\n",
     12     "arrs = np.random.rand(1000000, 10)"
     13    ]
     14   },
     15   {
     16    "cell_type": "code",
     17    "execution_count": 87,
     18    "metadata": {},
     19    "outputs": [],
     20    "source": [
     21     "X = arrs.copy()\n",
     22     "y = arrs\n",
     23     "for i in range(0, len(arrs)):\n",
     24     "    arrs[i].sort()\n",
     25     "    y[i] = arrs[i]"
     26    ]
     27   },
     28   {
     29    "cell_type": "code",
     30    "execution_count": 88,
     31    "metadata": {},
     32    "outputs": [],
     33    "source": [
     34     "model = keras.Sequential(layers=[\n",
     35     "    keras.layers.Input((10,)),\n",
     36     "    keras.layers.Dense(256, 'relu'),\n",
     37     "    keras.layers.Dense(256, 'relu'),\n",
     38     "    keras.layers.Dense(256, 'relu'),\n",
     39     "    keras.layers.Dense(256, 'relu'),\n",
     40     "    keras.layers.Dense(256, 'relu'),\n",
     41     "    keras.layers.Dense(10, 'relu')\n",
     42     "])\n",
     43     "\n",
     44     "model.compile(optimizer='adam', loss='mse')"
     45    ]
     46   },
     47   {
     48    "cell_type": "code",
     49    "execution_count": 89,
     50    "metadata": {},
     51    "outputs": [
     52     {
     53      "name": "stdout",
     54      "output_type": "stream",
     55      "text": [
     56       "Epoch 1/100\n",
     57       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 2ms/step - loss: 0.0856\n",
     58       "Epoch 2/100\n",
     59       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m24s\u001b[0m 2ms/step - loss: 0.0427\n",
     60       "Epoch 3/100\n",
     61       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 2ms/step - loss: 0.0426\n",
     62       "Epoch 4/100\n",
     63       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 2ms/step - loss: 0.0055\n",
     64       "Epoch 5/100\n",
     65       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 2ms/step - loss: 9.9785e-05\n",
     66       "Epoch 6/100\n",
     67       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 2ms/step - loss: 8.7118e-05\n",
     68       "Epoch 7/100\n",
     69       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 2ms/step - loss: 7.8787e-05\n",
     70       "Epoch 8/100\n",
     71       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 2ms/step - loss: 7.3314e-05\n",
     72       "Epoch 9/100\n",
     73       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 2ms/step - loss: 6.8400e-05\n",
     74       "Epoch 10/100\n",
     75       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 2ms/step - loss: 6.3560e-05\n",
     76       "Epoch 11/100\n",
     77       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m23s\u001b[0m 2ms/step - loss: 6.0688e-05\n",
     78       "Epoch 12/100\n",
     79       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 5.7792e-05\n",
     80       "Epoch 13/100\n",
     81       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 5.5196e-05\n",
     82       "Epoch 14/100\n",
     83       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 5.3011e-05\n",
     84       "Epoch 15/100\n",
     85       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m41s\u001b[0m 2ms/step - loss: 5.0850e-05\n",
     86       "Epoch 16/100\n",
     87       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 4.9164e-05\n",
     88       "Epoch 17/100\n",
     89       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 4.7786e-05\n",
     90       "Epoch 18/100\n",
     91       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 4.6064e-05\n",
     92       "Epoch 19/100\n",
     93       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 4.4914e-05\n",
     94       "Epoch 20/100\n",
     95       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 4.3817e-05\n",
     96       "Epoch 21/100\n",
     97       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 4.2979e-05\n",
     98       "Epoch 22/100\n",
     99       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 4.2093e-05\n",
    100       "Epoch 23/100\n",
    101       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 4.1059e-05\n",
    102       "Epoch 24/100\n",
    103       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 4.0475e-05\n",
    104       "Epoch 25/100\n",
    105       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.9875e-05\n",
    106       "Epoch 26/100\n",
    107       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.9346e-05\n",
    108       "Epoch 27/100\n",
    109       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.8780e-05\n",
    110       "Epoch 28/100\n",
    111       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.8075e-05\n",
    112       "Epoch 29/100\n",
    113       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.7682e-05\n",
    114       "Epoch 30/100\n",
    115       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.7309e-05\n",
    116       "Epoch 31/100\n",
    117       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.6973e-05\n",
    118       "Epoch 32/100\n",
    119       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.6500e-05\n",
    120       "Epoch 33/100\n",
    121       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.6221e-05\n",
    122       "Epoch 34/100\n",
    123       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.5780e-05\n",
    124       "Epoch 35/100\n",
    125       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.5255e-05\n",
    126       "Epoch 36/100\n",
    127       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.4851e-05\n",
    128       "Epoch 37/100\n",
    129       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.4683e-05\n",
    130       "Epoch 38/100\n",
    131       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.4109e-05\n",
    132       "Epoch 39/100\n",
    133       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.3758e-05\n",
    134       "Epoch 40/100\n",
    135       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.3491e-05\n",
    136       "Epoch 41/100\n",
    137       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.3178e-05\n",
    138       "Epoch 42/100\n",
    139       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.2711e-05\n",
    140       "Epoch 43/100\n",
    141       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.2707e-05\n",
    142       "Epoch 44/100\n",
    143       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.2125e-05\n",
    144       "Epoch 45/100\n",
    145       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.2062e-05\n",
    146       "Epoch 46/100\n",
    147       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.1909e-05\n",
    148       "Epoch 47/100\n",
    149       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.1489e-05\n",
    150       "Epoch 48/100\n",
    151       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.1198e-05\n",
    152       "Epoch 49/100\n",
    153       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.1206e-05\n",
    154       "Epoch 50/100\n",
    155       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.0994e-05\n",
    156       "Epoch 51/100\n",
    157       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.0871e-05\n",
    158       "Epoch 52/100\n",
    159       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.0583e-05\n",
    160       "Epoch 53/100\n",
    161       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.0572e-05\n",
    162       "Epoch 54/100\n",
    163       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.0405e-05\n",
    164       "Epoch 55/100\n",
    165       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 3.0263e-05\n",
    166       "Epoch 56/100\n",
    167       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.9958e-05\n",
    168       "Epoch 57/100\n",
    169       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.9656e-05\n",
    170       "Epoch 58/100\n",
    171       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.9605e-05\n",
    172       "Epoch 59/100\n",
    173       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.9368e-05\n",
    174       "Epoch 60/100\n",
    175       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.9298e-05\n",
    176       "Epoch 61/100\n",
    177       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.9185e-05\n",
    178       "Epoch 62/100\n",
    179       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.9058e-05\n",
    180       "Epoch 63/100\n",
    181       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.8837e-05\n",
    182       "Epoch 64/100\n",
    183       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.8828e-05\n",
    184       "Epoch 65/100\n",
    185       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.8554e-05\n",
    186       "Epoch 66/100\n",
    187       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.8403e-05\n",
    188       "Epoch 67/100\n",
    189       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.8261e-05\n",
    190       "Epoch 68/100\n",
    191       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.7985e-05\n",
    192       "Epoch 69/100\n",
    193       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.8051e-05\n",
    194       "Epoch 70/100\n",
    195       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.7925e-05\n",
    196       "Epoch 71/100\n",
    197       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.7633e-05\n",
    198       "Epoch 72/100\n",
    199       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.7610e-05\n",
    200       "Epoch 73/100\n",
    201       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.7255e-05\n",
    202       "Epoch 74/100\n",
    203       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.7215e-05\n",
    204       "Epoch 75/100\n",
    205       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.6946e-05\n",
    206       "Epoch 76/100\n",
    207       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.6809e-05\n",
    208       "Epoch 77/100\n",
    209       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.6713e-05\n",
    210       "Epoch 78/100\n",
    211       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.6600e-05\n",
    212       "Epoch 79/100\n",
    213       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.6570e-05\n",
    214       "Epoch 80/100\n",
    215       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.6319e-05\n",
    216       "Epoch 81/100\n",
    217       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.6275e-05\n",
    218       "Epoch 82/100\n",
    219       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.5981e-05\n",
    220       "Epoch 83/100\n",
    221       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.6002e-05\n",
    222       "Epoch 84/100\n",
    223       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.5906e-05\n",
    224       "Epoch 85/100\n",
    225       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.5878e-05\n",
    226       "Epoch 86/100\n",
    227       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.5709e-05\n",
    228       "Epoch 87/100\n",
    229       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m41s\u001b[0m 2ms/step - loss: 2.5713e-05\n",
    230       "Epoch 88/100\n",
    231       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.5431e-05\n",
    232       "Epoch 89/100\n",
    233       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.5485e-05\n",
    234       "Epoch 90/100\n",
    235       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.5247e-05\n",
    236       "Epoch 91/100\n",
    237       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.5124e-05\n",
    238       "Epoch 92/100\n",
    239       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.5110e-05\n",
    240       "Epoch 93/100\n",
    241       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.4945e-05\n",
    242       "Epoch 94/100\n",
    243       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.4931e-05\n",
    244       "Epoch 95/100\n",
    245       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m41s\u001b[0m 2ms/step - loss: 2.4784e-05\n",
    246       "Epoch 96/100\n",
    247       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.4788e-05\n",
    248       "Epoch 97/100\n",
    249       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.4458e-05\n",
    250       "Epoch 98/100\n",
    251       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.4624e-05\n",
    252       "Epoch 99/100\n",
    253       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.4258e-05\n",
    254       "Epoch 100/100\n",
    255       "\u001b[1m10000/10000\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m22s\u001b[0m 2ms/step - loss: 2.4311e-05\n"
    256      ]
    257     },
    258     {
    259      "data": {
    260       "text/plain": [
    261        "<keras.src.callbacks.history.History at 0x7fde9d64eb10>"
    262       ]
    263      },
    264      "execution_count": 89,
    265      "metadata": {},
    266      "output_type": "execute_result"
    267     }
    268    ],
    269    "source": [
    270     "model.fit(batch_size=100, x=X, y=y, epochs=100)"
    271    ]
    272   },
    273   {
    274    "cell_type": "code",
    275    "execution_count": 91,
    276    "metadata": {},
    277    "outputs": [],
    278    "source": [
    279     "import keras\n",
    280     "import numpy as np\n",
    281     "\n",
    282     "X_val = np.random.rand(1000, 10)\n",
    283     "y_val = X_val.copy()\n",
    284     "\n",
    285     "for i in range(0, len(y_val)):\n",
    286     "    y_val[i].sort()"
    287    ]
    288   },
    289   {
    290    "cell_type": "code",
    291    "execution_count": 95,
    292    "metadata": {},
    293    "outputs": [
    294     {
    295      "name": "stdout",
    296      "output_type": "stream",
    297      "text": [
    298       "\u001b[1m32/32\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 2ms/step\n"
    299      ]
    300     }
    301    ],
    302    "source": [
    303     "y_pred = model.predict(X_val)"
    304    ]
    305   },
    306   {
    307    "cell_type": "code",
    308    "execution_count": 100,
    309    "metadata": {},
    310    "outputs": [
    311     {
    312      "data": {
    313       "text/plain": [
    314        "0.0035610408570671526"
    315       ]
    316      },
    317      "execution_count": 100,
    318      "metadata": {},
    319      "output_type": "execute_result"
    320     }
    321    ],
    322    "source": [
    323     "from sklearn.metrics import mean_absolute_error\n",
    324     "\n",
    325     "mean_absolute_error(y_pred=y_pred, y_true=y_val)"
    326    ]
    327   },
    328   {
    329    "cell_type": "code",
    330    "execution_count": 116,
    331    "metadata": {},
    332    "outputs": [
    333     {
    334      "name": "stdout",
    335      "output_type": "stream",
    336      "text": [
    337       "\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 13ms/step\n"
    338      ]
    339     },
    340     {
    341      "data": {
    342       "text/plain": [
    343        "array([[0.09922367, 0.20260817, 0.46617624, 0.5223598 , 0.47366232,\n",
    344        "        0.5015192 , 0.5033721 , 0.46761733, 0.54254556, 1.0096481 ]],\n",
    345        "      dtype=float32)"
    346       ]
    347      },
    348      "execution_count": 116,
    349      "metadata": {},
    350      "output_type": "execute_result"
    351     }
    352    ],
    353    "source": [
    354     "model.predict(x=np.array([[.2,.5,.5,.1,.5,1,.5,.5,.5,.5]]))"
    355    ]
    356   }
    357  ],
    358  "metadata": {
    359   "kernelspec": {
    360    "display_name": ".venv",
    361    "language": "python",
    362    "name": "python3"
    363   },
    364   "language_info": {
    365    "codemirror_mode": {
    366     "name": "ipython",
    367     "version": 3
    368    },
    369    "file_extension": ".py",
    370    "mimetype": "text/x-python",
    371    "name": "python",
    372    "nbconvert_exporter": "python",
    373    "pygments_lexer": "ipython3",
    374    "version": "3.11.2"
    375   }
    376  },
    377  "nbformat": 4,
    378  "nbformat_minor": 2
    379 }