{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "1f6fdebf-69c5-46ab-a5a8-f9c91f000ff3", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2023-01-05 20:04:42.075078: 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-05 20:04:42.075095: 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-05 20:04:44.225064: 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-05 20:04:44.225397: 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-05 20:04:44.225497: 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-05 20:04:44.225576: 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-05 20:04:44.225660: 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-05 20:04:44.225731: 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-05 20:04:44.225796: 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-05 20:04:44.225861: 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-05 20:04:44.225944: 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-05 20:04:44.225961: 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-05 20:04:44.226508: 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-05 20:04:47.011 | WARNING | lib.ai.model_rainfallwater_mono:model_rainfallwater_mono:71 - Warning: TODO implement attention from https://ieeexplore.ieee.org/document/9076883\n", "2023-01-05 20:04:47.054 | 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": 4, "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" ] } ], "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" ] }, { "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": [ "" ] }, "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": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "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 }