Skip to content

Instantly share code, notes, and snippets.

@hugohadfield
Last active June 11, 2020 17:03
Show Gist options
  • Save hugohadfield/fc2c651ca413306fa51c38c76e47ad60 to your computer and use it in GitHub Desktop.
Save hugohadfield/fc2c651ca413306fa51c38c76e47ad60 to your computer and use it in GitHub Desktop.
keras-simplices.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "import matplotlib.pyplot as plt\nimport tensorflow as tf\n# Make tensorflow not take over the entire GPU memory\nfor gpu in tf.config.experimental.list_physical_devices('GPU'):\n tf.config.experimental.set_memory_growth(gpu, True)\nfrom tfga import GeometricAlgebra\nfrom tfga.layers import GeometricProductDense, TensorToGeometric, GeometricToTensor\nfrom scipy.spatial import ConvexHull",
"execution_count": 1,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "N_dim_polys = 3",
"execution_count": 2,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "def make_batch(batch_size):\n points = tf.random.uniform([batch_size, N_dim_polys+1, N_dim_polys], minval=-1, maxval=1)\n volumes = tf.convert_to_tensor([ConvexHull(b).area for b in points])\n return points, volumes\n\nnum_samples = 4\nsample_points, sample_areas = make_batch(num_samples)",
"execution_count": 3,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "ga = GeometricAlgebra([1]*N_dim_polys)\ns_indices = [0]\nv_indices = range(1,N_dim_polys+1)\nmv_indices = tf.range(ga.num_blades)\n\nmodel = tf.keras.Sequential([\n TensorToGeometric(ga, blade_indices=v_indices),\n GeometricProductDense(\n ga, units=64, activation=\"relu\",\n blade_indices_kernel=mv_indices,\n blade_indices_bias=mv_indices,\n ),\n GeometricProductDense(\n ga, units=64, activation=\"relu\",\n blade_indices_kernel=mv_indices,\n blade_indices_bias=mv_indices,\n ),\n GeometricProductDense(\n ga, units=1,\n blade_indices_kernel=mv_indices,\n blade_indices_bias=s_indices,\n ),\n GeometricToTensor(ga, blade_indices=s_indices)\n])\n\n# [B, 3, 2]\n\nprint(\"Samples:\", sample_points)\nprint(\"Model(Samples):\", model(sample_points))",
"execution_count": 4,
"outputs": [
{
"output_type": "stream",
"text": "Samples: tf.Tensor(\n[[[ 0.6855843 0.4005444 -0.00387168]\n [ 0.3788507 -0.15538001 -0.42055655]\n [ 0.22458315 0.09924793 0.48363733]\n [ 0.16680074 -0.8679545 0.08275914]]\n\n [[ 0.7890043 0.17708778 -0.6306751 ]\n [ 0.5987551 0.3284793 0.22486758]\n [-0.82686996 -0.47687578 -0.27009082]\n [ 0.7071843 -0.24392748 0.2471118 ]]\n\n [[ 0.9602318 0.6399479 -0.8113959 ]\n [ 0.83945084 -0.30900145 -0.14010167]\n [-0.43312144 0.5115454 -0.9052818 ]\n [ 0.804718 -0.516376 -0.17474937]]\n\n [[ 0.937022 0.8435757 -0.75594664]\n [ 0.64644814 0.65043736 0.07912064]\n [-0.50756454 -0.63878155 0.8798163 ]\n [ 0.3241756 -0.9893179 -0.8867481 ]]], shape=(4, 4, 3), dtype=float32)\nModel(Samples): tf.Tensor(\n[[[0.12047902]]\n\n [[0.08124953]]\n\n [[0.16056426]]\n\n [[0.20850858]]], shape=(4, 1, 1), dtype=float32)\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "train_points, train_areas = make_batch(1024)\ntest_points, test_areas = make_batch(128)\n\nmodel.compile(optimizer=\"Adam\", loss=\"mse\", metrics=[\"mae\"])\nmodel.fit(x=train_points, y=train_areas, validation_data=(test_points, test_areas), epochs=200)",
"execution_count": 5,
"outputs": [
{
"output_type": "stream",
"text": "Epoch 1/200\n32/32 [==============================] - 1s 32ms/step - loss: 1.4479 - mae: 0.9134 - val_loss: 0.7326 - val_mae: 0.6716\nEpoch 2/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.6051 - mae: 0.6216 - val_loss: 0.6098 - val_mae: 0.6135\nEpoch 3/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.4699 - mae: 0.5373 - val_loss: 0.5466 - val_mae: 0.5557\nEpoch 4/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.3675 - mae: 0.4713 - val_loss: 0.4702 - val_mae: 0.5137\nEpoch 5/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.2979 - mae: 0.4162 - val_loss: 0.4235 - val_mae: 0.4785\nEpoch 6/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.2554 - mae: 0.3863 - val_loss: 0.4130 - val_mae: 0.4509\nEpoch 7/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.2253 - mae: 0.3604 - val_loss: 0.3706 - val_mae: 0.4377\nEpoch 8/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.2082 - mae: 0.3495 - val_loss: 0.3701 - val_mae: 0.4307\nEpoch 9/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.1880 - mae: 0.3329 - val_loss: 0.3429 - val_mae: 0.4188\nEpoch 10/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.1736 - mae: 0.3222 - val_loss: 0.2967 - val_mae: 0.3972\nEpoch 11/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.1577 - mae: 0.3048 - val_loss: 0.2882 - val_mae: 0.3938\nEpoch 12/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.1417 - mae: 0.2927 - val_loss: 0.2726 - val_mae: 0.3795\nEpoch 13/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.1303 - mae: 0.2810 - val_loss: 0.2725 - val_mae: 0.3754\nEpoch 14/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.1248 - mae: 0.2769 - val_loss: 0.2614 - val_mae: 0.3720\nEpoch 15/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.1217 - mae: 0.2745 - val_loss: 0.3124 - val_mae: 0.4209\nEpoch 16/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.1266 - mae: 0.2798 - val_loss: 0.2923 - val_mae: 0.3890\nEpoch 17/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.1041 - mae: 0.2552 - val_loss: 0.2574 - val_mae: 0.3701\nEpoch 18/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0887 - mae: 0.2345 - val_loss: 0.2565 - val_mae: 0.3606\nEpoch 19/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0882 - mae: 0.2340 - val_loss: 0.2333 - val_mae: 0.3417\nEpoch 20/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0812 - mae: 0.2239 - val_loss: 0.2615 - val_mae: 0.3654\nEpoch 21/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0695 - mae: 0.2108 - val_loss: 0.2420 - val_mae: 0.3511\nEpoch 22/200\n32/32 [==============================] - 1s 24ms/step - loss: 0.0652 - mae: 0.2030 - val_loss: 0.2395 - val_mae: 0.3429\nEpoch 23/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0611 - mae: 0.1963 - val_loss: 0.2345 - val_mae: 0.3516\nEpoch 24/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0545 - mae: 0.1873 - val_loss: 0.2356 - val_mae: 0.3587\nEpoch 25/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0511 - mae: 0.1783 - val_loss: 0.2196 - val_mae: 0.3346\nEpoch 26/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0465 - mae: 0.1741 - val_loss: 0.1954 - val_mae: 0.3338\nEpoch 27/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0421 - mae: 0.1654 - val_loss: 0.2107 - val_mae: 0.3398\nEpoch 28/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0390 - mae: 0.1580 - val_loss: 0.2102 - val_mae: 0.3338\nEpoch 29/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0310 - mae: 0.1426 - val_loss: 0.2069 - val_mae: 0.3390\nEpoch 30/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0325 - mae: 0.1438 - val_loss: 0.2019 - val_mae: 0.3303\nEpoch 31/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0306 - mae: 0.1381 - val_loss: 0.1979 - val_mae: 0.3315\nEpoch 32/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0263 - mae: 0.1298 - val_loss: 0.1943 - val_mae: 0.3256\nEpoch 33/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0252 - mae: 0.1274 - val_loss: 0.2191 - val_mae: 0.3328\nEpoch 34/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0237 - mae: 0.1222 - val_loss: 0.2058 - val_mae: 0.3287\nEpoch 35/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0220 - mae: 0.1172 - val_loss: 0.2227 - val_mae: 0.3448\nEpoch 36/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0241 - mae: 0.1253 - val_loss: 0.1979 - val_mae: 0.3315\nEpoch 37/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0205 - mae: 0.1145 - val_loss: 0.1883 - val_mae: 0.3234\nEpoch 38/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0144 - mae: 0.0963 - val_loss: 0.1881 - val_mae: 0.3186\nEpoch 39/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0154 - mae: 0.1011 - val_loss: 0.1896 - val_mae: 0.3207\nEpoch 40/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0134 - mae: 0.0935 - val_loss: 0.1914 - val_mae: 0.3221\nEpoch 41/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0124 - mae: 0.0893 - val_loss: 0.2087 - val_mae: 0.3312\nEpoch 42/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0116 - mae: 0.0849 - val_loss: 0.1979 - val_mae: 0.3240\nEpoch 43/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0109 - mae: 0.0831 - val_loss: 0.1891 - val_mae: 0.3214\nEpoch 44/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0091 - mae: 0.0757 - val_loss: 0.1850 - val_mae: 0.3166\nEpoch 45/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0068 - mae: 0.0661 - val_loss: 0.1827 - val_mae: 0.3173\nEpoch 46/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0068 - mae: 0.0654 - val_loss: 0.1768 - val_mae: 0.3113\nEpoch 47/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0057 - mae: 0.0590 - val_loss: 0.1898 - val_mae: 0.3204\nEpoch 48/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0051 - mae: 0.0576 - val_loss: 0.1780 - val_mae: 0.3130\nEpoch 49/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0044 - mae: 0.0531 - val_loss: 0.1813 - val_mae: 0.3177\nEpoch 50/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0058 - mae: 0.0613 - val_loss: 0.1762 - val_mae: 0.3141\nEpoch 51/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0051 - mae: 0.0567 - val_loss: 0.1771 - val_mae: 0.3122\nEpoch 52/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0047 - mae: 0.0553 - val_loss: 0.1884 - val_mae: 0.3214\nEpoch 53/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0058 - mae: 0.0608 - val_loss: 0.1852 - val_mae: 0.3162\nEpoch 54/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0063 - mae: 0.0638 - val_loss: 0.1784 - val_mae: 0.3148\nEpoch 55/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0060 - mae: 0.0611 - val_loss: 0.1798 - val_mae: 0.3144\nEpoch 56/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0053 - mae: 0.0577 - val_loss: 0.1740 - val_mae: 0.3093\nEpoch 57/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0079 - mae: 0.0698 - val_loss: 0.1913 - val_mae: 0.3226\nEpoch 58/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0059 - mae: 0.0594 - val_loss: 0.1902 - val_mae: 0.3281\nEpoch 59/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0078 - mae: 0.0684 - val_loss: 0.1820 - val_mae: 0.3197\nEpoch 60/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0070 - mae: 0.0655 - val_loss: 0.1825 - val_mae: 0.3160\nEpoch 61/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0052 - mae: 0.0577 - val_loss: 0.1919 - val_mae: 0.3167\nEpoch 62/200\n",
"name": "stdout"
},
{
"output_type": "stream",
"text": "32/32 [==============================] - 1s 24ms/step - loss: 0.0046 - mae: 0.0541 - val_loss: 0.1809 - val_mae: 0.3171\nEpoch 63/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0039 - mae: 0.0489 - val_loss: 0.1847 - val_mae: 0.3182\nEpoch 64/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0041 - mae: 0.0508 - val_loss: 0.1790 - val_mae: 0.3130\nEpoch 65/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0047 - mae: 0.0548 - val_loss: 0.1738 - val_mae: 0.3139\nEpoch 66/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0043 - mae: 0.0508 - val_loss: 0.1844 - val_mae: 0.3137\nEpoch 67/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0033 - mae: 0.0450 - val_loss: 0.1705 - val_mae: 0.3082\nEpoch 68/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0031 - mae: 0.0436 - val_loss: 0.1805 - val_mae: 0.3156\nEpoch 69/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0026 - mae: 0.0403 - val_loss: 0.1794 - val_mae: 0.3152\nEpoch 70/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0026 - mae: 0.0401 - val_loss: 0.1778 - val_mae: 0.3143\nEpoch 71/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0036 - mae: 0.0473 - val_loss: 0.1822 - val_mae: 0.3172\nEpoch 72/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0035 - mae: 0.0462 - val_loss: 0.1811 - val_mae: 0.3169\nEpoch 73/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0034 - mae: 0.0464 - val_loss: 0.1672 - val_mae: 0.3111\nEpoch 74/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0092 - mae: 0.0756 - val_loss: 0.1707 - val_mae: 0.3107\nEpoch 75/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0166 - mae: 0.1001 - val_loss: 0.1661 - val_mae: 0.3142\nEpoch 76/200\n32/32 [==============================] - 1s 24ms/step - loss: 0.0154 - mae: 0.0961 - val_loss: 0.1841 - val_mae: 0.3225\nEpoch 77/200\n32/32 [==============================] - 1s 24ms/step - loss: 0.0134 - mae: 0.0885 - val_loss: 0.1947 - val_mae: 0.3233\nEpoch 78/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0117 - mae: 0.0845 - val_loss: 0.1731 - val_mae: 0.3073\nEpoch 79/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0114 - mae: 0.0830 - val_loss: 0.1878 - val_mae: 0.3206\nEpoch 80/200\n32/32 [==============================] - 1s 24ms/step - loss: 0.0103 - mae: 0.0790 - val_loss: 0.1744 - val_mae: 0.3126\nEpoch 81/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0124 - mae: 0.0877 - val_loss: 0.1789 - val_mae: 0.3151\nEpoch 82/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0206 - mae: 0.1119 - val_loss: 0.2282 - val_mae: 0.3466\nEpoch 83/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0215 - mae: 0.1144 - val_loss: 0.1988 - val_mae: 0.3261\nEpoch 84/200\n32/32 [==============================] - 1s 24ms/step - loss: 0.0268 - mae: 0.1297 - val_loss: 0.2040 - val_mae: 0.3449\nEpoch 85/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0194 - mae: 0.1080 - val_loss: 0.1739 - val_mae: 0.3132\nEpoch 86/200\n32/32 [==============================] - 1s 24ms/step - loss: 0.0117 - mae: 0.0854 - val_loss: 0.1740 - val_mae: 0.3169\nEpoch 87/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0089 - mae: 0.0745 - val_loss: 0.1691 - val_mae: 0.3108\nEpoch 88/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0103 - mae: 0.0804 - val_loss: 0.1768 - val_mae: 0.3190\nEpoch 89/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0081 - mae: 0.0706 - val_loss: 0.1738 - val_mae: 0.3158\nEpoch 90/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0068 - mae: 0.0651 - val_loss: 0.1826 - val_mae: 0.3171\nEpoch 91/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0048 - mae: 0.0540 - val_loss: 0.1690 - val_mae: 0.3123\nEpoch 92/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0040 - mae: 0.0503 - val_loss: 0.1701 - val_mae: 0.3045\nEpoch 93/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0035 - mae: 0.0463 - val_loss: 0.1861 - val_mae: 0.3188\nEpoch 94/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0030 - mae: 0.0430 - val_loss: 0.1749 - val_mae: 0.3122\nEpoch 95/200\n32/32 [==============================] - 1s 24ms/step - loss: 0.0030 - mae: 0.0433 - val_loss: 0.1759 - val_mae: 0.3141\nEpoch 96/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0040 - mae: 0.0490 - val_loss: 0.1699 - val_mae: 0.3125\nEpoch 97/200\n32/32 [==============================] - 1s 24ms/step - loss: 0.0033 - mae: 0.0443 - val_loss: 0.1695 - val_mae: 0.3042\nEpoch 98/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0023 - mae: 0.0376 - val_loss: 0.1682 - val_mae: 0.3044\nEpoch 99/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0019 - mae: 0.0343 - val_loss: 0.1682 - val_mae: 0.3061\nEpoch 100/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0015 - mae: 0.0304 - val_loss: 0.1718 - val_mae: 0.3067\nEpoch 101/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0018 - mae: 0.0330 - val_loss: 0.1746 - val_mae: 0.3117\nEpoch 102/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0016 - mae: 0.0311 - val_loss: 0.1714 - val_mae: 0.3074\nEpoch 103/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0021 - mae: 0.0352 - val_loss: 0.1712 - val_mae: 0.3077\nEpoch 104/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0039 - mae: 0.0498 - val_loss: 0.1694 - val_mae: 0.3075\nEpoch 105/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0063 - mae: 0.0612 - val_loss: 0.1788 - val_mae: 0.3100\nEpoch 106/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0070 - mae: 0.0643 - val_loss: 0.1898 - val_mae: 0.3173\nEpoch 107/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0061 - mae: 0.0611 - val_loss: 0.1633 - val_mae: 0.3024\nEpoch 108/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0067 - mae: 0.0632 - val_loss: 0.1913 - val_mae: 0.3251\nEpoch 109/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0098 - mae: 0.0769 - val_loss: 0.1614 - val_mae: 0.3039\nEpoch 110/200\n32/32 [==============================] - 1s 24ms/step - loss: 0.0127 - mae: 0.0875 - val_loss: 0.1807 - val_mae: 0.3206\nEpoch 111/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0162 - mae: 0.0991 - val_loss: 0.1997 - val_mae: 0.3248\nEpoch 112/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0145 - mae: 0.0919 - val_loss: 0.1780 - val_mae: 0.3191\nEpoch 113/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0174 - mae: 0.1052 - val_loss: 0.1748 - val_mae: 0.3108\nEpoch 114/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0156 - mae: 0.0969 - val_loss: 0.1701 - val_mae: 0.3069\nEpoch 115/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0122 - mae: 0.0848 - val_loss: 0.1617 - val_mae: 0.3035\nEpoch 116/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0082 - mae: 0.0707 - val_loss: 0.1631 - val_mae: 0.3009\nEpoch 117/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0100 - mae: 0.0791 - val_loss: 0.1744 - val_mae: 0.3071\nEpoch 118/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0110 - mae: 0.0816 - val_loss: 0.1535 - val_mae: 0.3008\nEpoch 119/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0072 - mae: 0.0655 - val_loss: 0.1605 - val_mae: 0.3007\nEpoch 120/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0043 - mae: 0.0512 - val_loss: 0.1716 - val_mae: 0.3070\nEpoch 121/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0043 - mae: 0.0499 - val_loss: 0.1551 - val_mae: 0.2981\nEpoch 122/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0065 - mae: 0.0627 - val_loss: 0.1516 - val_mae: 0.2959\nEpoch 123/200\n",
"name": "stdout"
},
{
"output_type": "stream",
"text": "32/32 [==============================] - 1s 22ms/step - loss: 0.0061 - mae: 0.0611 - val_loss: 0.1578 - val_mae: 0.2952\nEpoch 124/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0068 - mae: 0.0638 - val_loss: 0.1624 - val_mae: 0.3026\nEpoch 125/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0058 - mae: 0.0590 - val_loss: 0.1572 - val_mae: 0.2975\nEpoch 126/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0045 - mae: 0.0523 - val_loss: 0.1618 - val_mae: 0.2991\nEpoch 127/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0041 - mae: 0.0500 - val_loss: 0.1616 - val_mae: 0.2979\nEpoch 128/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0058 - mae: 0.0600 - val_loss: 0.1844 - val_mae: 0.3117\nEpoch 129/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0061 - mae: 0.0613 - val_loss: 0.1696 - val_mae: 0.3067\nEpoch 130/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0099 - mae: 0.0790 - val_loss: 0.1448 - val_mae: 0.2888\nEpoch 131/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0106 - mae: 0.0803 - val_loss: 0.1622 - val_mae: 0.3019\nEpoch 132/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0090 - mae: 0.0746 - val_loss: 0.1612 - val_mae: 0.3007\nEpoch 133/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0076 - mae: 0.0685 - val_loss: 0.1692 - val_mae: 0.3054\nEpoch 134/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0068 - mae: 0.0649 - val_loss: 0.1708 - val_mae: 0.3112\nEpoch 135/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0109 - mae: 0.0818 - val_loss: 0.1637 - val_mae: 0.3043\nEpoch 136/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0097 - mae: 0.0764 - val_loss: 0.1614 - val_mae: 0.3022\nEpoch 137/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0080 - mae: 0.0699 - val_loss: 0.1719 - val_mae: 0.3020\nEpoch 138/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0073 - mae: 0.0646 - val_loss: 0.1686 - val_mae: 0.3053\nEpoch 139/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0106 - mae: 0.0804 - val_loss: 0.1677 - val_mae: 0.3065\nEpoch 140/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0116 - mae: 0.0853 - val_loss: 0.1786 - val_mae: 0.3152\nEpoch 141/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0090 - mae: 0.0720 - val_loss: 0.1698 - val_mae: 0.3131\nEpoch 142/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0101 - mae: 0.0784 - val_loss: 0.1643 - val_mae: 0.3066\nEpoch 143/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0088 - mae: 0.0739 - val_loss: 0.1697 - val_mae: 0.3026\nEpoch 144/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0084 - mae: 0.0713 - val_loss: 0.1830 - val_mae: 0.3127\nEpoch 145/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0087 - mae: 0.0734 - val_loss: 0.1594 - val_mae: 0.3004\nEpoch 146/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0070 - mae: 0.0656 - val_loss: 0.1574 - val_mae: 0.2982\nEpoch 147/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0053 - mae: 0.0570 - val_loss: 0.1617 - val_mae: 0.2966\nEpoch 148/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0037 - mae: 0.0473 - val_loss: 0.1605 - val_mae: 0.3018\nEpoch 149/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0030 - mae: 0.0426 - val_loss: 0.1591 - val_mae: 0.2969\nEpoch 150/200\n32/32 [==============================] - 1s 25ms/step - loss: 0.0024 - mae: 0.0379 - val_loss: 0.1539 - val_mae: 0.2944\nEpoch 151/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0020 - mae: 0.0342 - val_loss: 0.1603 - val_mae: 0.2994\nEpoch 152/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0021 - mae: 0.0357 - val_loss: 0.1570 - val_mae: 0.2969\nEpoch 153/200\n32/32 [==============================] - 1s 24ms/step - loss: 0.0021 - mae: 0.0359 - val_loss: 0.1571 - val_mae: 0.2923\nEpoch 154/200\n32/32 [==============================] - 1s 24ms/step - loss: 0.0025 - mae: 0.0390 - val_loss: 0.1553 - val_mae: 0.2950\nEpoch 155/200\n32/32 [==============================] - 1s 25ms/step - loss: 0.0027 - mae: 0.0406 - val_loss: 0.1572 - val_mae: 0.2969\nEpoch 156/200\n32/32 [==============================] - 1s 24ms/step - loss: 0.0026 - mae: 0.0403 - val_loss: 0.1547 - val_mae: 0.2936\nEpoch 157/200\n32/32 [==============================] - 1s 24ms/step - loss: 0.0021 - mae: 0.0364 - val_loss: 0.1568 - val_mae: 0.2953\nEpoch 158/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0020 - mae: 0.0350 - val_loss: 0.1644 - val_mae: 0.2950\nEpoch 159/200\n32/32 [==============================] - 1s 24ms/step - loss: 0.0024 - mae: 0.0382 - val_loss: 0.1500 - val_mae: 0.2901\nEpoch 160/200\n32/32 [==============================] - 1s 25ms/step - loss: 0.0042 - mae: 0.0507 - val_loss: 0.1674 - val_mae: 0.3013\nEpoch 161/200\n32/32 [==============================] - 1s 26ms/step - loss: 0.0077 - mae: 0.0688 - val_loss: 0.1629 - val_mae: 0.3061\nEpoch 162/200\n32/32 [==============================] - 1s 25ms/step - loss: 0.0116 - mae: 0.0841 - val_loss: 0.1876 - val_mae: 0.3165\nEpoch 163/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0168 - mae: 0.1015 - val_loss: 0.1591 - val_mae: 0.3045\nEpoch 164/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0138 - mae: 0.0920 - val_loss: 0.1551 - val_mae: 0.2894\nEpoch 165/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0152 - mae: 0.0956 - val_loss: 0.1803 - val_mae: 0.3096\nEpoch 166/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0106 - mae: 0.0811 - val_loss: 0.1720 - val_mae: 0.3015\nEpoch 167/200\n32/32 [==============================] - 1s 25ms/step - loss: 0.0110 - mae: 0.0810 - val_loss: 0.1549 - val_mae: 0.3063\nEpoch 168/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0115 - mae: 0.0830 - val_loss: 0.1535 - val_mae: 0.2948\nEpoch 169/200\n32/32 [==============================] - 1s 24ms/step - loss: 0.0134 - mae: 0.0898 - val_loss: 0.1580 - val_mae: 0.3010\nEpoch 170/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0140 - mae: 0.0925 - val_loss: 0.1788 - val_mae: 0.3158\nEpoch 171/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0151 - mae: 0.0964 - val_loss: 0.1606 - val_mae: 0.2989\nEpoch 172/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0109 - mae: 0.0804 - val_loss: 0.1597 - val_mae: 0.2996\nEpoch 173/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0083 - mae: 0.0705 - val_loss: 0.1625 - val_mae: 0.3011\nEpoch 174/200\n32/32 [==============================] - 1s 24ms/step - loss: 0.0056 - mae: 0.0581 - val_loss: 0.1548 - val_mae: 0.2962\nEpoch 175/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0072 - mae: 0.0667 - val_loss: 0.1594 - val_mae: 0.2998\nEpoch 176/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0072 - mae: 0.0674 - val_loss: 0.1597 - val_mae: 0.2967\nEpoch 177/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0049 - mae: 0.0543 - val_loss: 0.1533 - val_mae: 0.2916\nEpoch 178/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0039 - mae: 0.0484 - val_loss: 0.1578 - val_mae: 0.2940\nEpoch 179/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0050 - mae: 0.0552 - val_loss: 0.1624 - val_mae: 0.3003\nEpoch 180/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0056 - mae: 0.0577 - val_loss: 0.1621 - val_mae: 0.2990\nEpoch 181/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0038 - mae: 0.0481 - val_loss: 0.1588 - val_mae: 0.2951\nEpoch 182/200\n32/32 [==============================] - 1s 26ms/step - loss: 0.0028 - mae: 0.0411 - val_loss: 0.1521 - val_mae: 0.2930\nEpoch 183/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0027 - mae: 0.0405 - val_loss: 0.1526 - val_mae: 0.2910\nEpoch 184/200\n",
"name": "stdout"
},
{
"output_type": "stream",
"text": "32/32 [==============================] - 1s 22ms/step - loss: 0.0029 - mae: 0.0415 - val_loss: 0.1618 - val_mae: 0.2942\nEpoch 185/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0026 - mae: 0.0391 - val_loss: 0.1551 - val_mae: 0.2924\nEpoch 186/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0021 - mae: 0.0347 - val_loss: 0.1527 - val_mae: 0.2919\nEpoch 187/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0025 - mae: 0.0393 - val_loss: 0.1511 - val_mae: 0.2882\nEpoch 188/200\n32/32 [==============================] - 1s 25ms/step - loss: 0.0032 - mae: 0.0441 - val_loss: 0.1511 - val_mae: 0.2886\nEpoch 189/200\n32/32 [==============================] - 1s 24ms/step - loss: 0.0030 - mae: 0.0422 - val_loss: 0.1502 - val_mae: 0.2838\nEpoch 190/200\n32/32 [==============================] - 1s 26ms/step - loss: 0.0028 - mae: 0.0405 - val_loss: 0.1581 - val_mae: 0.2934\nEpoch 191/200\n32/32 [==============================] - 1s 26ms/step - loss: 0.0030 - mae: 0.0417 - val_loss: 0.1538 - val_mae: 0.2918\nEpoch 192/200\n32/32 [==============================] - 1s 27ms/step - loss: 0.0047 - mae: 0.0538 - val_loss: 0.1609 - val_mae: 0.2963\nEpoch 193/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0044 - mae: 0.0513 - val_loss: 0.1578 - val_mae: 0.2961\nEpoch 194/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0033 - mae: 0.0446 - val_loss: 0.1610 - val_mae: 0.2926\nEpoch 195/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0027 - mae: 0.0407 - val_loss: 0.1462 - val_mae: 0.2900\nEpoch 196/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0031 - mae: 0.0424 - val_loss: 0.1557 - val_mae: 0.2916\nEpoch 197/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0032 - mae: 0.0438 - val_loss: 0.1515 - val_mae: 0.2865\nEpoch 198/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0041 - mae: 0.0505 - val_loss: 0.1560 - val_mae: 0.2916\nEpoch 199/200\n32/32 [==============================] - 1s 23ms/step - loss: 0.0064 - mae: 0.0621 - val_loss: 0.1598 - val_mae: 0.2997\nEpoch 200/200\n32/32 [==============================] - 1s 22ms/step - loss: 0.0070 - mae: 0.0649 - val_loss: 0.1500 - val_mae: 0.2923\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 5,
"data": {
"text/plain": "<tensorflow.python.keras.callbacks.History at 0x7fd22ce65610>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "print(model.summary())",
"execution_count": 6,
"outputs": [
{
"output_type": "stream",
"text": "Model: \"sequential\"\n_________________________________________________________________\nLayer (type) Output Shape Param # \n=================================================================\ntensor_to_geometric (TensorT multiple 0 \n_________________________________________________________________\ngeometric_product_dense (Geo multiple 2560 \n_________________________________________________________________\ngeometric_product_dense_1 (G multiple 33280 \n_________________________________________________________________\ngeometric_product_dense_2 (G multiple 513 \n_________________________________________________________________\ngeometric_to_tensor (Geometr multiple 0 \n=================================================================\nTotal params: 36,353\nTrainable params: 36,353\nNon-trainable params: 0\n_________________________________________________________________\nNone\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "predicted_sample_areas = model(sample_points)\n\nprint(predicted_sample_areas)\nprint(sample_areas)\n# fig, axes = plt.subplots(1, num_samples, figsize=(20, 5), sharex=True, sharey=True)\n# for i, ax in enumerate(axes):\n# points = sample_points[i]\n# area = sample_areas[i]\n# predicted_area = predicted_sample_areas[i]\n# center = tf.reduce_mean(points, axis=0)\n# ax.scatter(points[..., 0], points[..., 1])\n# ax.add_patch(plt.Polygon(points))\n# ax.annotate(\"Area: %.2f\" % area, center)\n# ax.annotate(\"Predicted area: %.2f\" % predicted_area, center + tf.constant([0, -0.1]))\n# fig.show()",
"execution_count": 7,
"outputs": [
{
"output_type": "stream",
"text": "tf.Tensor(\n[[[1.09953 ]]\n\n [[2.742231 ]]\n\n [[2.3544414]]\n\n [[4.648606 ]]], shape=(4, 1, 1), dtype=float32)\ntf.Tensor([1.37077 2.2705882 1.9919609 4.985156 ], shape=(4,), dtype=float32)\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "model_normal = tf.keras.Sequential([\n tf.keras.layers.Dense(64*N_dim_polys, activation=\"relu\"),\n tf.keras.layers.Dense(64*N_dim_polys, activation=\"relu\"),\n tf.keras.layers.Dense(1)\n])\n\nmodel_normal.compile(optimizer=\"Adam\", loss=\"mse\", metrics=[\"mae\"])\nmodel_normal.fit(x=tf.reshape(train_points, [-1, N_dim_polys*(N_dim_polys+1)]), \n y=train_areas, \n validation_data=(tf.reshape(test_points, [-1, N_dim_polys*(N_dim_polys+1)]), test_areas), \n epochs=200)",
"execution_count": 8,
"outputs": [
{
"output_type": "stream",
"text": "Epoch 1/200\n32/32 [==============================] - 0s 4ms/step - loss: 2.0659 - mae: 1.1191 - val_loss: 0.8042 - val_mae: 0.7092\nEpoch 2/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.7809 - mae: 0.6956 - val_loss: 0.7173 - val_mae: 0.6767\nEpoch 3/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.6644 - mae: 0.6438 - val_loss: 0.6875 - val_mae: 0.6598\nEpoch 4/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.5829 - mae: 0.6032 - val_loss: 0.6345 - val_mae: 0.6335\nEpoch 5/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.5144 - mae: 0.5727 - val_loss: 0.6006 - val_mae: 0.6073\nEpoch 6/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.4539 - mae: 0.5333 - val_loss: 0.5761 - val_mae: 0.5897\nEpoch 7/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.4027 - mae: 0.4986 - val_loss: 0.5272 - val_mae: 0.5579\nEpoch 8/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.3520 - mae: 0.4636 - val_loss: 0.4781 - val_mae: 0.5308\nEpoch 9/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.3043 - mae: 0.4262 - val_loss: 0.4543 - val_mae: 0.5033\nEpoch 10/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.2703 - mae: 0.4016 - val_loss: 0.4350 - val_mae: 0.4909\nEpoch 11/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.2480 - mae: 0.3843 - val_loss: 0.4192 - val_mae: 0.4795\nEpoch 12/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.2253 - mae: 0.3618 - val_loss: 0.3993 - val_mae: 0.4693\nEpoch 13/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.2093 - mae: 0.3498 - val_loss: 0.3946 - val_mae: 0.4618\nEpoch 14/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.2001 - mae: 0.3453 - val_loss: 0.3711 - val_mae: 0.4459\nEpoch 15/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.1856 - mae: 0.3266 - val_loss: 0.3518 - val_mae: 0.4389\nEpoch 16/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.1728 - mae: 0.3213 - val_loss: 0.3504 - val_mae: 0.4338\nEpoch 17/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.1559 - mae: 0.3039 - val_loss: 0.3565 - val_mae: 0.4358\nEpoch 18/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.1550 - mae: 0.3027 - val_loss: 0.3369 - val_mae: 0.4304\nEpoch 19/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.1409 - mae: 0.2896 - val_loss: 0.3457 - val_mae: 0.4318\nEpoch 20/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.1242 - mae: 0.2712 - val_loss: 0.3414 - val_mae: 0.4233\nEpoch 21/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.1242 - mae: 0.2713 - val_loss: 0.3336 - val_mae: 0.4163\nEpoch 22/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.1143 - mae: 0.2642 - val_loss: 0.3382 - val_mae: 0.4209\nEpoch 23/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.1046 - mae: 0.2519 - val_loss: 0.3172 - val_mae: 0.4077\nEpoch 24/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0949 - mae: 0.2388 - val_loss: 0.2933 - val_mae: 0.3999\nEpoch 25/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0840 - mae: 0.2281 - val_loss: 0.3081 - val_mae: 0.4039\nEpoch 26/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0778 - mae: 0.2177 - val_loss: 0.2961 - val_mae: 0.3988\nEpoch 27/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0749 - mae: 0.2170 - val_loss: 0.3042 - val_mae: 0.4021\nEpoch 28/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0664 - mae: 0.2031 - val_loss: 0.2882 - val_mae: 0.3846\nEpoch 29/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0607 - mae: 0.1935 - val_loss: 0.2755 - val_mae: 0.3822\nEpoch 30/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0589 - mae: 0.1914 - val_loss: 0.2518 - val_mae: 0.3839\nEpoch 31/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0505 - mae: 0.1766 - val_loss: 0.2587 - val_mae: 0.3777\nEpoch 32/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0444 - mae: 0.1685 - val_loss: 0.2648 - val_mae: 0.3740\nEpoch 33/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0424 - mae: 0.1636 - val_loss: 0.2609 - val_mae: 0.3727\nEpoch 34/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0378 - mae: 0.1547 - val_loss: 0.2440 - val_mae: 0.3617\nEpoch 35/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0345 - mae: 0.1460 - val_loss: 0.2373 - val_mae: 0.3550\nEpoch 36/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0295 - mae: 0.1359 - val_loss: 0.2384 - val_mae: 0.3685\nEpoch 37/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0299 - mae: 0.1380 - val_loss: 0.2430 - val_mae: 0.3681\nEpoch 38/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0248 - mae: 0.1259 - val_loss: 0.2398 - val_mae: 0.3578\nEpoch 39/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0213 - mae: 0.1165 - val_loss: 0.2401 - val_mae: 0.3550\nEpoch 40/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0206 - mae: 0.1140 - val_loss: 0.2298 - val_mae: 0.3560\nEpoch 41/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0177 - mae: 0.1053 - val_loss: 0.2354 - val_mae: 0.3618\nEpoch 42/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0158 - mae: 0.0998 - val_loss: 0.2331 - val_mae: 0.3591\nEpoch 43/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0147 - mae: 0.0962 - val_loss: 0.2270 - val_mae: 0.3589\nEpoch 44/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0125 - mae: 0.0898 - val_loss: 0.2319 - val_mae: 0.3589\nEpoch 45/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0117 - mae: 0.0859 - val_loss: 0.2270 - val_mae: 0.3553\nEpoch 46/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0108 - mae: 0.0834 - val_loss: 0.2271 - val_mae: 0.3529\nEpoch 47/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0093 - mae: 0.0765 - val_loss: 0.2240 - val_mae: 0.3506\nEpoch 48/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0081 - mae: 0.0707 - val_loss: 0.2190 - val_mae: 0.3488\nEpoch 49/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0081 - mae: 0.0718 - val_loss: 0.2177 - val_mae: 0.3425\nEpoch 50/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0068 - mae: 0.0659 - val_loss: 0.2135 - val_mae: 0.3446\nEpoch 51/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0061 - mae: 0.0616 - val_loss: 0.2148 - val_mae: 0.3447\nEpoch 52/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0064 - mae: 0.0630 - val_loss: 0.2159 - val_mae: 0.3459\nEpoch 53/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0053 - mae: 0.0572 - val_loss: 0.2230 - val_mae: 0.3435\nEpoch 54/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0049 - mae: 0.0553 - val_loss: 0.2207 - val_mae: 0.3472\nEpoch 55/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0044 - mae: 0.0519 - val_loss: 0.2132 - val_mae: 0.3484\nEpoch 56/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0040 - mae: 0.0503 - val_loss: 0.2148 - val_mae: 0.3451\nEpoch 57/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0035 - mae: 0.0466 - val_loss: 0.2182 - val_mae: 0.3485\nEpoch 58/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0031 - mae: 0.0442 - val_loss: 0.2200 - val_mae: 0.3475\nEpoch 59/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0028 - mae: 0.0416 - val_loss: 0.2168 - val_mae: 0.3408\nEpoch 60/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0024 - mae: 0.0393 - val_loss: 0.2110 - val_mae: 0.3427\nEpoch 61/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0021 - mae: 0.0359 - val_loss: 0.2148 - val_mae: 0.3462\nEpoch 62/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0020 - mae: 0.0357 - val_loss: 0.2128 - val_mae: 0.3419\nEpoch 63/200\n",
"name": "stdout"
},
{
"output_type": "stream",
"text": "32/32 [==============================] - 0s 2ms/step - loss: 0.0016 - mae: 0.0315 - val_loss: 0.2132 - val_mae: 0.3456\nEpoch 64/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0015 - mae: 0.0307 - val_loss: 0.2122 - val_mae: 0.3457\nEpoch 65/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0016 - mae: 0.0316 - val_loss: 0.2140 - val_mae: 0.3460\nEpoch 66/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0017 - mae: 0.0329 - val_loss: 0.2186 - val_mae: 0.3476\nEpoch 67/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0014 - mae: 0.0293 - val_loss: 0.2141 - val_mae: 0.3442\nEpoch 68/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0011 - mae: 0.0264 - val_loss: 0.2140 - val_mae: 0.3422\nEpoch 69/200\n32/32 [==============================] - 0s 2ms/step - loss: 9.1063e-04 - mae: 0.0238 - val_loss: 0.2155 - val_mae: 0.3426\nEpoch 70/200\n32/32 [==============================] - 0s 3ms/step - loss: 8.5517e-04 - mae: 0.0232 - val_loss: 0.2131 - val_mae: 0.3439\nEpoch 71/200\n32/32 [==============================] - 0s 3ms/step - loss: 9.8935e-04 - mae: 0.0249 - val_loss: 0.2143 - val_mae: 0.3423\nEpoch 72/200\n32/32 [==============================] - 0s 3ms/step - loss: 8.6319e-04 - mae: 0.0235 - val_loss: 0.2116 - val_mae: 0.3421\nEpoch 73/200\n32/32 [==============================] - 0s 2ms/step - loss: 7.0901e-04 - mae: 0.0210 - val_loss: 0.2133 - val_mae: 0.3418\nEpoch 74/200\n32/32 [==============================] - 0s 3ms/step - loss: 7.5054e-04 - mae: 0.0220 - val_loss: 0.2126 - val_mae: 0.3427\nEpoch 75/200\n32/32 [==============================] - 0s 2ms/step - loss: 6.7316e-04 - mae: 0.0202 - val_loss: 0.2129 - val_mae: 0.3427\nEpoch 76/200\n32/32 [==============================] - 0s 2ms/step - loss: 6.0447e-04 - mae: 0.0194 - val_loss: 0.2116 - val_mae: 0.3440\nEpoch 77/200\n32/32 [==============================] - 0s 3ms/step - loss: 5.4673e-04 - mae: 0.0187 - val_loss: 0.2153 - val_mae: 0.3424\nEpoch 78/200\n32/32 [==============================] - 0s 2ms/step - loss: 7.5937e-04 - mae: 0.0217 - val_loss: 0.2156 - val_mae: 0.3445\nEpoch 79/200\n32/32 [==============================] - 0s 3ms/step - loss: 6.2811e-04 - mae: 0.0196 - val_loss: 0.2138 - val_mae: 0.3443\nEpoch 80/200\n32/32 [==============================] - 0s 3ms/step - loss: 4.3719e-04 - mae: 0.0165 - val_loss: 0.2138 - val_mae: 0.3432\nEpoch 81/200\n32/32 [==============================] - 0s 3ms/step - loss: 4.8681e-04 - mae: 0.0173 - val_loss: 0.2147 - val_mae: 0.3432\nEpoch 82/200\n32/32 [==============================] - 0s 3ms/step - loss: 4.4927e-04 - mae: 0.0165 - val_loss: 0.2132 - val_mae: 0.3430\nEpoch 83/200\n32/32 [==============================] - 0s 2ms/step - loss: 4.5273e-04 - mae: 0.0171 - val_loss: 0.2123 - val_mae: 0.3429\nEpoch 84/200\n32/32 [==============================] - 0s 3ms/step - loss: 5.1186e-04 - mae: 0.0178 - val_loss: 0.2115 - val_mae: 0.3436\nEpoch 85/200\n32/32 [==============================] - 0s 2ms/step - loss: 7.8135e-04 - mae: 0.0214 - val_loss: 0.2150 - val_mae: 0.3413\nEpoch 86/200\n32/32 [==============================] - 0s 3ms/step - loss: 7.2387e-04 - mae: 0.0209 - val_loss: 0.2154 - val_mae: 0.3463\nEpoch 87/200\n32/32 [==============================] - 0s 3ms/step - loss: 7.2698e-04 - mae: 0.0209 - val_loss: 0.2164 - val_mae: 0.3454\nEpoch 88/200\n32/32 [==============================] - 0s 2ms/step - loss: 6.7593e-04 - mae: 0.0203 - val_loss: 0.2130 - val_mae: 0.3411\nEpoch 89/200\n32/32 [==============================] - 0s 3ms/step - loss: 5.5045e-04 - mae: 0.0184 - val_loss: 0.2171 - val_mae: 0.3441\nEpoch 90/200\n32/32 [==============================] - 0s 2ms/step - loss: 4.8463e-04 - mae: 0.0171 - val_loss: 0.2114 - val_mae: 0.3417\nEpoch 91/200\n32/32 [==============================] - 0s 2ms/step - loss: 6.1174e-04 - mae: 0.0194 - val_loss: 0.2123 - val_mae: 0.3405\nEpoch 92/200\n32/32 [==============================] - 0s 2ms/step - loss: 5.6173e-04 - mae: 0.0185 - val_loss: 0.2135 - val_mae: 0.3413\nEpoch 93/200\n32/32 [==============================] - 0s 3ms/step - loss: 5.9923e-04 - mae: 0.0191 - val_loss: 0.2192 - val_mae: 0.3460\nEpoch 94/200\n32/32 [==============================] - 0s 2ms/step - loss: 8.8801e-04 - mae: 0.0231 - val_loss: 0.2134 - val_mae: 0.3442\nEpoch 95/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0016 - mae: 0.0310 - val_loss: 0.2085 - val_mae: 0.3439\nEpoch 96/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0026 - mae: 0.0390 - val_loss: 0.2195 - val_mae: 0.3524\nEpoch 97/200\n32/32 [==============================] - 0s 5ms/step - loss: 0.0030 - mae: 0.0424 - val_loss: 0.2141 - val_mae: 0.3382\nEpoch 98/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0035 - mae: 0.0458 - val_loss: 0.2166 - val_mae: 0.3519\nEpoch 99/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0031 - mae: 0.0434 - val_loss: 0.2231 - val_mae: 0.3439\nEpoch 100/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0032 - mae: 0.0433 - val_loss: 0.2175 - val_mae: 0.3445\nEpoch 101/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0048 - mae: 0.0524 - val_loss: 0.2053 - val_mae: 0.3360\nEpoch 102/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0100 - mae: 0.0766 - val_loss: 0.2363 - val_mae: 0.3557\nEpoch 103/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0092 - mae: 0.0750 - val_loss: 0.2479 - val_mae: 0.3648\nEpoch 104/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0089 - mae: 0.0734 - val_loss: 0.2207 - val_mae: 0.3439\nEpoch 105/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0071 - mae: 0.0667 - val_loss: 0.2059 - val_mae: 0.3417\nEpoch 106/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0057 - mae: 0.0591 - val_loss: 0.2262 - val_mae: 0.3509\nEpoch 107/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0077 - mae: 0.0691 - val_loss: 0.2139 - val_mae: 0.3423\nEpoch 108/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0104 - mae: 0.0805 - val_loss: 0.2151 - val_mae: 0.3444\nEpoch 109/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0088 - mae: 0.0722 - val_loss: 0.2181 - val_mae: 0.3405\nEpoch 110/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0064 - mae: 0.0615 - val_loss: 0.2100 - val_mae: 0.3419\nEpoch 111/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0037 - mae: 0.0467 - val_loss: 0.2112 - val_mae: 0.3411\nEpoch 112/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0032 - mae: 0.0438 - val_loss: 0.2125 - val_mae: 0.3402\nEpoch 113/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0034 - mae: 0.0456 - val_loss: 0.2140 - val_mae: 0.3376\nEpoch 114/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0026 - mae: 0.0397 - val_loss: 0.2137 - val_mae: 0.3420\nEpoch 115/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0022 - mae: 0.0355 - val_loss: 0.2051 - val_mae: 0.3339\nEpoch 116/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0024 - mae: 0.0380 - val_loss: 0.2020 - val_mae: 0.3334\nEpoch 117/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0016 - mae: 0.0311 - val_loss: 0.2109 - val_mae: 0.3390\nEpoch 118/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0023 - mae: 0.0375 - val_loss: 0.2063 - val_mae: 0.3348\nEpoch 119/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0032 - mae: 0.0433 - val_loss: 0.2127 - val_mae: 0.3356\nEpoch 120/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0030 - mae: 0.0427 - val_loss: 0.2161 - val_mae: 0.3408\nEpoch 121/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0024 - mae: 0.0382 - val_loss: 0.2027 - val_mae: 0.3338\nEpoch 122/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0023 - mae: 0.0372 - val_loss: 0.2076 - val_mae: 0.3342\nEpoch 123/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0018 - mae: 0.0328 - val_loss: 0.2064 - val_mae: 0.3335\nEpoch 124/200\n",
"name": "stdout"
},
{
"output_type": "stream",
"text": "32/32 [==============================] - 0s 3ms/step - loss: 0.0022 - mae: 0.0364 - val_loss: 0.2051 - val_mae: 0.3357\nEpoch 125/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0020 - mae: 0.0353 - val_loss: 0.2040 - val_mae: 0.3333\nEpoch 126/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0018 - mae: 0.0323 - val_loss: 0.2038 - val_mae: 0.3362\nEpoch 127/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0026 - mae: 0.0397 - val_loss: 0.2066 - val_mae: 0.3394\nEpoch 128/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0035 - mae: 0.0461 - val_loss: 0.2053 - val_mae: 0.3313\nEpoch 129/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0037 - mae: 0.0478 - val_loss: 0.2038 - val_mae: 0.3351\nEpoch 130/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0028 - mae: 0.0408 - val_loss: 0.2152 - val_mae: 0.3403\nEpoch 131/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0026 - mae: 0.0389 - val_loss: 0.2127 - val_mae: 0.3415\nEpoch 132/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0033 - mae: 0.0443 - val_loss: 0.2077 - val_mae: 0.3336\nEpoch 133/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0025 - mae: 0.0388 - val_loss: 0.2001 - val_mae: 0.3330\nEpoch 134/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0026 - mae: 0.0389 - val_loss: 0.2025 - val_mae: 0.3325\nEpoch 135/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0031 - mae: 0.0425 - val_loss: 0.2174 - val_mae: 0.3446\nEpoch 136/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0042 - mae: 0.0504 - val_loss: 0.2106 - val_mae: 0.3347\nEpoch 137/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0054 - mae: 0.0575 - val_loss: 0.2007 - val_mae: 0.3348\nEpoch 138/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0049 - mae: 0.0552 - val_loss: 0.2020 - val_mae: 0.3357\nEpoch 139/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0054 - mae: 0.0572 - val_loss: 0.2032 - val_mae: 0.3358\nEpoch 140/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0057 - mae: 0.0591 - val_loss: 0.2181 - val_mae: 0.3441\nEpoch 141/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0057 - mae: 0.0581 - val_loss: 0.2064 - val_mae: 0.3415\nEpoch 142/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0045 - mae: 0.0521 - val_loss: 0.2103 - val_mae: 0.3340\nEpoch 143/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0043 - mae: 0.0512 - val_loss: 0.2007 - val_mae: 0.3340\nEpoch 144/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0086 - mae: 0.0724 - val_loss: 0.2097 - val_mae: 0.3365\nEpoch 145/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0073 - mae: 0.0651 - val_loss: 0.2035 - val_mae: 0.3310\nEpoch 146/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0060 - mae: 0.0598 - val_loss: 0.2089 - val_mae: 0.3328\nEpoch 147/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0053 - mae: 0.0560 - val_loss: 0.2203 - val_mae: 0.3440\nEpoch 148/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0050 - mae: 0.0541 - val_loss: 0.2025 - val_mae: 0.3377\nEpoch 149/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0065 - mae: 0.0626 - val_loss: 0.2332 - val_mae: 0.3493\nEpoch 150/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0115 - mae: 0.0841 - val_loss: 0.2087 - val_mae: 0.3400\nEpoch 151/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0084 - mae: 0.0722 - val_loss: 0.2005 - val_mae: 0.3382\nEpoch 152/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0051 - mae: 0.0551 - val_loss: 0.1954 - val_mae: 0.3304\nEpoch 153/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0035 - mae: 0.0459 - val_loss: 0.2082 - val_mae: 0.3357\nEpoch 154/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0026 - mae: 0.0398 - val_loss: 0.2106 - val_mae: 0.3402\nEpoch 155/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0025 - mae: 0.0384 - val_loss: 0.1991 - val_mae: 0.3323\nEpoch 156/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0022 - mae: 0.0367 - val_loss: 0.2006 - val_mae: 0.3360\nEpoch 157/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0022 - mae: 0.0362 - val_loss: 0.1958 - val_mae: 0.3323\nEpoch 158/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0017 - mae: 0.0327 - val_loss: 0.1987 - val_mae: 0.3335\nEpoch 159/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0019 - mae: 0.0344 - val_loss: 0.1977 - val_mae: 0.3340\nEpoch 160/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0026 - mae: 0.0391 - val_loss: 0.2029 - val_mae: 0.3382\nEpoch 161/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0026 - mae: 0.0398 - val_loss: 0.2026 - val_mae: 0.3322\nEpoch 162/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0024 - mae: 0.0371 - val_loss: 0.2025 - val_mae: 0.3364\nEpoch 163/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0026 - mae: 0.0396 - val_loss: 0.2040 - val_mae: 0.3292\nEpoch 164/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0027 - mae: 0.0402 - val_loss: 0.2021 - val_mae: 0.3314\nEpoch 165/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0026 - mae: 0.0395 - val_loss: 0.1989 - val_mae: 0.3343\nEpoch 166/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0025 - mae: 0.0389 - val_loss: 0.2044 - val_mae: 0.3303\nEpoch 167/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0020 - mae: 0.0352 - val_loss: 0.2078 - val_mae: 0.3338\nEpoch 168/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0025 - mae: 0.0387 - val_loss: 0.1962 - val_mae: 0.3324\nEpoch 169/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0049 - mae: 0.0541 - val_loss: 0.2028 - val_mae: 0.3313\nEpoch 170/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0043 - mae: 0.0506 - val_loss: 0.2067 - val_mae: 0.3346\nEpoch 171/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0047 - mae: 0.0538 - val_loss: 0.2068 - val_mae: 0.3330\nEpoch 172/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0038 - mae: 0.0472 - val_loss: 0.1923 - val_mae: 0.3293\nEpoch 173/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0051 - mae: 0.0551 - val_loss: 0.2098 - val_mae: 0.3397\nEpoch 174/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0049 - mae: 0.0553 - val_loss: 0.2002 - val_mae: 0.3345\nEpoch 175/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0049 - mae: 0.0540 - val_loss: 0.1899 - val_mae: 0.3261\nEpoch 176/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0048 - mae: 0.0542 - val_loss: 0.2018 - val_mae: 0.3278\nEpoch 177/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0040 - mae: 0.0492 - val_loss: 0.1935 - val_mae: 0.3264\nEpoch 178/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0038 - mae: 0.0473 - val_loss: 0.2042 - val_mae: 0.3368\nEpoch 179/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0033 - mae: 0.0445 - val_loss: 0.2056 - val_mae: 0.3357\nEpoch 180/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0026 - mae: 0.0399 - val_loss: 0.2031 - val_mae: 0.3371\nEpoch 181/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0024 - mae: 0.0383 - val_loss: 0.1922 - val_mae: 0.3258\nEpoch 182/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0024 - mae: 0.0381 - val_loss: 0.2016 - val_mae: 0.3294\nEpoch 183/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0020 - mae: 0.0357 - val_loss: 0.1968 - val_mae: 0.3249\nEpoch 184/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0022 - mae: 0.0358 - val_loss: 0.2076 - val_mae: 0.3364\nEpoch 185/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0019 - mae: 0.0334 - val_loss: 0.2078 - val_mae: 0.3339\n",
"name": "stdout"
},
{
"output_type": "stream",
"text": "Epoch 186/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0027 - mae: 0.0396 - val_loss: 0.1983 - val_mae: 0.3344\nEpoch 187/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0023 - mae: 0.0379 - val_loss: 0.1950 - val_mae: 0.3284\nEpoch 188/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0023 - mae: 0.0367 - val_loss: 0.1931 - val_mae: 0.3292\nEpoch 189/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0023 - mae: 0.0369 - val_loss: 0.2055 - val_mae: 0.3314\nEpoch 190/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0024 - mae: 0.0382 - val_loss: 0.1954 - val_mae: 0.3293\nEpoch 191/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0027 - mae: 0.0400 - val_loss: 0.1960 - val_mae: 0.3275\nEpoch 192/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0027 - mae: 0.0398 - val_loss: 0.1934 - val_mae: 0.3300\nEpoch 193/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0036 - mae: 0.0458 - val_loss: 0.2003 - val_mae: 0.3321\nEpoch 194/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0059 - mae: 0.0594 - val_loss: 0.2069 - val_mae: 0.3309\nEpoch 195/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0103 - mae: 0.0791 - val_loss: 0.1978 - val_mae: 0.3315\nEpoch 196/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0106 - mae: 0.0789 - val_loss: 0.2004 - val_mae: 0.3374\nEpoch 197/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0095 - mae: 0.0766 - val_loss: 0.2269 - val_mae: 0.3545\nEpoch 198/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0066 - mae: 0.0633 - val_loss: 0.1999 - val_mae: 0.3297\nEpoch 199/200\n32/32 [==============================] - 0s 3ms/step - loss: 0.0053 - mae: 0.0563 - val_loss: 0.1948 - val_mae: 0.3262\nEpoch 200/200\n32/32 [==============================] - 0s 2ms/step - loss: 0.0045 - mae: 0.0521 - val_loss: 0.1874 - val_mae: 0.3257\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 8,
"data": {
"text/plain": "<tensorflow.python.keras.callbacks.History at 0x7fd22c12fc70>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "print(model_normal.summary())",
"execution_count": 9,
"outputs": [
{
"output_type": "stream",
"text": "Model: \"sequential_1\"\n_________________________________________________________________\nLayer (type) Output Shape Param # \n=================================================================\ndense (Dense) multiple 2496 \n_________________________________________________________________\ndense_1 (Dense) multiple 37056 \n_________________________________________________________________\ndense_2 (Dense) multiple 193 \n=================================================================\nTotal params: 39,745\nTrainable params: 39,745\nNon-trainable params: 0\n_________________________________________________________________\nNone\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "predicted_sample_areas = model_normal(tf.reshape(sample_points, [-1, N_dim_polys*(N_dim_polys+1)]))\n\nprint(predicted_sample_areas)\nprint(sample_areas)\n\n# fig, axes = plt.subplots(1, num_samples, figsize=(20, 5), sharex=True, sharey=True)\n# for i, ax in enumerate(axes):\n# points = sample_points[i]\n# area = sample_areas[i]\n# predicted_area = predicted_sample_areas[i]\n# center = tf.reduce_mean(points, axis=0)\n# ax.scatter(points[..., 0], points[..., 1])\n# ax.add_patch(plt.Polygon(points))\n# ax.annotate(\"Area: %.2f\" % area, center)\n# ax.annotate(\"Predicted area: %.2f\" % predicted_area, center + tf.constant([0, -0.1]))\n# fig.show()",
"execution_count": 10,
"outputs": [
{
"output_type": "stream",
"text": "tf.Tensor(\n[[0.86451656]\n [2.8602355 ]\n [2.6255171 ]\n [4.717529 ]], shape=(4, 1), dtype=float32)\ntf.Tensor([1.37077 2.2705882 1.9919609 4.985156 ], shape=(4,), dtype=float32)\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"language_info": {
"name": "python",
"version": "3.8.3",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3",
"language": "python"
},
"gist": {
"id": "fc2c651ca413306fa51c38c76e47ad60",
"data": {
"description": "keras-simplices.ipynb",
"public": true
}
},
"_draft": {
"nbviewer_url": "https://gist.github.com/fc2c651ca413306fa51c38c76e47ad60"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment