research-rainfallradar/aimodel/src/rainfallwater_identity_TEST.ipynb

713 lines
48 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "1f6fdebf-69c5-46ab-a5a8-f9c91f000ff3",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-06 18:45:38.088928: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory\n",
"2023-01-06 18:45:38.088955: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.\n"
]
}
],
"source": [
"import os\n",
"\n",
"import tensorflow as tf\n",
"import matplotlib.pyplot as plt\n",
"\n",
"from lib.dataset.parse_heightmap import parse_heightmap\n",
"from lib.ai.model_rainfallwater_mono import model_rainfallwater_mono\n",
"from lib.ai.helpers.make_callbacks import make_callbacks\n",
"from lib.ai.helpers.summarywriter import summarywriter"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "07093079",
"metadata": {},
"outputs": [],
"source": [
"filepath_heightmap=\"/mnt/research-data/main/terrain50-nimrodsized.json.gz\"\n",
"\n",
"dir_output = \"/tmp/x/mono_segment_TEST\"\n",
"if not os.path.exists(os.path.join(dir_output, \"checkpoints\")):\n",
"\tos.makedirs(os.path.join(dir_output, \"checkpoints\"))"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "f4466ac9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"RAINFALL channels 1 width 64 height 64 HEIGHTMAP_INPUT False\n",
"convnext:shape IN x (None, 64, 64, 1)\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-06 18:45:42.019487: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:975] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n",
"2023-01-06 18:45:42.019743: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory\n",
"2023-01-06 18:45:42.019824: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcublas.so.11'; dlerror: libcublas.so.11: cannot open shared object file: No such file or directory\n",
"2023-01-06 18:45:42.019903: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcublasLt.so.11'; dlerror: libcublasLt.so.11: cannot open shared object file: No such file or directory\n",
"2023-01-06 18:45:42.019979: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcufft.so.10'; dlerror: libcufft.so.10: cannot open shared object file: No such file or directory\n",
"2023-01-06 18:45:42.020049: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcurand.so.10'; dlerror: libcurand.so.10: cannot open shared object file: No such file or directory\n",
"2023-01-06 18:45:42.020119: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcusolver.so.11'; dlerror: libcusolver.so.11: cannot open shared object file: No such file or directory\n",
"2023-01-06 18:45:42.020192: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcusparse.so.11'; dlerror: libcusparse.so.11: cannot open shared object file: No such file or directory\n",
"2023-01-06 18:45:42.020265: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudnn.so.8'; dlerror: libcudnn.so.8: cannot open shared object file: No such file or directory\n",
"2023-01-06 18:45:42.020277: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1850] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.\n",
"Skipping registering GPU devices...\n",
"2023-01-06 18:45:42.020683: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA\n",
"To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"DEBUG:model ENCODER output_shape (None, 512)\n",
"DEBUG:model BOTTLENECK:stack2image output_shape (None, 4, 4, 512)\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-06 18:45:44.801 | WARNING | lib.ai.model_rainfallwater_mono:model_rainfallwater_mono:71 - Warning: TODO implement attention from https://ieeexplore.ieee.org/document/9076883\n",
"2023-01-06 18:45:44.833 | INFO | lib.ai.model_rainfallwater_mono:model_rainfallwater_mono:86 - learning_rate: 3e-05\n"
]
}
],
"source": [
"model = model_rainfallwater_mono(\n",
"\tmetadata={ \"rainfallradar\": [ 1, 64, 64 ] },\n",
"\tmodel_arch_dec=\"convnext_i_xxtiny\",\n",
"\tlearning_rate=3e-5\n",
")\n",
"\n",
"summarywriter(model, filepath_output=os.path.join(dir_output, \"summary.txt\"))"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "78c633e1",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"cells 4096 cells/2 2048.0 shape+ (64, 64) tf.Tensor(1015, shape=(), dtype=int64)\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7fc684421570>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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zp07NWvWLFfNsbGxUa+++qoikciQc26ZZ1FRkXbs2KHdu3dr27ZtikajKi4u1scff+yaOUrSoUOHVFdXp1AopN27d2v16tW65557tGPHDkn2vp5pdyuHrztxK4cTjDFDxtzGTXNeu3atXn/9df3jH/8Ycs4N87z44ovV3t6uTz75RM8884xWrlyplpYW53ymz7Gnp0fr1q1TU1OTTj/99BGvy/R5LlmyxPnz3LlztWjRIl144YWqr6/XlVdeKSnz5yh9da+2wsJChcNhSdL8+fPV2dmpuro6/exnP3OuO9VzTcuV0Nlnn63TTjttSPr29vYOSWm3ONGN45Y533333dq1a5deeumluDsrummeEydO1EUXXaTCwkJFIhFddtlleuyxx1wzx7a2NvX29mrBggUaP368xo8fr5aWFv32t7/V+PHjnblk+jy/afLkyZo7d64OHjzomq+lJOXm5mrWrFlxY5deeqnee+89SfZ+NtMyhCZOnKgFCxaoubk5bry5uVnFxcWWqkqtgoICBYPBuDkPDg6qpaUlo+ZsjNHatWv17LPP6sUXX1RBQUHcebfMczjGGA0MDLhmjtddd506OjrU3t7uHIWFhVqxYoXa29t1wQUXuGKe3zQwMKA333xTubm5rvlaStJVV1015O0Sb731lmbMmCHJ4s9myloexuhEi/aTTz5pDhw4YCoqKszkyZPNO++8Y7u0Uevv7zevvfaaee2114wkU1NTY1577TWn7XzTpk3G7/ebZ5991nR0dJjbbrst41pB77rrLuP3+82ePXviWl4///xz5xo3zLOystLs3bvXdHd3m9dff93cf//9Zty4caapqckY4445Dufr3XHGuGOev/rVr8yePXvMoUOHzL59+8yPf/xj4/P5nH9r3DBHY75qsx8/frx5+OGHzcGDB80f/vAHk5OTY55++mnnGhtzTdsQMsaYxx9/3MyYMcNMnDjRXHHFFU6bb6Z66aWXjKQhx8qVK40xX7VIbty40QSDQeP1es0111xjOjo67BadoOHmJ8ls377ducYN8/z5z3/ufG+ec8455rrrrnMCyBh3zHE43wwhN8zzxHthJkyYYPLy8syyZctMZ2enc94NczzhL3/5i5kzZ47xer3mkksuMVu3bo07b2Ou3E8IAGBNWr4mBADIDoQQAMAaQggAYA0hBACwhhACAFhDCAEArCGEAADWEEIAAGsIIQCANYQQAMAaQggAYM3/AdVRA/0W+TeJAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"heightmap = parse_heightmap(filepath_heightmap) / 100\n",
"heightmap = tf.image.crop_to_bounding_box(tf.expand_dims(heightmap, axis=-1), 0, 0, 64, 64)\n",
"#heightmap_labels = tf.one_hot(tf.cast(tf.math.greater(tf.squeeze(heightmap)/10, 0.05), dtype=tf.int32), 2)\n",
"heightmap_labels = tf.cast(tf.math.greater(tf.squeeze(heightmap)/10, 0.05), dtype=tf.int32)\n",
"\n",
"dataset = tf.data.Dataset.from_tensor_slices([heightmap_labels]).map(\n",
"\tlambda tensor: tf.expand_dims(tensor, axis=-1),\n",
"\tnum_parallel_calls=tf.data.AUTOTUNE\n",
")\n",
"dataset_labels = tf.data.Dataset.from_tensor_slices([heightmap_labels])\n",
"\n",
"for item in dataset_labels:\n",
"\tprint(\"cells\", 64*64, \"cells/2\", (64*64)/2, \"shape+\", item.shape, tf.math.reduce_sum(tf.math.argmax(item, axis=-1)))\n",
"\tbreak\n",
"dataset = tf.data.Dataset.zip((dataset, dataset_labels)) \\\n",
"\t.repeat(64 * 64) \\\n",
"\t.batch(64) \\\n",
"\t.prefetch(tf.data.AUTOTUNE)\n",
"\n",
"\n",
"plt.imshow(tf.squeeze(heightmap_labels))"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "3dbc95eb",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/25\n",
"64/64 [==============================] - ETA: 0s - loss: 0.0863 - binary_accuracy: 0.5702"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 20:13:58.692 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 20:13:59.282 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 552s 8s/step - loss: 0.0863 - binary_accuracy: 0.5702\n",
"Epoch 2/25\n",
"64/64 [==============================] - ETA: 0s - loss: -0.1695 - binary_accuracy: 0.5977"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 20:22:53.006 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 20:22:53.575 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 534s 8s/step - loss: -0.1695 - binary_accuracy: 0.5977\n",
"Epoch 3/25\n",
"64/64 [==============================] - ETA: 0s - loss: -0.1154 - binary_accuracy: 0.5065"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 20:31:46.951 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 20:31:47.518 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 534s 8s/step - loss: -0.1154 - binary_accuracy: 0.5065\n",
"Epoch 4/25\n",
"64/64 [==============================] - ETA: 0s - loss: -0.2798 - binary_accuracy: 0.4606"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 20:40:40.765 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 20:40:41.338 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 534s 8s/step - loss: -0.2798 - binary_accuracy: 0.4606\n",
"Epoch 5/25\n",
"64/64 [==============================] - ETA: 0s - loss: -0.0833 - binary_accuracy: 0.4692"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 20:49:34.870 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 20:49:35.429 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 534s 8s/step - loss: -0.0833 - binary_accuracy: 0.4692\n",
"Epoch 6/25\n",
"64/64 [==============================] - ETA: 0s - loss: 0.0793 - binary_accuracy: 0.5488"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 20:58:26.682 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 20:58:27.245 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 532s 8s/step - loss: 0.0793 - binary_accuracy: 0.5488\n",
"Epoch 7/25\n",
"64/64 [==============================] - ETA: 0s - loss: 0.0547 - binary_accuracy: 0.5568"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 21:07:17.933 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 21:07:18.495 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 531s 8s/step - loss: 0.0547 - binary_accuracy: 0.5568\n",
"Epoch 8/25\n",
"64/64 [==============================] - ETA: 0s - loss: 0.0304 - binary_accuracy: 0.5615"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 21:16:09.952 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 21:16:10.519 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 532s 8s/step - loss: 0.0304 - binary_accuracy: 0.5615\n",
"Epoch 9/25\n",
"64/64 [==============================] - ETA: 0s - loss: 0.0066 - binary_accuracy: 0.5657"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 21:25:03.040 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 21:25:03.614 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 533s 8s/step - loss: 0.0066 - binary_accuracy: 0.5657\n",
"Epoch 10/25\n",
"64/64 [==============================] - ETA: 0s - loss: -0.0154 - binary_accuracy: 0.5707"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 21:33:57.583 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 21:33:58.155 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 535s 8s/step - loss: -0.0154 - binary_accuracy: 0.5707\n",
"Epoch 11/25\n",
"64/64 [==============================] - ETA: 0s - loss: -0.0363 - binary_accuracy: 0.5749"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 21:42:52.326 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 21:42:52.898 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 535s 8s/step - loss: -0.0363 - binary_accuracy: 0.5749\n",
"Epoch 12/25\n",
"64/64 [==============================] - ETA: 0s - loss: -0.0575 - binary_accuracy: 0.5775"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 21:51:46.051 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 21:51:46.627 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 534s 8s/step - loss: -0.0575 - binary_accuracy: 0.5775\n",
"Epoch 13/25\n",
"64/64 [==============================] - ETA: 0s - loss: -0.0828 - binary_accuracy: 0.5835"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 22:00:40.405 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 22:00:40.971 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 534s 8s/step - loss: -0.0828 - binary_accuracy: 0.5835\n",
"Epoch 14/25\n",
"64/64 [==============================] - ETA: 0s - loss: -0.1216 - binary_accuracy: 0.5869"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 22:09:34.844 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 22:09:35.418 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 534s 8s/step - loss: -0.1216 - binary_accuracy: 0.5869\n",
"Epoch 15/25\n",
"64/64 [==============================] - ETA: 0s - loss: -0.1928 - binary_accuracy: 0.5821"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 22:18:28.651 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 22:18:29.219 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 534s 8s/step - loss: -0.1928 - binary_accuracy: 0.5821\n",
"Epoch 16/25\n",
"64/64 [==============================] - ETA: 0s - loss: -0.2815 - binary_accuracy: 0.5564"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 22:27:23.336 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 22:27:23.906 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 535s 8s/step - loss: -0.2815 - binary_accuracy: 0.5564\n",
"Epoch 17/25\n",
"64/64 [==============================] - ETA: 0s - loss: -0.2078 - binary_accuracy: 0.4880"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 22:36:18.191 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 22:36:18.761 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 535s 8s/step - loss: -0.2078 - binary_accuracy: 0.4880\n",
"Epoch 18/25\n",
"64/64 [==============================] - ETA: 0s - loss: -0.2591 - binary_accuracy: 0.4643"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 22:45:13.175 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 22:45:13.744 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 535s 8s/step - loss: -0.2591 - binary_accuracy: 0.4643\n",
"Epoch 19/25\n",
"64/64 [==============================] - ETA: 0s - loss: -0.4663 - binary_accuracy: 0.4370"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 22:54:08.037 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 22:54:08.624 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 535s 8s/step - loss: -0.4663 - binary_accuracy: 0.4370\n",
"Epoch 20/25\n",
"64/64 [==============================] - ETA: 0s - loss: 0.0233 - binary_accuracy: 0.5323"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 23:03:03.088 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 23:03:03.655 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 535s 8s/step - loss: 0.0233 - binary_accuracy: 0.5323\n",
"Epoch 21/25\n",
"64/64 [==============================] - ETA: 0s - loss: 0.0272 - binary_accuracy: 0.5650"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 23:11:57.541 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 23:11:58.301 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 535s 8s/step - loss: 0.0272 - binary_accuracy: 0.5650\n",
"Epoch 22/25\n",
"64/64 [==============================] - ETA: 0s - loss: 0.0047 - binary_accuracy: 0.5712"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 23:20:52.402 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 23:20:52.969 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 535s 8s/step - loss: 0.0047 - binary_accuracy: 0.5712\n",
"Epoch 23/25\n",
"64/64 [==============================] - ETA: 0s - loss: -0.0151 - binary_accuracy: 0.5776"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 23:29:46.982 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 23:29:47.558 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 535s 8s/step - loss: -0.0151 - binary_accuracy: 0.5776\n",
"Epoch 24/25\n",
"64/64 [==============================] - ETA: 0s - loss: -0.0319 - binary_accuracy: 0.5800"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 23:38:40.377 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 23:38:40.948 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 533s 8s/step - loss: -0.0319 - binary_accuracy: 0.5800\n",
"Epoch 25/25\n",
"64/64 [==============================] - ETA: 0s - loss: -0.0465 - binary_accuracy: 0.5806"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-05 23:47:34.752 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:12 - Saving checkpoint\n",
"2023-01-05 23:47:35.313 | INFO | lib.ai.components.CallbackCustomModelCheckpoint:on_epoch_end:15 - Checkpoint saved successfully\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"64/64 [==============================] - 534s 8s/step - loss: -0.0465 - binary_accuracy: 0.5806\n"
]
},
{
"data": {
"text/plain": [
"<keras.callbacks.History at 0x7ff99a33d8a0>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.fit(\n",
"\tdataset,\n",
"\tepochs=25,\n",
"\tcallbacks=make_callbacks(\"/tmp/x/mono_segment_TEST\", model)\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "b7f8c33f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1/1 [==============================] - 2s 2s/step\n",
"tf.Tensor(\n",
"[[[1 1 1 ... 1 1 1]\n",
" [1 1 1 ... 1 1 1]\n",
" [1 1 1 ... 1 1 1]\n",
" ...\n",
" [0 1 1 ... 1 1 1]\n",
" [1 1 1 ... 1 1 1]\n",
" [1 1 1 ... 1 1 1]]], shape=(1, 64, 64), dtype=int32)\n",
"tf.Tensor(3936, shape=(), dtype=int32) tf.Tensor(160, shape=(), dtype=int32)\n",
"(1, 64, 64)\n",
"[[[ 6.318168 4.484145 5.098278 ... 2.2153077 4.2120304\n",
" 3.6126046 ]\n",
" [ 6.4958954 5.6199083 6.5477724 ... 1.4242218 3.6372695\n",
" 4.750148 ]\n",
" [ 4.059501 3.8315465 7.3975286 ... 5.0964937 4.767578\n",
" 2.0836473 ]\n",
" ...\n",
" [-0.3680715 1.0862777 4.403977 ... 3.2975245 3.878313\n",
" 1.355243 ]\n",
" [ 7.1270704 3.7269826 4.1089396 ... 5.3976045 2.4421794\n",
" 2.3658426 ]\n",
" [ 6.693168 7.6807394 5.613674 ... 0.89391357 3.4751601\n",
" 3.142672 ]]]\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7ff956514f70>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"prediction = model.predict(tf.expand_dims(heightmap, axis=0))\n",
"prediction_binarised = tf.cast(tf.math.greater(prediction, 0.5), dtype=tf.int32)\n",
"print(prediction_binarised)\n",
"print(tf.math.reduce_sum(prediction_binarised), (64*64) - tf.math.reduce_sum(prediction_binarised))\n",
"print(prediction_binarised.shape)\n",
"print(prediction)\n",
"plt.imshow(tf.squeeze(prediction_binarised))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.6"
},
"vscode": {
"interpreter": {
"hash": "e7370f93d1d0cde622a1f8e1c04877d8463912d04d973331ad4851f04de6915a"
}
}
},
"nbformat": 4,
"nbformat_minor": 5
}