Skip to content
sleepKIT
User guide
HELIA

Train Sleep Detection Model

This page uses the repository notebook, whose saved training and export logs date to December 2025. The previous documentation copy is retained as an archive; it contains the same code but mixes older saved outputs.

Before running, set SK_DATASET_PATH to your dataset directory. The fallback ../../datasets is relative to the notebook kernel’s working directory, so it may need adjustment after downloading or opening in Colab.

This page displays saved notebook outputs; building the site does not run training.

Date created: 2024/10/02

Last Modified: 2024/10/02

Description: Train a simple wrist-based sleep detection model using accelerometer data.

In this guide, we will train a small TCN network to detect sleep and wake stages using accelerometer data collected from the wrist.

Input

  • Sensor: IMU
  • Location: Wrist
  • Sampling Rate: 0.2 Hz
  • Frame Size: 60 seconds

Class Mapping

Identify activity into one of two categories: SLEEP, AWAKE.

Base ClassTarget ClassLabel
0-WAKE0WAKE
1-SLEEP1SLEEP

Datasets

  • CMIDSS: The Child Mind Institute - Detect Sleep States (CMIDSS) dataset comprises 300 subjects with over 500 multi-day recordings of wrist-worn accelerometer data annotated with two event types: onset, the beginning of sleep, and wakeup, the end of sleep.
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
import IPython
import contextlib
import tempfile
from pathlib import Path
import keras
import helia_edge as helia
import sleepkit as sk
/workspaces/sleepkit/.venv/lib/python3.13/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
from .autonotebook import tqdm as notebook_tqdm
# Be sure to set the dataset path to the correct location
datasets_dir = Path(os.getenv('SK_DATASET_PATH', '../../datasets'))
plot_theme = sk.utils.dark_theme
helia.utils.silence_tensorflow()
sk.utils.setup_plotting(plot_theme)
logger = helia.utils.setup_logger(__name__)

We are going to train our model using the [CMIDSS Dataset(https://ambiqai.github.io/sleepkit/datasets/cmidss/). This dataset uses the slug cmidss within sleepKIT. We will download the dataset if it is not already available.

datasets = [sk.NamedParams(
name="cmidss",
params=dict(
path=datasets_dir / "cmidss",
)
)]

For this task, we are going to simply classify the data into two classes: SLEEP and AWAKE.

class_map = {
sk.SleepStage.wake: 0,
sk.SleepStage.stage1: 1,
sk.SleepStage.stage2: 1,
sk.SleepStage.stage3: 1,
sk.SleepStage.stage4: 1,
sk.SleepStage.rem: 1,
}
class_names = ["WAKE", "SLEEP"]

From the dataset, we will create a feature set using the FS-W-A-5 features. This feature set computes 5 features over 60-second windows captured from the accelerometer sensor collected on the wrist. The CMIDSS dataset already provides accelerometer averaged over 5 secods (i.e. Fs=0.2 Hz). Therefore, we will use a frame size of 12 to capture 60 seconds of data (i.e. 6 samples at 0.2 Hz) with a 50% overlap.

feature = dict(
name="FS-W-A-5",
sampling_rate=0.2,
frame_size=12,
loader="hdf5",
feat_key="features",
label_key="detect_labels",
mask_key="mask",
feat_cols=None,
save_path=datasets_dir / "store" / "fs-w-a-5-60",
params={},
)

For this task, we are going to leverage a customized TCN model architecture that is smaller and can handle 1D signals. The model consists of 4 TCN blocks with a depth of 1. Each block leverages dilated depthwise-separable convolutions along with inverted expansion and squeeze and excitation layers. The model is followed by a 1D convolutional layer and a final dense layer for regression. Unlike vision tasks, we leverage larger kernel sizes and strides to capture temporal dependencies in the signal.

architecture = sk.NamedParams(
name="tcn",
params=dict(
input_kernel=[1, 5],
input_norm="batch",
blocks=[
dict(depth=1, branch=1, filters=16, kernel=(1, 5), dilation=[1, 1], dropout=0.10, ex_ratio=1, se_ratio=4, norm="batch"),
dict(depth=1, branch=1, filters=32, kernel=(1, 5), dilation=[1, 2], dropout=0.10, ex_ratio=1, se_ratio=4, norm="batch"),
dict(depth=1, branch=1, filters=48, kernel=(1, 5), dilation=[1, 4], dropout=0.10, ex_ratio=1, se_ratio=4, norm="batch"),
dict(depth=1, branch=1, filters=64, kernel=(1, 5), dilation=[1, 8], dropout=0.10, ex_ratio=1, se_ratio=4, norm="batch")
],
output_kernel=(1, 5),
include_top=True,
use_logits=True,
model_name="tcn"
)
)

Here we provide the complete configuration for the task. This includes the dataset configuration, features, model architecture, and training parameters.

params = sk.TaskParams(
name="sk-detect",
job_dir=Path(tempfile.gettempdir()) / "sk-detect",
verbose=1,
datasets=datasets,
feature=feature,
sampling_rate=0.0083333,
frame_size=240,
num_classes=len(class_names),
class_map=class_map,
class_names=class_names,
samples_per_subject=100,
val_samples_per_subject=100,
test_samples_per_subject=50,
val_size=4000,
test_size=2500,
val_subjects=0.20,
batch_size=128,
buffer_size=10000,
epochs=200,
steps_per_epoch=25,
val_steps_per_epoch=25,
val_metric="loss",
lr_rate=1e-3,
lr_cycles=1,
label_smoothing=0,
test_metric="f1",
test_metric_threshold=0.02,
tflm_var_name="sk_detect_flatbuffer",
tflm_file="sk_detect_flatbuffer.h",
backend="pc",
display_report=False,
model_file="model.keras",
use_logits=False,
architecture=architecture
)

sleepKIT provides a TaskFactory that includes a number ready-to-use tasks. Each task provides methods for training, evaluating, exporting, and demoing. We will grab the detect task and configure it for our use case.

task = sk.TaskFactory.get("detect")

We will download the datasets using the sleepkit library. If already downloaded, this step will be skipped.

task.download(params=params)

Next, we will generate the features from the given dataset. The features will be generated using the fs_w_a_5 feature set.

Once the command finishes, the feature set will be saved in the feature.save_path directory. These features will be stored in HDF5 files with one file per subject. Each HDF5 file will include the following entries:

  • /features: Time x Feature tensor (fp32). Features are computed over windows of sensor data.
  • /mask: Time x Mask tensor (bool). Mask indicates valid feature values.
  • /detect_labels: Time x Label (int). Labels are awake/sleep.
task.feature(params=params)
Gen features for cmidss: 100%|██████████| 277/277 [02:02<00:00, 2.27it/s]

Lets quickly instantiate and visualize the model.

model = helia.models.tcn.TcnModel.model_from_params(
inputs=keras.Input(shape=(params.frame_size, 5), name="inputs"),
params=architecture.params,
num_classes=len(class_names)
)
model.summary(layer_range=('inputs', model.layers[10].name))
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
I0000 00:00:1765844770.008698 4340 gpu_device.cc:2020] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 15543 MB memory: -> device: 0, name: NVIDIA GeForce RTX 4090, pci bus id: 0000:01:00.0, compute capability: 8.9
Model: "functional"
Saved output
┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┓
┃ Layer (type) ┃ Output Shape ┃ Param # ┃ Connected to ┃
┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━┩
│ inputs (InputLayer) │ (None, 240, 5) │ 0 │ - │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ reshape (Reshape) │ (None, 1, 240, 5) │ 0 │ inputs[0][0] │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ ENC_CN │ (None, 1, 240, 5) │ 25 │ reshape[0][0] │
│ (DepthwiseConv2D) │ │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ ENC_BN │ (None, 1, 240, 5) │ 20 │ ENC_CN[0][0] │
│ (BatchNormalizatio… │ │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ B1_D1_DW_B1_CN │ (None, 1, 240, 5) │ 25 │ ENC_BN[0][0] │
│ (DepthwiseConv2D) │ │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ B1_D1_DW_B1_BN │ (None, 1, 240, 5) │ 20 │ B1_D1_DW_B1_CN[0… │
│ (BatchNormalizatio… │ │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ B1_D1_DW_ACT │ (None, 1, 240, 5) │ 0 │ B1_D1_DW_B1_BN[0… │
│ (Activation) │ │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ B1_D1_SE_pool │ (None, 1, 1, 5) │ 0 │ B1_D1_DW_ACT[0][… │
│ (GlobalAveragePool… │ │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ B1_D1_SE_sq │ (None, 1, 1, 1) │ 6 │ B1_D1_SE_pool[0]… │
│ (Conv2D) │ │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ B1_D1_SE_sq.act │ (None, 1, 1, 1) │ 0 │ B1_D1_SE_sq[0][0] │
│ (Activation) │ │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ B1_D1_SE_ex │ (None, 1, 1, 5) │ 10 │ B1_D1_SE_sq.act[… │
│ (Conv2D) │ │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ B1_D1_SE_ex.act │ (None, 1, 1, 5) │ 0 │ B1_D1_SE_ex[0][0] │
│ (Activation) │ │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ B1_D1_SE_ex.mul │ (None, 1, 240, 5) │ 0 │ B1_D1_DW_ACT[0][… │
│ (Multiply) │ │ │ B1_D1_SE_ex.act[… │
└─────────────────────┴───────────────────┴────────────┴───────────────────┘
Total params: 9,364 (36.58 KB)
Trainable params: 8,832 (34.50 KB)
Non-trainable params: 532 (2.08 KB)

At this point, we can train the model from the generated feature set for the sleep detect task. The model will be trained for 200 epochs with a batch size of 128 and a learning rate of 1e-3. The model will be fed a frame_size of 240 samples which equates to 120 minutes.

Using the task configuration, we will train the model on the dataset.

task.train(params)
Epoch 1/200
6/25 ━━━━━━━━━━━━━━━━━━━━ 0s 30ms/step - acc: 0.4901 - f1: 0.5407 - iou: 0.2969 - loss: 0.4225
I0000 00:00:1765844782.346690 5271 device_compiler.h:196] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.
Saved output
25/25 ━━━━━━━━━━━━━━━━━━━━ 12s 79ms/step - acc: 0.6108 - f1: 0.6250 - iou: 0.3657 - loss: 0.3908 - val_acc: 0.7313 - val_f1: 0.6215 - val_iou: 0.3675 - val_loss: 0.3326
Epoch 2/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 35ms/step - acc: 0.7354 - f1: 0.7398 - iou: 0.5071 - loss: 0.3144 - val_acc: 0.7313 - val_f1: 0.6215 - val_iou: 0.3675 - val_loss: 0.2935
Epoch 3/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 25ms/step - acc: 0.7997 - f1: 0.7968 - iou: 0.5850 - loss: 0.2693 - val_acc: 0.7332 - val_f1: 0.6204 - val_iou: 0.3666 - val_loss: 0.2586
Epoch 4/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 24ms/step - acc: 0.8198 - f1: 0.8157 - iou: 0.6216 - loss: 0.2346 - val_acc: 0.7313 - val_f1: 0.6215 - val_iou: 0.3676 - val_loss: 0.2293
Epoch 5/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.8415 - f1: 0.8413 - iou: 0.6644 - loss: 0.2039 - val_acc: 0.7332 - val_f1: 0.6204 - val_iou: 0.3666 - val_loss: 0.2039
Epoch 6/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 24ms/step - acc: 0.8495 - f1: 0.8511 - iou: 0.6896 - loss: 0.1785 - val_acc: 0.7332 - val_f1: 0.6204 - val_iou: 0.3666 - val_loss: 0.1816
Epoch 7/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.8554 - f1: 0.8563 - iou: 0.6810 - loss: 0.1568 - val_acc: 0.7313 - val_f1: 0.6215 - val_iou: 0.3675 - val_loss: 0.1636
Epoch 8/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.8667 - f1: 0.8686 - iou: 0.7055 - loss: 0.1378 - val_acc: 0.7293 - val_f1: 0.6225 - val_iou: 0.3684 - val_loss: 0.1487
Epoch 9/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.8810 - f1: 0.8833 - iou: 0.7373 - loss: 0.1212 - val_acc: 0.7293 - val_f1: 0.6225 - val_iou: 0.3684 - val_loss: 0.1361
Epoch 10/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.8683 - f1: 0.8737 - iou: 0.7114 - loss: 0.1084 - val_acc: 0.7293 - val_f1: 0.6224 - val_iou: 0.3684 - val_loss: 0.1246
Epoch 11/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.8885 - f1: 0.8911 - iou: 0.7491 - loss: 0.0956 - val_acc: 0.2804 - val_f1: 0.1464 - val_iou: 0.1456 - val_loss: 0.1162
Epoch 12/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9005 - f1: 0.9026 - iou: 0.7740 - loss: 0.0851 - val_acc: 0.2707 - val_f1: 0.1243 - val_iou: 0.1372 - val_loss: 0.1087
Epoch 13/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 24ms/step - acc: 0.9048 - f1: 0.9066 - iou: 0.7802 - loss: 0.0760 - val_acc: 0.2705 - val_f1: 0.1238 - val_iou: 0.1371 - val_loss: 0.1018
Epoch 14/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9021 - f1: 0.9040 - iou: 0.7788 - loss: 0.0691 - val_acc: 0.2685 - val_f1: 0.1178 - val_iou: 0.1351 - val_loss: 0.0988
Epoch 15/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9161 - f1: 0.9181 - iou: 0.8093 - loss: 0.0613 - val_acc: 0.2668 - val_f1: 0.1123 - val_iou: 0.1334 - val_loss: 0.0963
Epoch 16/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9056 - f1: 0.9083 - iou: 0.7943 - loss: 0.0572 - val_acc: 0.2668 - val_f1: 0.1123 - val_iou: 0.1334 - val_loss: 0.0929
Epoch 17/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9141 - f1: 0.9158 - iou: 0.8074 - loss: 0.0519 - val_acc: 0.2668 - val_f1: 0.1123 - val_iou: 0.1334 - val_loss: 0.0911
Epoch 18/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9094 - f1: 0.9121 - iou: 0.7962 - loss: 0.0479 - val_acc: 0.2668 - val_f1: 0.1123 - val_iou: 0.1334 - val_loss: 0.0858
Epoch 19/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - acc: 0.9229 - f1: 0.9247 - iou: 0.8155 - loss: 0.0421 - val_acc: 0.2668 - val_f1: 0.1123 - val_iou: 0.1334 - val_loss: 0.0884
Epoch 20/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9314 - f1: 0.9327 - iou: 0.8379 - loss: 0.0385 - val_acc: 0.2668 - val_f1: 0.1123 - val_iou: 0.1334 - val_loss: 0.0870
Epoch 21/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 25ms/step - acc: 0.9290 - f1: 0.9301 - iou: 0.8364 - loss: 0.0361 - val_acc: 0.2668 - val_f1: 0.1123 - val_iou: 0.1334 - val_loss: 0.0845
Epoch 22/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 29ms/step - acc: 0.9165 - f1: 0.9185 - iou: 0.8096 - loss: 0.0350 - val_acc: 0.2668 - val_f1: 0.1123 - val_iou: 0.1334 - val_loss: 0.0754
Epoch 23/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step - acc: 0.9187 - f1: 0.9205 - iou: 0.8147 - loss: 0.0328 - val_acc: 0.2668 - val_f1: 0.1124 - val_iou: 0.1334 - val_loss: 0.0757
Epoch 24/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 24ms/step - acc: 0.9206 - f1: 0.9222 - iou: 0.8141 - loss: 0.0308 - val_acc: 0.2668 - val_f1: 0.1124 - val_iou: 0.1334 - val_loss: 0.0752
Epoch 25/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9141 - f1: 0.9166 - iou: 0.8018 - loss: 0.0305 - val_acc: 0.2668 - val_f1: 0.1123 - val_iou: 0.1334 - val_loss: 0.0772
Epoch 26/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9290 - f1: 0.9303 - iou: 0.8335 - loss: 0.0268 - val_acc: 0.2699 - val_f1: 0.1190 - val_iou: 0.1360 - val_loss: 0.0770
Epoch 27/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 25ms/step - acc: 0.9257 - f1: 0.9274 - iou: 0.8258 - loss: 0.0261 - val_acc: 0.3192 - val_f1: 0.2150 - val_iou: 0.1765 - val_loss: 0.0673
Epoch 28/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9379 - f1: 0.9390 - iou: 0.8517 - loss: 0.0234 - val_acc: 0.4665 - val_f1: 0.4474 - val_iou: 0.3029 - val_loss: 0.0585
Epoch 29/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - acc: 0.9311 - f1: 0.9328 - iou: 0.8428 - loss: 0.0229 - val_acc: 0.3966 - val_f1: 0.3459 - val_iou: 0.2419 - val_loss: 0.0659
Epoch 30/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 25ms/step - acc: 0.9308 - f1: 0.9319 - iou: 0.8344 - loss: 0.0226 - val_acc: 0.5803 - val_f1: 0.5886 - val_iou: 0.4081 - val_loss: 0.0507
Epoch 31/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9309 - f1: 0.9321 - iou: 0.8397 - loss: 0.0217 - val_acc: 0.5553 - val_f1: 0.5597 - val_iou: 0.3842 - val_loss: 0.0504
Epoch 32/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9331 - f1: 0.9347 - iou: 0.8404 - loss: 0.0202 - val_acc: 0.8345 - val_f1: 0.8435 - val_iou: 0.6954 - val_loss: 0.0350
Epoch 33/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - acc: 0.9336 - f1: 0.9352 - iou: 0.8452 - loss: 0.0198 - val_acc: 0.8003 - val_f1: 0.8112 - val_iou: 0.6445 - val_loss: 0.0371
Epoch 34/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9328 - f1: 0.9340 - iou: 0.8397 - loss: 0.0195 - val_acc: 0.6425 - val_f1: 0.6575 - val_iou: 0.4693 - val_loss: 0.0442
Epoch 35/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 26ms/step - acc: 0.9223 - f1: 0.9235 - iou: 0.8243 - loss: 0.0200 - val_acc: 0.8635 - val_f1: 0.8702 - val_iou: 0.7362 - val_loss: 0.0323
Epoch 36/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9264 - f1: 0.9283 - iou: 0.8289 - loss: 0.0187 - val_acc: 0.8344 - val_f1: 0.8435 - val_iou: 0.6954 - val_loss: 0.0310
Epoch 37/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 24ms/step - acc: 0.9289 - f1: 0.9308 - iou: 0.8280 - loss: 0.0179 - val_acc: 0.8805 - val_f1: 0.8854 - val_iou: 0.7603 - val_loss: 0.0309
Epoch 38/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9293 - f1: 0.9305 - iou: 0.8332 - loss: 0.0181 - val_acc: 0.8961 - val_f1: 0.9002 - val_iou: 0.7870 - val_loss: 0.0274
Epoch 39/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9172 - f1: 0.9186 - iou: 0.8061 - loss: 0.0189 - val_acc: 0.9336 - val_f1: 0.9348 - val_iou: 0.8512 - val_loss: 0.0218
Epoch 40/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9173 - f1: 0.9190 - iou: 0.8084 - loss: 0.0180 - val_acc: 0.9087 - val_f1: 0.9119 - val_iou: 0.8080 - val_loss: 0.0200
Epoch 41/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 24ms/step - acc: 0.9299 - f1: 0.9318 - iou: 0.8376 - loss: 0.0170 - val_acc: 0.9247 - val_f1: 0.9272 - val_iou: 0.8377 - val_loss: 0.0183
Epoch 42/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - acc: 0.9257 - f1: 0.9278 - iou: 0.8218 - loss: 0.0169 - val_acc: 0.8462 - val_f1: 0.8316 - val_iou: 0.6448 - val_loss: 0.0269
Epoch 43/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 26ms/step - acc: 0.9302 - f1: 0.9313 - iou: 0.8301 - loss: 0.0163 - val_acc: 0.9364 - val_f1: 0.9380 - val_iou: 0.8587 - val_loss: 0.0163
Epoch 44/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step - acc: 0.9255 - f1: 0.9270 - iou: 0.8271 - loss: 0.0163 - val_acc: 0.9198 - val_f1: 0.9226 - val_iou: 0.8292 - val_loss: 0.0180
Epoch 45/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 26ms/step - acc: 0.9356 - f1: 0.9368 - iou: 0.8469 - loss: 0.0152 - val_acc: 0.9353 - val_f1: 0.9371 - val_iou: 0.8572 - val_loss: 0.0147
Epoch 46/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step - acc: 0.9282 - f1: 0.9301 - iou: 0.8253 - loss: 0.0154 - val_acc: 0.9436 - val_f1: 0.9448 - val_iou: 0.8724 - val_loss: 0.0155
Epoch 47/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 27ms/step - acc: 0.9382 - f1: 0.9389 - iou: 0.8501 - loss: 0.0145 - val_acc: 0.9450 - val_f1: 0.9458 - val_iou: 0.8740 - val_loss: 0.0146
Epoch 48/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 24ms/step - acc: 0.9311 - f1: 0.9324 - iou: 0.8372 - loss: 0.0148 - val_acc: 0.9464 - val_f1: 0.9467 - val_iou: 0.8747 - val_loss: 0.0135
Epoch 49/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step - acc: 0.9301 - f1: 0.9316 - iou: 0.8369 - loss: 0.0155 - val_acc: 0.9453 - val_f1: 0.9457 - val_iou: 0.8726 - val_loss: 0.0137
Epoch 50/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9338 - f1: 0.9350 - iou: 0.8425 - loss: 0.0147 - val_acc: 0.9469 - val_f1: 0.9472 - val_iou: 0.8757 - val_loss: 0.0140
Epoch 51/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 25ms/step - acc: 0.9367 - f1: 0.9375 - iou: 0.8475 - loss: 0.0143 - val_acc: 0.9470 - val_f1: 0.9470 - val_iou: 0.8747 - val_loss: 0.0131
Epoch 52/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - acc: 0.9360 - f1: 0.9375 - iou: 0.8457 - loss: 0.0138 - val_acc: 0.9232 - val_f1: 0.9212 - val_iou: 0.8170 - val_loss: 0.0155
Epoch 53/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9361 - f1: 0.9371 - iou: 0.8530 - loss: 0.0137 - val_acc: 0.9427 - val_f1: 0.9427 - val_iou: 0.8655 - val_loss: 0.0135
Epoch 54/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9255 - f1: 0.9271 - iou: 0.8304 - loss: 0.0149 - val_acc: 0.8588 - val_f1: 0.8441 - val_iou: 0.6648 - val_loss: 0.0221
Epoch 55/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9305 - f1: 0.9315 - iou: 0.8286 - loss: 0.0150 - val_acc: 0.9287 - val_f1: 0.9272 - val_iou: 0.8300 - val_loss: 0.0153
Epoch 56/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 27ms/step - acc: 0.9366 - f1: 0.9377 - iou: 0.8484 - loss: 0.0134 - val_acc: 0.9448 - val_f1: 0.9461 - val_iou: 0.8754 - val_loss: 0.0125
Epoch 57/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9335 - f1: 0.9347 - iou: 0.8441 - loss: 0.0138 - val_acc: 0.9500 - val_f1: 0.9507 - val_iou: 0.8845 - val_loss: 0.0117
Epoch 58/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - acc: 0.9370 - f1: 0.9383 - iou: 0.8529 - loss: 0.0134 - val_acc: 0.9498 - val_f1: 0.9497 - val_iou: 0.8804 - val_loss: 0.0122
Epoch 59/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9340 - f1: 0.9355 - iou: 0.8441 - loss: 0.0134 - val_acc: 0.9414 - val_f1: 0.9427 - val_iou: 0.8682 - val_loss: 0.0141
Epoch 60/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9350 - f1: 0.9361 - iou: 0.8412 - loss: 0.0133 - val_acc: 0.9491 - val_f1: 0.9501 - val_iou: 0.8838 - val_loss: 0.0123
Epoch 61/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 26ms/step - acc: 0.9368 - f1: 0.9381 - iou: 0.8507 - loss: 0.0129 - val_acc: 0.9523 - val_f1: 0.9529 - val_iou: 0.8891 - val_loss: 0.0111
Epoch 62/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step - acc: 0.9412 - f1: 0.9422 - iou: 0.8595 - loss: 0.0120 - val_acc: 0.9458 - val_f1: 0.9469 - val_iou: 0.8767 - val_loss: 0.0130
Epoch 63/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9368 - f1: 0.9373 - iou: 0.8463 - loss: 0.0128 - val_acc: 0.9494 - val_f1: 0.9491 - val_iou: 0.8788 - val_loss: 0.0118
Epoch 64/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9349 - f1: 0.9363 - iou: 0.8462 - loss: 0.0141 - val_acc: 0.9430 - val_f1: 0.9444 - val_iou: 0.8721 - val_loss: 0.0116
Epoch 65/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 27ms/step - acc: 0.9350 - f1: 0.9364 - iou: 0.8520 - loss: 0.0137 - val_acc: 0.9559 - val_f1: 0.9562 - val_iou: 0.8956 - val_loss: 0.0106
Epoch 66/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step - acc: 0.9357 - f1: 0.9369 - iou: 0.8453 - loss: 0.0129 - val_acc: 0.9503 - val_f1: 0.9501 - val_iou: 0.8814 - val_loss: 0.0114
Epoch 67/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9380 - f1: 0.9389 - iou: 0.8572 - loss: 0.0126 - val_acc: 0.9272 - val_f1: 0.9247 - val_iou: 0.8235 - val_loss: 0.0152
Epoch 68/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 26ms/step - acc: 0.9382 - f1: 0.9392 - iou: 0.8521 - loss: 0.0124 - val_acc: 0.9565 - val_f1: 0.9568 - val_iou: 0.8974 - val_loss: 0.0102
Epoch 69/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - acc: 0.9329 - f1: 0.9345 - iou: 0.8414 - loss: 0.0128 - val_acc: 0.9509 - val_f1: 0.9518 - val_iou: 0.8874 - val_loss: 0.0103
Epoch 70/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 26ms/step - acc: 0.9402 - f1: 0.9417 - iou: 0.8516 - loss: 0.0125 - val_acc: 0.9564 - val_f1: 0.9571 - val_iou: 0.8985 - val_loss: 0.0097
Epoch 71/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - acc: 0.9267 - f1: 0.9288 - iou: 0.8311 - loss: 0.0135 - val_acc: 0.9333 - val_f1: 0.9317 - val_iou: 0.8394 - val_loss: 0.0134
Epoch 72/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9325 - f1: 0.9341 - iou: 0.8330 - loss: 0.0124 - val_acc: 0.9546 - val_f1: 0.9547 - val_iou: 0.8921 - val_loss: 0.0104
Epoch 73/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9374 - f1: 0.9389 - iou: 0.8513 - loss: 0.0119 - val_acc: 0.9315 - val_f1: 0.9296 - val_iou: 0.8344 - val_loss: 0.0137
Epoch 74/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9357 - f1: 0.9366 - iou: 0.8468 - loss: 0.0126 - val_acc: 0.9107 - val_f1: 0.9062 - val_iou: 0.7842 - val_loss: 0.0151
Epoch 75/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9358 - f1: 0.9372 - iou: 0.8395 - loss: 0.0124 - val_acc: 0.9231 - val_f1: 0.9200 - val_iou: 0.8134 - val_loss: 0.0144
Epoch 76/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9351 - f1: 0.9362 - iou: 0.8478 - loss: 0.0122 - val_acc: 0.9539 - val_f1: 0.9541 - val_iou: 0.8906 - val_loss: 0.0106
Epoch 77/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9379 - f1: 0.9389 - iou: 0.8538 - loss: 0.0122 - val_acc: 0.9491 - val_f1: 0.9487 - val_iou: 0.8778 - val_loss: 0.0107
Epoch 78/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9406 - f1: 0.9417 - iou: 0.8576 - loss: 0.0118 - val_acc: 0.9564 - val_f1: 0.9568 - val_iou: 0.8972 - val_loss: 0.0098
Epoch 79/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 24ms/step - acc: 0.9475 - f1: 0.9482 - iou: 0.8704 - loss: 0.0105 - val_acc: 0.9566 - val_f1: 0.9572 - val_iou: 0.8984 - val_loss: 0.0095
Epoch 80/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step - acc: 0.9284 - f1: 0.9301 - iou: 0.8341 - loss: 0.0127 - val_acc: 0.9578 - val_f1: 0.9581 - val_iou: 0.9002 - val_loss: 0.0096
Epoch 81/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9366 - f1: 0.9377 - iou: 0.8476 - loss: 0.0123 - val_acc: 0.9316 - val_f1: 0.9296 - val_iou: 0.8345 - val_loss: 0.0129
Epoch 82/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9497 - f1: 0.9501 - iou: 0.8798 - loss: 0.0105 - val_acc: 0.9452 - val_f1: 0.9448 - val_iou: 0.8691 - val_loss: 0.0114
Epoch 83/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9425 - f1: 0.9436 - iou: 0.8598 - loss: 0.0117 - val_acc: 0.9484 - val_f1: 0.9480 - val_iou: 0.8763 - val_loss: 0.0111
Epoch 84/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9421 - f1: 0.9430 - iou: 0.8656 - loss: 0.0120 - val_acc: 0.9221 - val_f1: 0.9189 - val_iou: 0.8108 - val_loss: 0.0148
Epoch 85/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9302 - f1: 0.9315 - iou: 0.8310 - loss: 0.0123 - val_acc: 0.9387 - val_f1: 0.9377 - val_iou: 0.8528 - val_loss: 0.0128
Epoch 86/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9348 - f1: 0.9363 - iou: 0.8439 - loss: 0.0127 - val_acc: 0.9537 - val_f1: 0.9537 - val_iou: 0.8896 - val_loss: 0.0100
Epoch 87/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9435 - f1: 0.9446 - iou: 0.8600 - loss: 0.0112 - val_acc: 0.9463 - val_f1: 0.9456 - val_iou: 0.8702 - val_loss: 0.0108
Epoch 88/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9451 - f1: 0.9458 - iou: 0.8619 - loss: 0.0109 - val_acc: 0.9500 - val_f1: 0.9497 - val_iou: 0.8801 - val_loss: 0.0104
Epoch 89/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9377 - f1: 0.9386 - iou: 0.8552 - loss: 0.0124 - val_acc: 0.9537 - val_f1: 0.9538 - val_iou: 0.8898 - val_loss: 0.0102
Epoch 90/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9421 - f1: 0.9431 - iou: 0.8570 - loss: 0.0115 - val_acc: 0.9370 - val_f1: 0.9359 - val_iou: 0.8489 - val_loss: 0.0121
Epoch 91/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9383 - f1: 0.9392 - iou: 0.8517 - loss: 0.0122 - val_acc: 0.9415 - val_f1: 0.9406 - val_iou: 0.8594 - val_loss: 0.0117
Epoch 92/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9324 - f1: 0.9339 - iou: 0.8383 - loss: 0.0122 - val_acc: 0.9504 - val_f1: 0.9500 - val_iou: 0.8806 - val_loss: 0.0109
Epoch 93/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - acc: 0.9322 - f1: 0.9323 - iou: 0.8339 - loss: 0.0130 - val_acc: 0.9561 - val_f1: 0.9566 - val_iou: 0.8973 - val_loss: 0.0099
Epoch 94/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9473 - f1: 0.9480 - iou: 0.8750 - loss: 0.0107 - val_acc: 0.9522 - val_f1: 0.9519 - val_iou: 0.8849 - val_loss: 0.0110
Epoch 95/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9326 - f1: 0.9340 - iou: 0.8331 - loss: 0.0123 - val_acc: 0.9549 - val_f1: 0.9553 - val_iou: 0.8940 - val_loss: 0.0101
Epoch 96/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9418 - f1: 0.9425 - iou: 0.8579 - loss: 0.0116 - val_acc: 0.9432 - val_f1: 0.9424 - val_iou: 0.8632 - val_loss: 0.0111
Epoch 97/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 25ms/step - acc: 0.9328 - f1: 0.9338 - iou: 0.8401 - loss: 0.0120 - val_acc: 0.9584 - val_f1: 0.9585 - val_iou: 0.9003 - val_loss: 0.0092
Epoch 98/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step - acc: 0.9504 - f1: 0.9511 - iou: 0.8772 - loss: 0.0100 - val_acc: 0.9574 - val_f1: 0.9577 - val_iou: 0.8990 - val_loss: 0.0094
Epoch 99/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 24ms/step - acc: 0.9486 - f1: 0.9492 - iou: 0.8793 - loss: 0.0110 - val_acc: 0.9565 - val_f1: 0.9572 - val_iou: 0.8986 - val_loss: 0.0097
Epoch 100/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 25ms/step - acc: 0.9380 - f1: 0.9394 - iou: 0.8477 - loss: 0.0121 - val_acc: 0.9570 - val_f1: 0.9574 - val_iou: 0.8988 - val_loss: 0.0092
Epoch 101/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9371 - f1: 0.9384 - iou: 0.8433 - loss: 0.0127 - val_acc: 0.9560 - val_f1: 0.9561 - val_iou: 0.8951 - val_loss: 0.0092
Epoch 102/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step - acc: 0.9333 - f1: 0.9344 - iou: 0.8387 - loss: 0.0126 - val_acc: 0.9503 - val_f1: 0.9497 - val_iou: 0.8796 - val_loss: 0.0108
Epoch 103/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9385 - f1: 0.9403 - iou: 0.8499 - loss: 0.0114 - val_acc: 0.9562 - val_f1: 0.9561 - val_iou: 0.8948 - val_loss: 0.0097
Epoch 104/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9477 - f1: 0.9483 - iou: 0.8708 - loss: 0.0103 - val_acc: 0.9516 - val_f1: 0.9511 - val_iou: 0.8828 - val_loss: 0.0104
Epoch 105/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9360 - f1: 0.9373 - iou: 0.8469 - loss: 0.0119 - val_acc: 0.9468 - val_f1: 0.9461 - val_iou: 0.8716 - val_loss: 0.0107
Epoch 106/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9383 - f1: 0.9389 - iou: 0.8573 - loss: 0.0117 - val_acc: 0.9363 - val_f1: 0.9347 - val_iou: 0.8455 - val_loss: 0.0119
Epoch 107/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - acc: 0.9364 - f1: 0.9374 - iou: 0.8418 - loss: 0.0119 - val_acc: 0.9483 - val_f1: 0.9478 - val_iou: 0.8756 - val_loss: 0.0105
Epoch 108/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9368 - f1: 0.9379 - iou: 0.8481 - loss: 0.0116 - val_acc: 0.9597 - val_f1: 0.9597 - val_iou: 0.9031 - val_loss: 0.0095
Epoch 109/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9315 - f1: 0.9332 - iou: 0.8336 - loss: 0.0120 - val_acc: 0.9505 - val_f1: 0.9501 - val_iou: 0.8808 - val_loss: 0.0100
Epoch 110/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9418 - f1: 0.9428 - iou: 0.8565 - loss: 0.0112 - val_acc: 0.9407 - val_f1: 0.9394 - val_iou: 0.8563 - val_loss: 0.0117
Epoch 111/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - acc: 0.9356 - f1: 0.9373 - iou: 0.8380 - loss: 0.0120 - val_acc: 0.9542 - val_f1: 0.9540 - val_iou: 0.8900 - val_loss: 0.0097
Epoch 112/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9438 - f1: 0.9447 - iou: 0.8622 - loss: 0.0113 - val_acc: 0.9574 - val_f1: 0.9574 - val_iou: 0.8977 - val_loss: 0.0094
Epoch 113/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9464 - f1: 0.9471 - iou: 0.8689 - loss: 0.0114 - val_acc: 0.9552 - val_f1: 0.9557 - val_iou: 0.8948 - val_loss: 0.0094
Epoch 114/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9497 - f1: 0.9502 - iou: 0.8774 - loss: 0.0100 - val_acc: 0.9524 - val_f1: 0.9525 - val_iou: 0.8870 - val_loss: 0.0101
Epoch 115/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9349 - f1: 0.9357 - iou: 0.8399 - loss: 0.0117 - val_acc: 0.9525 - val_f1: 0.9526 - val_iou: 0.8873 - val_loss: 0.0104
Epoch 116/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9482 - f1: 0.9486 - iou: 0.8757 - loss: 0.0110 - val_acc: 0.9575 - val_f1: 0.9575 - val_iou: 0.8983 - val_loss: 0.0096
Epoch 117/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9370 - f1: 0.9381 - iou: 0.8431 - loss: 0.0118 - val_acc: 0.9505 - val_f1: 0.9501 - val_iou: 0.8810 - val_loss: 0.0105
Epoch 118/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9477 - f1: 0.9484 - iou: 0.8716 - loss: 0.0108 - val_acc: 0.9563 - val_f1: 0.9563 - val_iou: 0.8954 - val_loss: 0.0095
Epoch 119/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9495 - f1: 0.9502 - iou: 0.8776 - loss: 0.0102 - val_acc: 0.9579 - val_f1: 0.9584 - val_iou: 0.9011 - val_loss: 0.0095
Epoch 120/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9426 - f1: 0.9436 - iou: 0.8632 - loss: 0.0110 - val_acc: 0.9518 - val_f1: 0.9514 - val_iou: 0.8835 - val_loss: 0.0100
Epoch 121/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9465 - f1: 0.9469 - iou: 0.8653 - loss: 0.0103 - val_acc: 0.9543 - val_f1: 0.9540 - val_iou: 0.8896 - val_loss: 0.0094
Epoch 122/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9388 - f1: 0.9393 - iou: 0.8528 - loss: 0.0115 - val_acc: 0.9485 - val_f1: 0.9478 - val_iou: 0.8752 - val_loss: 0.0099
Epoch 123/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 28ms/step - acc: 0.9431 - f1: 0.9440 - iou: 0.8602 - loss: 0.0111 - val_acc: 0.9582 - val_f1: 0.9585 - val_iou: 0.9010 - val_loss: 0.0090
Epoch 124/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9406 - f1: 0.9415 - iou: 0.8536 - loss: 0.0110 - val_acc: 0.9587 - val_f1: 0.9586 - val_iou: 0.9005 - val_loss: 0.0090
Epoch 125/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step - acc: 0.9455 - f1: 0.9463 - iou: 0.8622 - loss: 0.0104 - val_acc: 0.9471 - val_f1: 0.9464 - val_iou: 0.8721 - val_loss: 0.0108
Epoch 126/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9474 - f1: 0.9483 - iou: 0.8671 - loss: 0.0103 - val_acc: 0.9468 - val_f1: 0.9460 - val_iou: 0.8710 - val_loss: 0.0107
Epoch 127/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9398 - f1: 0.9407 - iou: 0.8503 - loss: 0.0110 - val_acc: 0.9564 - val_f1: 0.9562 - val_iou: 0.8947 - val_loss: 0.0093
Epoch 128/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9343 - f1: 0.9356 - iou: 0.8421 - loss: 0.0121 - val_acc: 0.9510 - val_f1: 0.9504 - val_iou: 0.8811 - val_loss: 0.0101
Epoch 129/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 25ms/step - acc: 0.9445 - f1: 0.9451 - iou: 0.8684 - loss: 0.0104 - val_acc: 0.9573 - val_f1: 0.9571 - val_iou: 0.8969 - val_loss: 0.0089
Epoch 130/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9454 - f1: 0.9457 - iou: 0.8718 - loss: 0.0115 - val_acc: 0.9597 - val_f1: 0.9596 - val_iou: 0.9025 - val_loss: 0.0086
Epoch 131/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step - acc: 0.9475 - f1: 0.9481 - iou: 0.8715 - loss: 0.0100 - val_acc: 0.9484 - val_f1: 0.9478 - val_iou: 0.8754 - val_loss: 0.0103
Epoch 132/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9502 - f1: 0.9510 - iou: 0.8743 - loss: 0.0095 - val_acc: 0.9529 - val_f1: 0.9527 - val_iou: 0.8869 - val_loss: 0.0096
Epoch 133/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9489 - f1: 0.9495 - iou: 0.8765 - loss: 0.0103 - val_acc: 0.9563 - val_f1: 0.9561 - val_iou: 0.8947 - val_loss: 0.0090
Epoch 134/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9438 - f1: 0.9445 - iou: 0.8651 - loss: 0.0111 - val_acc: 0.9596 - val_f1: 0.9596 - val_iou: 0.9027 - val_loss: 0.0090
Epoch 135/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9468 - f1: 0.9477 - iou: 0.8732 - loss: 0.0106 - val_acc: 0.9559 - val_f1: 0.9558 - val_iou: 0.8940 - val_loss: 0.0096
Epoch 136/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9532 - f1: 0.9538 - iou: 0.8852 - loss: 0.0098 - val_acc: 0.9569 - val_f1: 0.9567 - val_iou: 0.8961 - val_loss: 0.0095
Epoch 137/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9493 - f1: 0.9500 - iou: 0.8770 - loss: 0.0103 - val_acc: 0.9589 - val_f1: 0.9589 - val_iou: 0.9012 - val_loss: 0.0090
Epoch 138/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9462 - f1: 0.9472 - iou: 0.8666 - loss: 0.0104 - val_acc: 0.9544 - val_f1: 0.9540 - val_iou: 0.8895 - val_loss: 0.0098
Epoch 139/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9497 - f1: 0.9504 - iou: 0.8763 - loss: 0.0097 - val_acc: 0.9593 - val_f1: 0.9592 - val_iou: 0.9017 - val_loss: 0.0089
Epoch 140/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9389 - f1: 0.9403 - iou: 0.8516 - loss: 0.0114 - val_acc: 0.9546 - val_f1: 0.9543 - val_iou: 0.8902 - val_loss: 0.0099
Epoch 141/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9479 - f1: 0.9487 - iou: 0.8650 - loss: 0.0098 - val_acc: 0.9595 - val_f1: 0.9596 - val_iou: 0.9030 - val_loss: 0.0088
Epoch 142/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9490 - f1: 0.9498 - iou: 0.8756 - loss: 0.0102 - val_acc: 0.9407 - val_f1: 0.9395 - val_iou: 0.8566 - val_loss: 0.0112
Epoch 143/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9424 - f1: 0.9433 - iou: 0.8566 - loss: 0.0109 - val_acc: 0.9544 - val_f1: 0.9541 - val_iou: 0.8901 - val_loss: 0.0095
Epoch 144/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - acc: 0.9512 - f1: 0.9520 - iou: 0.8795 - loss: 0.0102 - val_acc: 0.9598 - val_f1: 0.9598 - val_iou: 0.9033 - val_loss: 0.0087
Epoch 145/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9444 - f1: 0.9453 - iou: 0.8646 - loss: 0.0105 - val_acc: 0.9577 - val_f1: 0.9577 - val_iou: 0.8983 - val_loss: 0.0088
Epoch 146/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9463 - f1: 0.9472 - iou: 0.8671 - loss: 0.0107 - val_acc: 0.9516 - val_f1: 0.9512 - val_iou: 0.8831 - val_loss: 0.0099
Epoch 147/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9560 - f1: 0.9566 - iou: 0.8860 - loss: 0.0093 - val_acc: 0.9551 - val_f1: 0.9549 - val_iou: 0.8918 - val_loss: 0.0091
Epoch 148/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9442 - f1: 0.9450 - iou: 0.8620 - loss: 0.0111 - val_acc: 0.9555 - val_f1: 0.9553 - val_iou: 0.8927 - val_loss: 0.0092
Epoch 149/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9470 - f1: 0.9475 - iou: 0.8688 - loss: 0.0101 - val_acc: 0.9591 - val_f1: 0.9590 - val_iou: 0.9012 - val_loss: 0.0088
Epoch 150/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9515 - f1: 0.9520 - iou: 0.8834 - loss: 0.0108 - val_acc: 0.9583 - val_f1: 0.9583 - val_iou: 0.8998 - val_loss: 0.0089
Epoch 151/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 27ms/step - acc: 0.9444 - f1: 0.9450 - iou: 0.8654 - loss: 0.0107 - val_acc: 0.9606 - val_f1: 0.9605 - val_iou: 0.9049 - val_loss: 0.0085
Epoch 152/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 18ms/step - acc: 0.9520 - f1: 0.9526 - iou: 0.8814 - loss: 0.0095 - val_acc: 0.9536 - val_f1: 0.9532 - val_iou: 0.8878 - val_loss: 0.0094
Epoch 153/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 25ms/step - acc: 0.9408 - f1: 0.9413 - iou: 0.8554 - loss: 0.0107 - val_acc: 0.9619 - val_f1: 0.9620 - val_iou: 0.9084 - val_loss: 0.0083
Epoch 154/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 21ms/step - acc: 0.9508 - f1: 0.9516 - iou: 0.8788 - loss: 0.0100 - val_acc: 0.9557 - val_f1: 0.9555 - val_iou: 0.8931 - val_loss: 0.0093
Epoch 155/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9465 - f1: 0.9469 - iou: 0.8695 - loss: 0.0101 - val_acc: 0.9598 - val_f1: 0.9598 - val_iou: 0.9035 - val_loss: 0.0086
Epoch 156/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9566 - f1: 0.9570 - iou: 0.8941 - loss: 0.0094 - val_acc: 0.9575 - val_f1: 0.9574 - val_iou: 0.8978 - val_loss: 0.0089
Epoch 157/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9494 - f1: 0.9500 - iou: 0.8766 - loss: 0.0104 - val_acc: 0.9590 - val_f1: 0.9591 - val_iou: 0.9016 - val_loss: 0.0088
Epoch 158/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9506 - f1: 0.9513 - iou: 0.8779 - loss: 0.0095 - val_acc: 0.9547 - val_f1: 0.9544 - val_iou: 0.8904 - val_loss: 0.0093
Epoch 159/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9489 - f1: 0.9493 - iou: 0.8759 - loss: 0.0108 - val_acc: 0.9578 - val_f1: 0.9577 - val_iou: 0.8983 - val_loss: 0.0089
Epoch 160/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9574 - f1: 0.9580 - iou: 0.8917 - loss: 0.0093 - val_acc: 0.9561 - val_f1: 0.9559 - val_iou: 0.8940 - val_loss: 0.0090
Epoch 161/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9450 - f1: 0.9456 - iou: 0.8683 - loss: 0.0106 - val_acc: 0.9502 - val_f1: 0.9496 - val_iou: 0.8792 - val_loss: 0.0099
Epoch 162/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9445 - f1: 0.9454 - iou: 0.8579 - loss: 0.0102 - val_acc: 0.9553 - val_f1: 0.9550 - val_iou: 0.8920 - val_loss: 0.0094
Epoch 163/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9397 - f1: 0.9407 - iou: 0.8538 - loss: 0.0111 - val_acc: 0.9573 - val_f1: 0.9572 - val_iou: 0.8971 - val_loss: 0.0090
Epoch 164/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - acc: 0.9475 - f1: 0.9485 - iou: 0.8685 - loss: 0.0100 - val_acc: 0.9575 - val_f1: 0.9575 - val_iou: 0.8978 - val_loss: 0.0090
Epoch 165/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9491 - f1: 0.9496 - iou: 0.8777 - loss: 0.0102 - val_acc: 0.9558 - val_f1: 0.9557 - val_iou: 0.8937 - val_loss: 0.0092
Epoch 166/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9523 - f1: 0.9530 - iou: 0.8792 - loss: 0.0093 - val_acc: 0.9550 - val_f1: 0.9548 - val_iou: 0.8916 - val_loss: 0.0091
Epoch 167/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9495 - f1: 0.9503 - iou: 0.8690 - loss: 0.0094 - val_acc: 0.9579 - val_f1: 0.9579 - val_iou: 0.8989 - val_loss: 0.0087
Epoch 168/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9498 - f1: 0.9501 - iou: 0.8801 - loss: 0.0101 - val_acc: 0.9571 - val_f1: 0.9570 - val_iou: 0.8969 - val_loss: 0.0088
Epoch 169/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9451 - f1: 0.9459 - iou: 0.8696 - loss: 0.0104 - val_acc: 0.9561 - val_f1: 0.9560 - val_iou: 0.8942 - val_loss: 0.0089
Epoch 170/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9530 - f1: 0.9536 - iou: 0.8844 - loss: 0.0094 - val_acc: 0.9552 - val_f1: 0.9549 - val_iou: 0.8917 - val_loss: 0.0091
Epoch 171/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9436 - f1: 0.9442 - iou: 0.8629 - loss: 0.0107 - val_acc: 0.9553 - val_f1: 0.9550 - val_iou: 0.8919 - val_loss: 0.0092
Epoch 172/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9533 - f1: 0.9539 - iou: 0.8827 - loss: 0.0095 - val_acc: 0.9581 - val_f1: 0.9579 - val_iou: 0.8987 - val_loss: 0.0088
Epoch 173/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9518 - f1: 0.9523 - iou: 0.8841 - loss: 0.0101 - val_acc: 0.9577 - val_f1: 0.9575 - val_iou: 0.8976 - val_loss: 0.0089
Epoch 174/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9511 - f1: 0.9518 - iou: 0.8803 - loss: 0.0097 - val_acc: 0.9569 - val_f1: 0.9567 - val_iou: 0.8959 - val_loss: 0.0089
Epoch 175/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9529 - f1: 0.9533 - iou: 0.8848 - loss: 0.0095 - val_acc: 0.9587 - val_f1: 0.9586 - val_iou: 0.9005 - val_loss: 0.0085
Epoch 176/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9474 - f1: 0.9483 - iou: 0.8707 - loss: 0.0105 - val_acc: 0.9564 - val_f1: 0.9561 - val_iou: 0.8945 - val_loss: 0.0090
Epoch 177/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9524 - f1: 0.9531 - iou: 0.8807 - loss: 0.0094 - val_acc: 0.9560 - val_f1: 0.9558 - val_iou: 0.8938 - val_loss: 0.0090
Epoch 178/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9564 - f1: 0.9570 - iou: 0.8858 - loss: 0.0088 - val_acc: 0.9562 - val_f1: 0.9561 - val_iou: 0.8945 - val_loss: 0.0089
Epoch 179/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9532 - f1: 0.9537 - iou: 0.8804 - loss: 0.0096 - val_acc: 0.9556 - val_f1: 0.9554 - val_iou: 0.8929 - val_loss: 0.0091
Epoch 180/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9484 - f1: 0.9492 - iou: 0.8707 - loss: 0.0103 - val_acc: 0.9559 - val_f1: 0.9557 - val_iou: 0.8937 - val_loss: 0.0090
Epoch 181/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9481 - f1: 0.9486 - iou: 0.8731 - loss: 0.0105 - val_acc: 0.9567 - val_f1: 0.9565 - val_iou: 0.8954 - val_loss: 0.0089
Epoch 182/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9560 - f1: 0.9565 - iou: 0.8888 - loss: 0.0084 - val_acc: 0.9579 - val_f1: 0.9578 - val_iou: 0.8985 - val_loss: 0.0087
Epoch 183/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 25ms/step - acc: 0.9462 - f1: 0.9469 - iou: 0.8683 - loss: 0.0102 - val_acc: 0.9574 - val_f1: 0.9572 - val_iou: 0.8971 - val_loss: 0.0088
Epoch 184/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - acc: 0.9529 - f1: 0.9535 - iou: 0.8811 - loss: 0.0098 - val_acc: 0.9570 - val_f1: 0.9568 - val_iou: 0.8961 - val_loss: 0.0089
Epoch 185/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9539 - f1: 0.9545 - iou: 0.8825 - loss: 0.0096 - val_acc: 0.9564 - val_f1: 0.9562 - val_iou: 0.8946 - val_loss: 0.0090
Epoch 186/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9498 - f1: 0.9509 - iou: 0.8714 - loss: 0.0097 - val_acc: 0.9564 - val_f1: 0.9562 - val_iou: 0.8946 - val_loss: 0.0090
Epoch 187/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9533 - f1: 0.9538 - iou: 0.8850 - loss: 0.0092 - val_acc: 0.9565 - val_f1: 0.9563 - val_iou: 0.8950 - val_loss: 0.0090
Epoch 188/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9451 - f1: 0.9456 - iou: 0.8674 - loss: 0.0104 - val_acc: 0.9569 - val_f1: 0.9568 - val_iou: 0.8960 - val_loss: 0.0089
Epoch 189/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9476 - f1: 0.9484 - iou: 0.8714 - loss: 0.0099 - val_acc: 0.9573 - val_f1: 0.9571 - val_iou: 0.8968 - val_loss: 0.0088
Epoch 190/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9514 - f1: 0.9520 - iou: 0.8815 - loss: 0.0093 - val_acc: 0.9580 - val_f1: 0.9579 - val_iou: 0.8987 - val_loss: 0.0087
Epoch 191/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9591 - f1: 0.9593 - iou: 0.9002 - loss: 0.0088 - val_acc: 0.9580 - val_f1: 0.9579 - val_iou: 0.8986 - val_loss: 0.0087
Epoch 192/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9532 - f1: 0.9538 - iou: 0.8819 - loss: 0.0092 - val_acc: 0.9581 - val_f1: 0.9580 - val_iou: 0.8989 - val_loss: 0.0087
Epoch 193/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9504 - f1: 0.9511 - iou: 0.8762 - loss: 0.0095 - val_acc: 0.9582 - val_f1: 0.9581 - val_iou: 0.8993 - val_loss: 0.0087
Epoch 194/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 24ms/step - acc: 0.9509 - f1: 0.9517 - iou: 0.8770 - loss: 0.0097 - val_acc: 0.9584 - val_f1: 0.9582 - val_iou: 0.8995 - val_loss: 0.0087
Epoch 195/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step - acc: 0.9505 - f1: 0.9509 - iou: 0.8819 - loss: 0.0101 - val_acc: 0.9578 - val_f1: 0.9577 - val_iou: 0.8981 - val_loss: 0.0087
Epoch 196/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - acc: 0.9522 - f1: 0.9526 - iou: 0.8827 - loss: 0.0096 - val_acc: 0.9577 - val_f1: 0.9575 - val_iou: 0.8978 - val_loss: 0.0088
Epoch 197/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - acc: 0.9533 - f1: 0.9539 - iou: 0.8851 - loss: 0.0098 - val_acc: 0.9576 - val_f1: 0.9575 - val_iou: 0.8976 - val_loss: 0.0088
Epoch 198/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9455 - f1: 0.9466 - iou: 0.8675 - loss: 0.0105 - val_acc: 0.9573 - val_f1: 0.9571 - val_iou: 0.8968 - val_loss: 0.0088
Epoch 199/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - acc: 0.9528 - f1: 0.9536 - iou: 0.8824 - loss: 0.0095 - val_acc: 0.9576 - val_f1: 0.9574 - val_iou: 0.8975 - val_loss: 0.0088
Epoch 200/200
25/25 ━━━━━━━━━━━━━━━━━━━━ 1s 22ms/step - acc: 0.9470 - f1: 0.9476 - iou: 0.8696 - loss: 0.0099 - val_acc: 0.9575 - val_f1: 0.9573 - val_iou: 0.8972 - val_loss: 0.0088
31/31 ━━━━━━━━━━━━━━━━━━━━ 1s 1ms/step
31/31 ━━━━━━━━━━━━━━━━━━━━ 0s 1ms/step - acc: 0.9635 - f1: 0.9637 - iou: 0.9116 - loss: 0.0083
INFO [TEST SET] acc=96.19%, f1=96.20%, iou=90.84%, loss=0.83% train.py:222

Saved figure from notebook cell 25

Now that we have trained the model, we will evaluate the model on the test dataset. Similar to training, we will provide the high-level configuration to the task process.

task.evaluate(params)
Subject: 100%|██████████| 56/56 [00:19<00:00, 2.90it/s]
INFO Testing Results evaluate.py:130
19/19 ━━━━━━━━━━━━━━━━━━━━ 2s 27ms/step - acc: 0.9654 - f1: 0.9657 - iou: 0.9123 - loss: 0.0076
INFO [TEST SET] acc=95.87%, f1=95.91%, iou=89.27%, loss=0.85% evaluate.py:132

Let’s visualize the confusion matrix to understand the model’s performance on each class.

IPython.display.Image(filename=params.job_dir / "confusion_matrix_test.png", width=500)

Saved figure from notebook cell 29

Once we have trained and evaluated the model, we need to export the model into a format that can be used for inference on the edge. Currently, we export the model to TensorFlow Lite flatbuffer format. This will also generate a C header file that can be used with TensorFlow Lite for Microcontrollers (TFLM).

For running on bare metal, we will perform post-training quantization to convert the model to an 8-bit integer model. The weights and activations will be quantized to 8-bits and biases will be quantized to 32-bits. This will reduce the model size and improve the inference speed.

quantization = sk.QuantizationParams(
enabled=True,
format="FP32",
io_type="float32",
conversion="CONCRETE",
)
params.quantization = quantization
# TF dumps a lot of info to stdout, so we redirect it to /dev/null
with open(os.devnull, 'w') as devnull:
with contextlib.redirect_stdout(devnull), contextlib.redirect_stderr(devnull):
task.export(params)
[12/16/25 00:29:04] WARNING WARNING:absl:Please consider providing the trackable_obj argument in the lite.py:2203
from_concrete_functions. Providing without the trackable_obj argument is
deprecated and it will use the deprecated conversion path.
I0000 00:00:1765844944.016353 4340 devices.cc:67] Number of eligible GPUs (core count >= 8, compute capability >= 0.0): 1
I0000 00:00:1765844944.016431 4340 single_machine.cc:376] Starting new session
I0000 00:00:1765844944.019835 4340 gpu_device.cc:2020] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 15543 MB memory: -> device: 0, name: NVIDIA GeForce RTX 4090, pci bus id: 0000:01:00.0, compute capability: 8.9
W0000 00:00:1765844944.106038 4340 tf_tfl_flatbuffer_helpers.cc:364] Ignored output_format.
W0000 00:00:1765844944.106051 4340 tf_tfl_flatbuffer_helpers.cc:367] Ignored drop_control_dependency.
INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
INFO [TF METRICS] LOSS=0.2055 ACC=0.9500 F1=0.9506 export.py:111
INFO [TFL METRICS] LOSS=0.2055 ACC=0.9500 F1=0.9506 export.py:112
INFO Validation passed (0.00%) export.py:120

We will run a demo on the PC to verify that the model is working as expected. The demo will load the model and run inferences across a randomly selected subject. The demo will also provide the model’s prediction and the corresponding class name.

task.demo(params=params)
Inference: 100%|██████████| 425/425 [00:14<00:00, 28.87it/s]

Saved figure from notebook cell 34