Skip to content

The data

This notebook aims at presenting the process of creating the end-to-end modelling pipeline with the use of PyPlatypus package.

As starting point, the data is crucial, let's proceed with gathering it hence. We will be working with the satellite images of which the 38-Cloud: Cloud Segmentation in Satellite Images dataset is composed. These are TIF files organized in accordance with the following structure:

38-Cloud_training

----|train_blue

--------|blue_IMAGE_NAME1.TIF

--------|blue_IMAGE_NAME2.TIF

...

--------|blue_IMAGE_NAMEN.TIF

----|train_green

--------|green_IMAGE_NAME1.TIF

--------|green_IMAGE_NAME2.TIF

...

--------|green_IMAGE_NAMEN.TIF

----|train_red

--------|red_IMAGE_NAME1.TIF

--------|red_IMAGE_NAME2.TIF

...

--------|red_IMAGE_NAMEN.TIF

----|train_nir

--------|nir_IMAGE_NAME1.TIF

--------|nir_IMAGE_NAME2.TIF

...

--------|nir_IMAGE_NAMEN.TIF

----|train_gt

--------|gt_IMAGE_NAME1.TIF

--------|gt_IMAGE_NAME2.TIF

...

--------|gt_IMAGE_NAMEN.TIF

Our image will be composed of 4 layers in train_blue, train_green, train_red and train_nir folders. In the train_gt we can fin true segmentation masks.

The preparation

After downloading the data, unpack it and move to any preferred destination. For this example we will be interested only in 38-Cloud_training subdirectories, thus other files could be put aside. Let's take a look at the exemplary image.

! pip install pyplatypus
from pathlib import Path
import os
import pandas as pd
cwd = Path.cwd()
while cwd.stem != "pyplatypus":
    cwd = cwd.parent
os.chdir(cwd)

In the first step we will create a config file with the images and masks paths for each instance.

cloud_path = "examples/data/38-Cloud/38-Cloud_training/train_gt/"
mask_paths = [os.path.join(cloud_path, mp) for mp in os.listdir(cloud_path)]
red_images_paths = [mp.replace('gt', 'red') for mp in mask_paths]
green_images_paths = [mp.replace('gt', 'green') for mp in mask_paths]
blue_images_paths = [mp.replace('gt', 'blue') for mp in mask_paths]
nir_images_paths = [mp.replace('gt', 'nir') for mp in mask_paths]
config_df = pd.DataFrame({
    'images': [r + ';' + g + ';' + b + ';' + n for r, g, b, n in zip(red_images_paths, green_images_paths, blue_images_paths, nir_images_paths)],
    'masks': mask_paths
})
config_df.iloc[0:5040, :].to_csv('examples/30_clouds_train.csv', index=False)
config_df.iloc[5040:6720, :].to_csv('examples/30_clouds_validation.csv', index=False)
config_df.iloc[6720:, :].to_csv('examples/30_clouds_test.csv', index=False)
print("Sample image paths:")
print(config_df.images[0])
print("Sample mask path:")
print(config_df.masks[0])
Sample image paths:
examples/data/38-Cloud/38-Cloud_training/train_red/red_patch_161_8_by_7_LC08_L1TP_064014_20160420_20170223_01_T1.TIF;examples/data/38-Cloud/38-Cloud_training/train_green/green_patch_161_8_by_7_LC08_L1TP_064014_20160420_20170223_01_T1.TIF;examples/data/38-Cloud/38-Cloud_training/train_blue/blue_patch_161_8_by_7_LC08_L1TP_064014_20160420_20170223_01_T1.TIF;examples/data/38-Cloud/38-Cloud_training/train_nir/nir_patch_161_8_by_7_LC08_L1TP_064014_20160420_20170223_01_T1.TIF
Sample mask path:
examples/data/38-Cloud/38-Cloud_training/train_gt/gt_patch_161_8_by_7_LC08_L1TP_064014_20160420_20170223_01_T1.TIF

Let's now inspect the input message that we are to send to PlatypusSolver in order to run it.

import yaml
import json
with open(r"examples/claud_38_config.yaml") as stream:
    config = yaml.safe_load(stream)
    print(yaml.dump(config, indent=4, sort_keys=True))
object_detection: null
semantic_segmentation:
    data:
        colormap:
        -   - 0
            - 0
            - 0
        -   - 255
            - 255
            - 255
        column_sep: ;
        mode: config_file
        shuffle: false
        subdirs:
        - images
        - masks
        train_path: examples/30_clouds_train.csv
        validation_path: examples/30_clouds_validation.csv
    models:
    -   activation_layer: relu
        augmentation:
            Blur:
                always_apply: false
                blur_limit: 7
                p: 0.5
            Flip:
                always_apply: false
                p: 0.5
            ToFloat:
                always_apply: true
                max_value: 65536
                p: 1.0
        batch_normalization: true
        batch_size: 32
        blocks: 4
        callbacks:
            EarlyStopping:
                mode: max
                monitor: val_dice_coefficient
                patience: 15
            ModelCheckpoint:
                filepath: 38c_u_net.h5
                mode: max
                monitor: val_dice_coefficient
                save_best_only: true
        channels:
        - 1
        - 1
        - 1
        - 1
        deep_supervision: false
        dropout: 0.2
        epochs: 1
        filters: 16
        fine_tuning_path: 38c_u_net.h5
        fit: false
        h_splits: 0
        kernel_initializer: he_normal
        linknet: false
        loss:
            focal loss:
                gamma: 1
        metrics:
            Dice Coefficient: null
            IOU Coefficient: null
            Tversky coefficient:
                alpha: 1
        n_class: 2
        name: 38c_u_net
        net_h: 256
        net_w: 256
        optimizer:
            Adam:
                amsgrad: false
                beta_1: 0.9
                beta_2: 0.999
                epsilon: 1e-07
                learning_rate: 0.001
        plus_plus: false
        resunet: false
        u_net_conv_block_width: 2
        use_separable_conv2d: true
        use_spatial_droput2d: true
        use_up_sampling2d: false
        w_splits: 0
    -   activation_layer: relu
        augmentation:
            Blur:
                always_apply: false
                blur_limit: 7
                p: 0.5
            Flip:
                always_apply: false
                p: 0.5
            ToFloat:
                always_apply: true
                max_value: 65536
                p: 1.0
        batch_normalization: true
        batch_size: 8
        blocks: 2
        callbacks:
            EarlyStopping:
                mode: max
                monitor: val_dice_coefficient
                patience: 15
            ModelCheckpoint:
                filepath: 38c_u_net_plus_plus.h5
                mode: max
                monitor: val_dice_coefficient
                save_best_only: true
        channels:
        - 1
        - 1
        - 1
        - 1
        deep_supervision: false
        dropout: 0.2
        epochs: 1
        filters: 16
        fine_tuning_path: 38c_u_net_plus_plus.h5
        fit: false
        h_splits: 0
        kernel_initializer: he_normal
        linknet: false
        loss:
            focal loss:
                gamma: 1
        metrics:
            Dice Coefficient: null
            IOU Coefficient: null
            Tversky coefficient:
                alpha: 1
        n_class: 2
        name: 38c_u_net_plus_plus
        net_h: 256
        net_w: 256
        optimizer:
            Adam:
                amsgrad: false
                beta_1: 0.9
                beta_2: 0.999
                epsilon: 1e-07
                learning_rate: 0.001
        plus_plus: true
        u_net_conv_block_width: 2
        use_separable_conv2d: true
        use_spatial_dropout2d: true
        use_up_sampling2d: true
        w_splits: 0

What might have struck you is that the config is organized so that it might potentially tell the Solver to train multiple models while using a complex augmentation pipelines and loss functions coming from the rather large set of ones available within the PyPlatypus framework. For we have spotted that some images are given in negatives, we added InvertImg transformation to the Res-U-Net augmentation.

u_net.png

The model

The models present in the PyPlatypus segmentation submodule are U-Net based.

U-Net was originally developed for biomedical data segmentation. As you can see in the picture above architecture is very similar to autoencoder and it looks like the letter U, hence the name. Model is composed of 2 parts, and each part has some number of convolutional blocks (3 in the image above). Number of blocks will be hyperparameter in our model.

To build a U-Net model in platypus use u_net function. You have to specify:

  • Number of convolutional blocks,
  • Input image height and width - it need not to be in the form 2^N, as we added the generalizng layer.
  • Indicator determining if the input image will be loaded as grayscale or RGB.
  • Number of classes - in our case we have only 2 (background and nuclei).
  • Additional arguments for CNN such as: number of filters, dropout rate etc.

Hereafter the models' building process is rather straightforward.

from pyplatypus.solvers.platypus_cv_solver import PlatypusSolver


ps = PlatypusSolver(
    config_yaml_path=Path("examples/claud_38_config.yaml")
)
ps.train()
5040 images detected!
Set 'steps_per_epoch' to: 158
1680 images detected!
Set 'steps_per_epoch' to: 53


2022-10-12 21:24:22.953609: 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
2022-10-12 21:24:22.958717: 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
2022-10-12 21:24:22.958930: 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
2022-10-12 21:24:22.959592: 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
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2022-10-12 21:24:22.960771: 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
2022-10-12 21:24:22.961053: 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
2022-10-12 21:24:22.961215: 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
2022-10-12 21:24:23.405807: 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
2022-10-12 21:24:23.406061: 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
2022-10-12 21:24:23.406219: 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
2022-10-12 21:24:23.406336: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1532] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 7025 MB memory:  -> device: 0, name: NVIDIA GeForce GTX 1070, pci bus id: 0000:01:00.0, compute capability: 6.1


Epoch 1/100


2022-10-12 21:24:31.707394: I tensorflow/stream_executor/cuda/cuda_dnn.cc:384] Loaded cuDNN version 8101


158/158 [==============================] - 488s 3s/step - loss: 0.1611 - categorical_crossentropy: 0.4626 - dice_coefficient: 0.6246 - iou_coefficient: 0.4574 - tversky_coefficient: 0.5237 - val_loss: 0.2437 - val_categorical_crossentropy: 0.6301 - val_dice_coefficient: 0.5095 - val_iou_coefficient: 0.3418 - val_tversky_coefficient: 0.4059
Epoch 2/100
158/158 [==============================] - 466s 3s/step - loss: 0.0857 - categorical_crossentropy: 0.2694 - dice_coefficient: 0.7692 - iou_coefficient: 0.6260 - tversky_coefficient: 0.6845 - val_loss: 0.2125 - val_categorical_crossentropy: 0.5803 - val_dice_coefficient: 0.5372 - val_iou_coefficient: 0.3673 - val_tversky_coefficient: 0.4327
Epoch 3/100
158/158 [==============================] - 466s 3s/step - loss: 0.0698 - categorical_crossentropy: 0.2134 - dice_coefficient: 0.8155 - iou_coefficient: 0.6893 - tversky_coefficient: 0.7408 - val_loss: 0.1712 - val_categorical_crossentropy: 0.4942 - val_dice_coefficient: 0.5967 - val_iou_coefficient: 0.4254 - val_tversky_coefficient: 0.4925
Epoch 4/100
158/158 [==============================] - 464s 3s/step - loss: 0.0650 - categorical_crossentropy: 0.1940 - dice_coefficient: 0.8323 - iou_coefficient: 0.7136 - tversky_coefficient: 0.7618 - val_loss: 0.1159 - val_categorical_crossentropy: 0.3223 - val_dice_coefficient: 0.7377 - val_iou_coefficient: 0.5849 - val_tversky_coefficient: 0.6467
Epoch 5/100
158/158 [==============================] - 465s 3s/step - loss: 0.0598 - categorical_crossentropy: 0.1800 - dice_coefficient: 0.8426 - iou_coefficient: 0.7291 - tversky_coefficient: 0.7750 - val_loss: 0.0621 - val_categorical_crossentropy: 0.2005 - val_dice_coefficient: 0.8209 - val_iou_coefficient: 0.6969 - val_tversky_coefficient: 0.7469
Epoch 6/100
158/158 [==============================] - 471s 3s/step - loss: 0.0566 - categorical_crossentropy: 0.1681 - dice_coefficient: 0.8525 - iou_coefficient: 0.7439 - tversky_coefficient: 0.7877 - val_loss: 0.0599 - val_categorical_crossentropy: 0.1784 - val_dice_coefficient: 0.8419 - val_iou_coefficient: 0.7277 - val_tversky_coefficient: 0.7734
Epoch 7/100
158/158 [==============================] - 460s 3s/step - loss: 0.0557 - categorical_crossentropy: 0.1633 - dice_coefficient: 0.8568 - iou_coefficient: 0.7505 - tversky_coefficient: 0.7932 - val_loss: 0.0803 - val_categorical_crossentropy: 0.2159 - val_dice_coefficient: 0.8217 - val_iou_coefficient: 0.6983 - val_tversky_coefficient: 0.7480
Epoch 8/100
158/158 [==============================] - 461s 3s/step - loss: 0.0542 - categorical_crossentropy: 0.1583 - dice_coefficient: 0.8610 - iou_coefficient: 0.7569 - tversky_coefficient: 0.7986 - val_loss: 0.1105 - val_categorical_crossentropy: 0.2339 - val_dice_coefficient: 0.8279 - val_iou_coefficient: 0.7074 - val_tversky_coefficient: 0.7558
Epoch 9/100
158/158 [==============================] - 462s 3s/step - loss: 0.0531 - categorical_crossentropy: 0.1579 - dice_coefficient: 0.8602 - iou_coefficient: 0.7558 - tversky_coefficient: 0.7976 - val_loss: 0.0578 - val_categorical_crossentropy: 0.1710 - val_dice_coefficient: 0.8474 - val_iou_coefficient: 0.7358 - val_tversky_coefficient: 0.7803
Epoch 10/100
158/158 [==============================] - 466s 3s/step - loss: 0.0514 - categorical_crossentropy: 0.1497 - dice_coefficient: 0.8675 - iou_coefficient: 0.7671 - tversky_coefficient: 0.8071 - val_loss: 0.0421 - val_categorical_crossentropy: 0.1543 - val_dice_coefficient: 0.8526 - val_iou_coefficient: 0.7437 - val_tversky_coefficient: 0.7871
Epoch 11/100
158/158 [==============================] - 464s 3s/step - loss: 0.0497 - categorical_crossentropy: 0.1465 - dice_coefficient: 0.8693 - iou_coefficient: 0.7699 - tversky_coefficient: 0.8095 - val_loss: 0.0583 - val_categorical_crossentropy: 0.1512 - val_dice_coefficient: 0.8704 - val_iou_coefficient: 0.7715 - val_tversky_coefficient: 0.8102
Epoch 12/100
158/158 [==============================] - 467s 3s/step - loss: 0.0484 - categorical_crossentropy: 0.1432 - dice_coefficient: 0.8720 - iou_coefficient: 0.7740 - tversky_coefficient: 0.8129 - val_loss: 0.0553 - val_categorical_crossentropy: 0.1691 - val_dice_coefficient: 0.8479 - val_iou_coefficient: 0.7368 - val_tversky_coefficient: 0.7811
Epoch 13/100
158/158 [==============================] - 461s 3s/step - loss: 0.0473 - categorical_crossentropy: 0.1387 - dice_coefficient: 0.8756 - iou_coefficient: 0.7798 - tversky_coefficient: 0.8178 - val_loss: 0.0713 - val_categorical_crossentropy: 0.1784 - val_dice_coefficient: 0.8528 - val_iou_coefficient: 0.7446 - val_tversky_coefficient: 0.7876
Epoch 14/100
158/158 [==============================] - 465s 3s/step - loss: 0.0484 - categorical_crossentropy: 0.1411 - dice_coefficient: 0.8740 - iou_coefficient: 0.7773 - tversky_coefficient: 0.8157 - val_loss: 0.0624 - val_categorical_crossentropy: 0.1461 - val_dice_coefficient: 0.8801 - val_iou_coefficient: 0.7868 - val_tversky_coefficient: 0.8229
Epoch 15/100
158/158 [==============================] - 464s 3s/step - loss: 0.0474 - categorical_crossentropy: 0.1384 - dice_coefficient: 0.8760 - iou_coefficient: 0.7805 - tversky_coefficient: 0.8183 - val_loss: 0.0409 - val_categorical_crossentropy: 0.1461 - val_dice_coefficient: 0.8599 - val_iou_coefficient: 0.7548 - val_tversky_coefficient: 0.7964
Epoch 16/100
158/158 [==============================] - 466s 3s/step - loss: 0.0457 - categorical_crossentropy: 0.1344 - dice_coefficient: 0.8788 - iou_coefficient: 0.7848 - tversky_coefficient: 0.8219 - val_loss: 0.0668 - val_categorical_crossentropy: 0.1686 - val_dice_coefficient: 0.8593 - val_iou_coefficient: 0.7543 - val_tversky_coefficient: 0.7959
Epoch 17/100
158/158 [==============================] - 468s 3s/step - loss: 0.0432 - categorical_crossentropy: 0.1295 - dice_coefficient: 0.8819 - iou_coefficient: 0.7896 - tversky_coefficient: 0.8259 - val_loss: 0.0441 - val_categorical_crossentropy: 0.1374 - val_dice_coefficient: 0.8720 - val_iou_coefficient: 0.7738 - val_tversky_coefficient: 0.8123
Epoch 18/100
158/158 [==============================] - 462s 3s/step - loss: 0.0453 - categorical_crossentropy: 0.1330 - dice_coefficient: 0.8800 - iou_coefficient: 0.7867 - tversky_coefficient: 0.8235 - val_loss: 0.0351 - val_categorical_crossentropy: 0.1080 - val_dice_coefficient: 0.8957 - val_iou_coefficient: 0.8117 - val_tversky_coefficient: 0.8435
Epoch 19/100
158/158 [==============================] - 462s 3s/step - loss: 0.0450 - categorical_crossentropy: 0.1316 - dice_coefficient: 0.8812 - iou_coefficient: 0.7886 - tversky_coefficient: 0.8251 - val_loss: 0.0343 - val_categorical_crossentropy: 0.1114 - val_dice_coefficient: 0.8912 - val_iou_coefficient: 0.8044 - val_tversky_coefficient: 0.8375
Epoch 20/100
158/158 [==============================] - 464s 3s/step - loss: 0.0437 - categorical_crossentropy: 0.1276 - dice_coefficient: 0.8844 - iou_coefficient: 0.7937 - tversky_coefficient: 0.8293 - val_loss: 0.0571 - val_categorical_crossentropy: 0.1616 - val_dice_coefficient: 0.8570 - val_iou_coefficient: 0.7506 - val_tversky_coefficient: 0.7927
Epoch 21/100
158/158 [==============================] - 464s 3s/step - loss: 0.0424 - categorical_crossentropy: 0.1271 - dice_coefficient: 0.8836 - iou_coefficient: 0.7924 - tversky_coefficient: 0.8282 - val_loss: 0.0335 - val_categorical_crossentropy: 0.1111 - val_dice_coefficient: 0.8910 - val_iou_coefficient: 0.8041 - val_tversky_coefficient: 0.8373
Epoch 22/100
158/158 [==============================] - 467s 3s/step - loss: 0.0418 - categorical_crossentropy: 0.1233 - dice_coefficient: 0.8873 - iou_coefficient: 0.7982 - tversky_coefficient: 0.8330 - val_loss: 0.0465 - val_categorical_crossentropy: 0.1460 - val_dice_coefficient: 0.8649 - val_iou_coefficient: 0.7626 - val_tversky_coefficient: 0.8029
Epoch 23/100
158/158 [==============================] - 462s 3s/step - loss: 0.0401 - categorical_crossentropy: 0.1202 - dice_coefficient: 0.8890 - iou_coefficient: 0.8010 - tversky_coefficient: 0.8353 - val_loss: 0.0386 - val_categorical_crossentropy: 0.1191 - val_dice_coefficient: 0.8869 - val_iou_coefficient: 0.7975 - val_tversky_coefficient: 0.8319
Epoch 24/100
158/158 [==============================] - 461s 3s/step - loss: 0.0415 - categorical_crossentropy: 0.1217 - dice_coefficient: 0.8890 - iou_coefficient: 0.8010 - tversky_coefficient: 0.8353 - val_loss: 0.0318 - val_categorical_crossentropy: 0.1118 - val_dice_coefficient: 0.8887 - val_iou_coefficient: 0.8002 - val_tversky_coefficient: 0.8341
Epoch 25/100
158/158 [==============================] - 467s 3s/step - loss: 0.0395 - categorical_crossentropy: 0.1186 - dice_coefficient: 0.8903 - iou_coefficient: 0.8031 - tversky_coefficient: 0.8370 - val_loss: 0.0608 - val_categorical_crossentropy: 0.1676 - val_dice_coefficient: 0.8544 - val_iou_coefficient: 0.7466 - val_tversky_coefficient: 0.7894
Epoch 26/100
158/158 [==============================] - 468s 3s/step - loss: 0.0425 - categorical_crossentropy: 0.1225 - dice_coefficient: 0.8888 - iou_coefficient: 0.8007 - tversky_coefficient: 0.8350 - val_loss: 0.0368 - val_categorical_crossentropy: 0.1148 - val_dice_coefficient: 0.8897 - val_iou_coefficient: 0.8020 - val_tversky_coefficient: 0.8356
Epoch 27/100
158/158 [==============================] - 466s 3s/step - loss: 0.0397 - categorical_crossentropy: 0.1188 - dice_coefficient: 0.8903 - iou_coefficient: 0.8031 - tversky_coefficient: 0.8370 - val_loss: 0.0571 - val_categorical_crossentropy: 0.1521 - val_dice_coefficient: 0.8678 - val_iou_coefficient: 0.7672 - val_tversky_coefficient: 0.8067
Epoch 28/100
158/158 [==============================] - 467s 3s/step - loss: 0.0384 - categorical_crossentropy: 0.1148 - dice_coefficient: 0.8932 - iou_coefficient: 0.8079 - tversky_coefficient: 0.8410 - val_loss: 0.0459 - val_categorical_crossentropy: 0.1232 - val_dice_coefficient: 0.8887 - val_iou_coefficient: 0.8005 - val_tversky_coefficient: 0.8342
Epoch 29/100
158/158 [==============================] - 469s 3s/step - loss: 0.0386 - categorical_crossentropy: 0.1146 - dice_coefficient: 0.8938 - iou_coefficient: 0.8088 - tversky_coefficient: 0.8418 - val_loss: 0.0450 - val_categorical_crossentropy: 0.1370 - val_dice_coefficient: 0.8732 - val_iou_coefficient: 0.7757 - val_tversky_coefficient: 0.8138
Epoch 30/100
158/158 [==============================] - 463s 3s/step - loss: 0.0392 - categorical_crossentropy: 0.1157 - dice_coefficient: 0.8932 - iou_coefficient: 0.8078 - tversky_coefficient: 0.8409 - val_loss: 0.0399 - val_categorical_crossentropy: 0.1239 - val_dice_coefficient: 0.8830 - val_iou_coefficient: 0.7912 - val_tversky_coefficient: 0.8267
Epoch 31/100
158/158 [==============================] - 469s 3s/step - loss: 0.0391 - categorical_crossentropy: 0.1161 - dice_coefficient: 0.8926 - iou_coefficient: 0.8069 - tversky_coefficient: 0.8402 - val_loss: 0.0500 - val_categorical_crossentropy: 0.1316 - val_dice_coefficient: 0.8841 - val_iou_coefficient: 0.7931 - val_tversky_coefficient: 0.8282
Epoch 32/100
158/158 [==============================] - 467s 3s/step - loss: 0.0369 - categorical_crossentropy: 0.1109 - dice_coefficient: 0.8962 - iou_coefficient: 0.8127 - tversky_coefficient: 0.8449 - val_loss: 0.0359 - val_categorical_crossentropy: 0.1175 - val_dice_coefficient: 0.8865 - val_iou_coefficient: 0.7967 - val_tversky_coefficient: 0.8313
Epoch 33/100
158/158 [==============================] - 467s 3s/step - loss: 0.0377 - categorical_crossentropy: 0.1124 - dice_coefficient: 0.8953 - iou_coefficient: 0.8112 - tversky_coefficient: 0.8437 - val_loss: 0.0462 - val_categorical_crossentropy: 0.1322 - val_dice_coefficient: 0.8798 - val_iou_coefficient: 0.7861 - val_tversky_coefficient: 0.8224
5040 images detected!
Set 'steps_per_epoch' to: 630
1680 images detected!
Set 'steps_per_epoch' to: 210
Epoch 1/100
  6/630 [..............................] - ETA: 5:27 - loss: 0.2759 - categorical_crossentropy: 0.6746 - tversky_coefficient: 0.3923 - dice_coefficient: 0.4947 - iou_coefficient: 0.3287WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.1445s vs `on_train_batch_end` time: 0.3203s). Check your callbacks.
630/630 [==============================] - 478s 755ms/step - loss: 0.1644 - categorical_crossentropy: 0.4454 - tversky_coefficient: 0.5461 - dice_coefficient: 0.6456 - iou_coefficient: 0.4801 - val_loss: 0.1344 - val_categorical_crossentropy: 0.3807 - val_tversky_coefficient: 0.5916 - val_dice_coefficient: 0.6877 - val_iou_coefficient: 0.5274
Epoch 2/100
630/630 [==============================] - 479s 760ms/step - loss: 0.1186 - categorical_crossentropy: 0.3236 - tversky_coefficient: 0.6484 - dice_coefficient: 0.7378 - iou_coefficient: 0.5871 - val_loss: 0.1296 - val_categorical_crossentropy: 0.2962 - val_tversky_coefficient: 0.6929 - val_dice_coefficient: 0.7744 - val_iou_coefficient: 0.6380
Epoch 3/100
630/630 [==============================] - 476s 755ms/step - loss: 0.1007 - categorical_crossentropy: 0.2786 - tversky_coefficient: 0.6878 - dice_coefficient: 0.7713 - iou_coefficient: 0.6304 - val_loss: 0.0859 - val_categorical_crossentropy: 0.2150 - val_tversky_coefficient: 0.7546 - val_dice_coefficient: 0.8255 - val_iou_coefficient: 0.7076
Epoch 4/100
630/630 [==============================] - 479s 760ms/step - loss: 0.0881 - categorical_crossentropy: 0.2476 - tversky_coefficient: 0.7153 - dice_coefficient: 0.7940 - iou_coefficient: 0.6611 - val_loss: 0.0779 - val_categorical_crossentropy: 0.2150 - val_tversky_coefficient: 0.7447 - val_dice_coefficient: 0.8179 - val_iou_coefficient: 0.6957
Epoch 5/100
630/630 [==============================] - 479s 760ms/step - loss: 0.0808 - categorical_crossentropy: 0.2284 - tversky_coefficient: 0.7330 - dice_coefficient: 0.8083 - iou_coefficient: 0.6813 - val_loss: 0.0545 - val_categorical_crossentropy: 0.1739 - val_tversky_coefficient: 0.7740 - val_dice_coefficient: 0.8414 - val_iou_coefficient: 0.7295
Epoch 6/100
630/630 [==============================] - 477s 757ms/step - loss: 0.0737 - categorical_crossentropy: 0.2102 - tversky_coefficient: 0.7498 - dice_coefficient: 0.8219 - iou_coefficient: 0.7006 - val_loss: 0.0537 - val_categorical_crossentropy: 0.1662 - val_tversky_coefficient: 0.7840 - val_dice_coefficient: 0.8493 - val_iou_coefficient: 0.7413
Epoch 7/100
630/630 [==============================] - 480s 761ms/step - loss: 0.0736 - categorical_crossentropy: 0.2090 - tversky_coefficient: 0.7512 - dice_coefficient: 0.8230 - iou_coefficient: 0.7023 - val_loss: 0.0602 - val_categorical_crossentropy: 0.1953 - val_tversky_coefficient: 0.7513 - val_dice_coefficient: 0.8232 - val_iou_coefficient: 0.7032
Epoch 8/100
630/630 [==============================] - 479s 761ms/step - loss: 0.0681 - categorical_crossentropy: 0.1959 - tversky_coefficient: 0.7631 - dice_coefficient: 0.8324 - iou_coefficient: 0.7160 - val_loss: 0.0478 - val_categorical_crossentropy: 0.1581 - val_tversky_coefficient: 0.7882 - val_dice_coefficient: 0.8526 - val_iou_coefficient: 0.7461
Epoch 9/100
630/630 [==============================] - 478s 758ms/step - loss: 0.0619 - categorical_crossentropy: 0.1815 - tversky_coefficient: 0.7757 - dice_coefficient: 0.8425 - iou_coefficient: 0.7306 - val_loss: 0.1265 - val_categorical_crossentropy: 0.2804 - val_tversky_coefficient: 0.7118 - val_dice_coefficient: 0.7900 - val_iou_coefficient: 0.6593
Epoch 10/100
630/630 [==============================] - 479s 761ms/step - loss: 0.0624 - categorical_crossentropy: 0.1811 - tversky_coefficient: 0.7771 - dice_coefficient: 0.8434 - iou_coefficient: 0.7323 - val_loss: 0.0444 - val_categorical_crossentropy: 0.1486 - val_tversky_coefficient: 0.7978 - val_dice_coefficient: 0.8601 - val_iou_coefficient: 0.7574
Epoch 11/100
630/630 [==============================] - 478s 758ms/step - loss: 0.0591 - categorical_crossentropy: 0.1726 - tversky_coefficient: 0.7849 - dice_coefficient: 0.8496 - iou_coefficient: 0.7414 - val_loss: 0.0609 - val_categorical_crossentropy: 0.2044 - val_tversky_coefficient: 0.7408 - val_dice_coefficient: 0.8152 - val_iou_coefficient: 0.6907
Epoch 12/100
630/630 [==============================] - 479s 759ms/step - loss: 0.0559 - categorical_crossentropy: 0.1641 - tversky_coefficient: 0.7931 - dice_coefficient: 0.8559 - iou_coefficient: 0.7513 - val_loss: 0.0893 - val_categorical_crossentropy: 0.2556 - val_tversky_coefficient: 0.7042 - val_dice_coefficient: 0.7850 - val_iou_coefficient: 0.6495
Epoch 13/100
630/630 [==============================] - 479s 760ms/step - loss: 0.0560 - categorical_crossentropy: 0.1631 - tversky_coefficient: 0.7946 - dice_coefficient: 0.8571 - iou_coefficient: 0.7530 - val_loss: 0.0505 - val_categorical_crossentropy: 0.1875 - val_tversky_coefficient: 0.7519 - val_dice_coefficient: 0.8242 - val_iou_coefficient: 0.7034
Epoch 14/100
630/630 [==============================] - 479s 760ms/step - loss: 0.0527 - categorical_crossentropy: 0.1566 - tversky_coefficient: 0.7996 - dice_coefficient: 0.8610 - iou_coefficient: 0.7588 - val_loss: 0.1904 - val_categorical_crossentropy: 0.3591 - val_tversky_coefficient: 0.6852 - val_dice_coefficient: 0.7681 - val_iou_coefficient: 0.6297
Epoch 15/100
630/630 [==============================] - 478s 758ms/step - loss: 0.0535 - categorical_crossentropy: 0.1571 - tversky_coefficient: 0.8001 - dice_coefficient: 0.8613 - iou_coefficient: 0.7596 - val_loss: 0.0447 - val_categorical_crossentropy: 0.1745 - val_tversky_coefficient: 0.7635 - val_dice_coefficient: 0.8336 - val_iou_coefficient: 0.7166
Epoch 16/100
630/630 [==============================] - 480s 762ms/step - loss: 0.0543 - categorical_crossentropy: 0.1577 - tversky_coefficient: 0.8001 - dice_coefficient: 0.8612 - iou_coefficient: 0.7596 - val_loss: 0.0471 - val_categorical_crossentropy: 0.1430 - val_tversky_coefficient: 0.8086 - val_dice_coefficient: 0.8684 - val_iou_coefficient: 0.7704
Epoch 17/100
630/630 [==============================] - 478s 759ms/step - loss: 0.0529 - categorical_crossentropy: 0.1548 - tversky_coefficient: 0.8025 - dice_coefficient: 0.8631 - iou_coefficient: 0.7625 - val_loss: 0.0587 - val_categorical_crossentropy: 0.1490 - val_tversky_coefficient: 0.8149 - val_dice_coefficient: 0.8731 - val_iou_coefficient: 0.7780
Epoch 18/100
630/630 [==============================] - 480s 762ms/step - loss: 0.0525 - categorical_crossentropy: 0.1532 - tversky_coefficient: 0.8041 - dice_coefficient: 0.8644 - iou_coefficient: 0.7644 - val_loss: 0.0485 - val_categorical_crossentropy: 0.1377 - val_tversky_coefficient: 0.8183 - val_dice_coefficient: 0.8758 - val_iou_coefficient: 0.7820
Epoch 19/100
630/630 [==============================] - 478s 758ms/step - loss: 0.0492 - categorical_crossentropy: 0.1465 - tversky_coefficient: 0.8097 - dice_coefficient: 0.8688 - iou_coefficient: 0.7709 - val_loss: 0.0393 - val_categorical_crossentropy: 0.1206 - val_tversky_coefficient: 0.8313 - val_dice_coefficient: 0.8858 - val_iou_coefficient: 0.7976
Epoch 20/100
630/630 [==============================] - 479s 760ms/step - loss: 0.0466 - categorical_crossentropy: 0.1389 - tversky_coefficient: 0.8174 - dice_coefficient: 0.8746 - iou_coefficient: 0.7801 - val_loss: 0.1017 - val_categorical_crossentropy: 0.2370 - val_tversky_coefficient: 0.7419 - val_dice_coefficient: 0.8149 - val_iou_coefficient: 0.6933
Epoch 21/100
630/630 [==============================] - 479s 760ms/step - loss: 0.0468 - categorical_crossentropy: 0.1388 - tversky_coefficient: 0.8178 - dice_coefficient: 0.8749 - iou_coefficient: 0.7806 - val_loss: 0.0404 - val_categorical_crossentropy: 0.1316 - val_tversky_coefficient: 0.8170 - val_dice_coefficient: 0.8749 - val_iou_coefficient: 0.7803
Epoch 22/100
630/630 [==============================] - 478s 758ms/step - loss: 0.0456 - categorical_crossentropy: 0.1353 - tversky_coefficient: 0.8215 - dice_coefficient: 0.8778 - iou_coefficient: 0.7851 - val_loss: 0.0378 - val_categorical_crossentropy: 0.1336 - val_tversky_coefficient: 0.8123 - val_dice_coefficient: 0.8716 - val_iou_coefficient: 0.7742
Epoch 23/100
630/630 [==============================] - 478s 758ms/step - loss: 0.0471 - categorical_crossentropy: 0.1375 - tversky_coefficient: 0.8200 - dice_coefficient: 0.8765 - iou_coefficient: 0.7833 - val_loss: 0.0527 - val_categorical_crossentropy: 0.1584 - val_tversky_coefficient: 0.7936 - val_dice_coefficient: 0.8566 - val_iou_coefficient: 0.7528
Epoch 24/100
630/630 [==============================] - 477s 757ms/step - loss: 0.0460 - categorical_crossentropy: 0.1373 - tversky_coefficient: 0.8190 - dice_coefficient: 0.8759 - iou_coefficient: 0.7821 - val_loss: 0.0636 - val_categorical_crossentropy: 0.2086 - val_tversky_coefficient: 0.7396 - val_dice_coefficient: 0.8145 - val_iou_coefficient: 0.6891
Epoch 25/100
630/630 [==============================] - 478s 759ms/step - loss: 0.0453 - categorical_crossentropy: 0.1345 - tversky_coefficient: 0.8219 - dice_coefficient: 0.8781 - iou_coefficient: 0.7856 - val_loss: 0.0950 - val_categorical_crossentropy: 0.1987 - val_tversky_coefficient: 0.7896 - val_dice_coefficient: 0.8530 - val_iou_coefficient: 0.7488
Epoch 26/100
630/630 [==============================] - 478s 758ms/step - loss: 0.0465 - categorical_crossentropy: 0.1362 - tversky_coefficient: 0.8210 - dice_coefficient: 0.8773 - iou_coefficient: 0.7846 - val_loss: 0.0392 - val_categorical_crossentropy: 0.1303 - val_tversky_coefficient: 0.8175 - val_dice_coefficient: 0.8752 - val_iou_coefficient: 0.7810
Epoch 27/100
630/630 [==============================] - 477s 757ms/step - loss: 0.0448 - categorical_crossentropy: 0.1320 - tversky_coefficient: 0.8249 - dice_coefficient: 0.8804 - iou_coefficient: 0.7892 - val_loss: 0.0698 - val_categorical_crossentropy: 0.2303 - val_tversky_coefficient: 0.7166 - val_dice_coefficient: 0.7958 - val_iou_coefficient: 0.6629
Epoch 28/100
630/630 [==============================] - 478s 759ms/step - loss: 0.0425 - categorical_crossentropy: 0.1279 - tversky_coefficient: 0.8280 - dice_coefficient: 0.8828 - iou_coefficient: 0.7930 - val_loss: 0.0535 - val_categorical_crossentropy: 0.1278 - val_tversky_coefficient: 0.8392 - val_dice_coefficient: 0.8916 - val_iou_coefficient: 0.8075
Epoch 29/100
630/630 [==============================] - 477s 757ms/step - loss: 0.0423 - categorical_crossentropy: 0.1252 - tversky_coefficient: 0.8316 - dice_coefficient: 0.8855 - iou_coefficient: 0.7973 - val_loss: 0.0577 - val_categorical_crossentropy: 0.1461 - val_tversky_coefficient: 0.8171 - val_dice_coefficient: 0.8746 - val_iou_coefficient: 0.7810
Epoch 30/100
630/630 [==============================] - 479s 760ms/step - loss: 0.0438 - categorical_crossentropy: 0.1292 - tversky_coefficient: 0.8276 - dice_coefficient: 0.8824 - iou_coefficient: 0.7924 - val_loss: 0.0433 - val_categorical_crossentropy: 0.1307 - val_tversky_coefficient: 0.8215 - val_dice_coefficient: 0.8782 - val_iou_coefficient: 0.7861
Epoch 31/100
630/630 [==============================] - 480s 762ms/step - loss: 0.0427 - categorical_crossentropy: 0.1259 - tversky_coefficient: 0.8311 - dice_coefficient: 0.8850 - iou_coefficient: 0.7967 - val_loss: 0.0327 - val_categorical_crossentropy: 0.1022 - val_tversky_coefficient: 0.8496 - val_dice_coefficient: 0.8995 - val_iou_coefficient: 0.8199
Epoch 32/100
630/630 [==============================] - 477s 757ms/step - loss: 0.0411 - categorical_crossentropy: 0.1229 - tversky_coefficient: 0.8336 - dice_coefficient: 0.8869 - iou_coefficient: 0.7997 - val_loss: 0.0572 - val_categorical_crossentropy: 0.1492 - val_tversky_coefficient: 0.8118 - val_dice_coefficient: 0.8705 - val_iou_coefficient: 0.7746
Epoch 33/100
630/630 [==============================] - 481s 763ms/step - loss: 0.0418 - categorical_crossentropy: 0.1246 - tversky_coefficient: 0.8318 - dice_coefficient: 0.8856 - iou_coefficient: 0.7975 - val_loss: 0.0335 - val_categorical_crossentropy: 0.1140 - val_tversky_coefficient: 0.8339 - val_dice_coefficient: 0.8878 - val_iou_coefficient: 0.8006
Epoch 34/100
630/630 [==============================] - 479s 759ms/step - loss: 0.0405 - categorical_crossentropy: 0.1208 - tversky_coefficient: 0.8357 - dice_coefficient: 0.8886 - iou_coefficient: 0.8022 - val_loss: 0.0412 - val_categorical_crossentropy: 0.1279 - val_tversky_coefficient: 0.8230 - val_dice_coefficient: 0.8794 - val_iou_coefficient: 0.7876
Epoch 35/100
630/630 [==============================] - 478s 759ms/step - loss: 0.0380 - categorical_crossentropy: 0.1147 - tversky_coefficient: 0.8416 - dice_coefficient: 0.8930 - iou_coefficient: 0.8095 - val_loss: 0.0459 - val_categorical_crossentropy: 0.1386 - val_tversky_coefficient: 0.8143 - val_dice_coefficient: 0.8726 - val_iou_coefficient: 0.7773
Epoch 36/100
630/630 [==============================] - 481s 763ms/step - loss: 0.0407 - categorical_crossentropy: 0.1206 - tversky_coefficient: 0.8364 - dice_coefficient: 0.8890 - iou_coefficient: 0.8032 - val_loss: 0.0505 - val_categorical_crossentropy: 0.1320 - val_tversky_coefficient: 0.8290 - val_dice_coefficient: 0.8838 - val_iou_coefficient: 0.7951
Epoch 37/100
630/630 [==============================] - 478s 759ms/step - loss: 0.0431 - categorical_crossentropy: 0.1272 - tversky_coefficient: 0.8296 - dice_coefficient: 0.8839 - iou_coefficient: 0.7949 - val_loss: 0.0357 - val_categorical_crossentropy: 0.1185 - val_tversky_coefficient: 0.8301 - val_dice_coefficient: 0.8848 - val_iou_coefficient: 0.7961
Epoch 38/100
630/630 [==============================] - 479s 760ms/step - loss: 0.0391 - categorical_crossentropy: 0.1171 - tversky_coefficient: 0.8395 - dice_coefficient: 0.8913 - iou_coefficient: 0.8069 - val_loss: 0.0363 - val_categorical_crossentropy: 0.1202 - val_tversky_coefficient: 0.8281 - val_dice_coefficient: 0.8834 - val_iou_coefficient: 0.7937
Epoch 39/100
630/630 [==============================] - 481s 763ms/step - loss: 0.0391 - categorical_crossentropy: 0.1171 - tversky_coefficient: 0.8394 - dice_coefficient: 0.8913 - iou_coefficient: 0.8068 - val_loss: 0.0525 - val_categorical_crossentropy: 0.1826 - val_tversky_coefficient: 0.7603 - val_dice_coefficient: 0.8309 - val_iou_coefficient: 0.7131
Epoch 40/100
630/630 [==============================] - 477s 757ms/step - loss: 0.0397 - categorical_crossentropy: 0.1181 - tversky_coefficient: 0.8388 - dice_coefficient: 0.8908 - iou_coefficient: 0.8060 - val_loss: 0.0503 - val_categorical_crossentropy: 0.1385 - val_tversky_coefficient: 0.8189 - val_dice_coefficient: 0.8760 - val_iou_coefficient: 0.7830
Epoch 41/100
630/630 [==============================] - 475s 754ms/step - loss: 0.0368 - categorical_crossentropy: 0.1114 - tversky_coefficient: 0.8449 - dice_coefficient: 0.8954 - iou_coefficient: 0.8134 - val_loss: 0.0367 - val_categorical_crossentropy: 0.1361 - val_tversky_coefficient: 0.8067 - val_dice_coefficient: 0.8672 - val_iou_coefficient: 0.7677
Epoch 42/100
630/630 [==============================] - 476s 756ms/step - loss: 0.0368 - categorical_crossentropy: 0.1107 - tversky_coefficient: 0.8458 - dice_coefficient: 0.8961 - iou_coefficient: 0.8145 - val_loss: 0.0388 - val_categorical_crossentropy: 0.1257 - val_tversky_coefficient: 0.8237 - val_dice_coefficient: 0.8800 - val_iou_coefficient: 0.7884
Epoch 43/100
630/630 [==============================] - 477s 757ms/step - loss: 0.0390 - categorical_crossentropy: 0.1153 - tversky_coefficient: 0.8417 - dice_coefficient: 0.8931 - iou_coefficient: 0.8096 - val_loss: 0.0371 - val_categorical_crossentropy: 0.1174 - val_tversky_coefficient: 0.8332 - val_dice_coefficient: 0.8871 - val_iou_coefficient: 0.7999
Epoch 44/100
630/630 [==============================] - 477s 757ms/step - loss: 0.0371 - categorical_crossentropy: 0.1115 - tversky_coefficient: 0.8449 - dice_coefficient: 0.8954 - iou_coefficient: 0.8134 - val_loss: 0.0325 - val_categorical_crossentropy: 0.1046 - val_tversky_coefficient: 0.8459 - val_dice_coefficient: 0.8968 - val_iou_coefficient: 0.8155
Epoch 45/100
630/630 [==============================] - 498s 789ms/step - loss: 0.0366 - categorical_crossentropy: 0.1097 - tversky_coefficient: 0.8470 - dice_coefficient: 0.8971 - iou_coefficient: 0.8159 - val_loss: 0.0363 - val_categorical_crossentropy: 0.1032 - val_tversky_coefficient: 0.8528 - val_dice_coefficient: 0.9019 - val_iou_coefficient: 0.8239
Epoch 46/100
630/630 [==============================] - 486s 770ms/step - loss: 0.0386 - categorical_crossentropy: 0.1147 - tversky_coefficient: 0.8421 - dice_coefficient: 0.8934 - iou_coefficient: 0.8101 - val_loss: 0.0334 - val_categorical_crossentropy: 0.1097 - val_tversky_coefficient: 0.8397 - val_dice_coefficient: 0.8921 - val_iou_coefficient: 0.8079
Epoch 47/100
630/630 [==============================] - 488s 774ms/step - loss: 0.0359 - categorical_crossentropy: 0.1072 - tversky_coefficient: 0.8495 - dice_coefficient: 0.8990 - iou_coefficient: 0.8190 - val_loss: 0.0295 - val_categorical_crossentropy: 0.0985 - val_tversky_coefficient: 0.8510 - val_dice_coefficient: 0.9007 - val_iou_coefficient: 0.8217
Epoch 48/100
630/630 [==============================] - 491s 778ms/step - loss: 0.0394 - categorical_crossentropy: 0.1165 - tversky_coefficient: 0.8404 - dice_coefficient: 0.8921 - iou_coefficient: 0.8079 - val_loss: 0.0564 - val_categorical_crossentropy: 0.1325 - val_tversky_coefficient: 0.8369 - val_dice_coefficient: 0.8897 - val_iou_coefficient: 0.8049
Epoch 49/100
630/630 [==============================] - 491s 779ms/step - loss: 0.0370 - categorical_crossentropy: 0.1106 - tversky_coefficient: 0.8459 - dice_coefficient: 0.8963 - iou_coefficient: 0.8147 - val_loss: 0.0787 - val_categorical_crossentropy: 0.1960 - val_tversky_coefficient: 0.7710 - val_dice_coefficient: 0.8383 - val_iou_coefficient: 0.7267
Epoch 50/100
630/630 [==============================] - 488s 774ms/step - loss: 0.0375 - categorical_crossentropy: 0.1119 - tversky_coefficient: 0.8449 - dice_coefficient: 0.8955 - iou_coefficient: 0.8135 - val_loss: 0.0365 - val_categorical_crossentropy: 0.1197 - val_tversky_coefficient: 0.8292 - val_dice_coefficient: 0.8841 - val_iou_coefficient: 0.7951
Epoch 51/100
630/630 [==============================] - 540s 857ms/step - loss: 0.0369 - categorical_crossentropy: 0.1099 - tversky_coefficient: 0.8470 - dice_coefficient: 0.8970 - iou_coefficient: 0.8160 - val_loss: 0.0312 - val_categorical_crossentropy: 0.1049 - val_tversky_coefficient: 0.8439 - val_dice_coefficient: 0.8953 - val_iou_coefficient: 0.8129
Epoch 52/100
630/630 [==============================] - 515s 818ms/step - loss: 0.0352 - categorical_crossentropy: 0.1069 - tversky_coefficient: 0.8491 - dice_coefficient: 0.8986 - iou_coefficient: 0.8186 - val_loss: 0.0369 - val_categorical_crossentropy: 0.1063 - val_tversky_coefficient: 0.8496 - val_dice_coefficient: 0.8995 - val_iou_coefficient: 0.8199
Epoch 53/100
630/630 [==============================] - 538s 854ms/step - loss: 0.0359 - categorical_crossentropy: 0.1069 - tversky_coefficient: 0.8500 - dice_coefficient: 0.8993 - iou_coefficient: 0.8198 - val_loss: 0.0360 - val_categorical_crossentropy: 0.0940 - val_tversky_coefficient: 0.8660 - val_dice_coefficient: 0.9117 - val_iou_coefficient: 0.8402
Epoch 54/100
630/630 [==============================] - 538s 853ms/step - loss: 0.0348 - categorical_crossentropy: 0.1046 - tversky_coefficient: 0.8519 - dice_coefficient: 0.9008 - iou_coefficient: 0.8219 - val_loss: 0.0414 - val_categorical_crossentropy: 0.1127 - val_tversky_coefficient: 0.8454 - val_dice_coefficient: 0.8964 - val_iou_coefficient: 0.8150
Epoch 55/100
630/630 [==============================] - 554s 878ms/step - loss: 0.0369 - categorical_crossentropy: 0.1095 - tversky_coefficient: 0.8476 - dice_coefficient: 0.8975 - iou_coefficient: 0.8167 - val_loss: 0.0888 - val_categorical_crossentropy: 0.2158 - val_tversky_coefficient: 0.7560 - val_dice_coefficient: 0.8263 - val_iou_coefficient: 0.7094
Epoch 56/100
630/630 [==============================] - 535s 849ms/step - loss: 0.0389 - categorical_crossentropy: 0.1144 - tversky_coefficient: 0.8429 - dice_coefficient: 0.8940 - iou_coefficient: 0.8110 - val_loss: 0.0485 - val_categorical_crossentropy: 0.1366 - val_tversky_coefficient: 0.8194 - val_dice_coefficient: 0.8765 - val_iou_coefficient: 0.7835
Epoch 57/100
630/630 [==============================] - 553s 878ms/step - loss: 0.0371 - categorical_crossentropy: 0.1106 - tversky_coefficient: 0.8461 - dice_coefficient: 0.8964 - iou_coefficient: 0.8148 - val_loss: 0.0321 - val_categorical_crossentropy: 0.1044 - val_tversky_coefficient: 0.8459 - val_dice_coefficient: 0.8968 - val_iou_coefficient: 0.8153
Epoch 58/100
630/630 [==============================] - 604s 959ms/step - loss: 0.0344 - categorical_crossentropy: 0.1048 - tversky_coefficient: 0.8512 - dice_coefficient: 0.9002 - iou_coefficient: 0.8211 - val_loss: 0.0419 - val_categorical_crossentropy: 0.1248 - val_tversky_coefficient: 0.8281 - val_dice_coefficient: 0.8832 - val_iou_coefficient: 0.7941
Epoch 59/100
630/630 [==============================] - 719s 1s/step - loss: 0.0351 - categorical_crossentropy: 0.1049 - tversky_coefficient: 0.8518 - dice_coefficient: 0.9006 - iou_coefficient: 0.8219 - val_loss: 0.0508 - val_categorical_crossentropy: 0.1393 - val_tversky_coefficient: 0.8180 - val_dice_coefficient: 0.8753 - val_iou_coefficient: 0.7819
Epoch 60/100
630/630 [==============================] - 548s 869ms/step - loss: 0.0348 - categorical_crossentropy: 0.1037 - tversky_coefficient: 0.8532 - dice_coefficient: 0.9017 - iou_coefficient: 0.8236 - val_loss: 0.0360 - val_categorical_crossentropy: 0.1138 - val_tversky_coefficient: 0.8369 - val_dice_coefficient: 0.8900 - val_iou_coefficient: 0.8044
Epoch 61/100
630/630 [==============================] - 558s 886ms/step - loss: 0.0359 - categorical_crossentropy: 0.1071 - tversky_coefficient: 0.8496 - dice_coefficient: 0.8990 - iou_coefficient: 0.8192 - val_loss: 0.0273 - val_categorical_crossentropy: 0.0945 - val_tversky_coefficient: 0.8542 - val_dice_coefficient: 0.9031 - val_iou_coefficient: 0.8255
Epoch 62/100
630/630 [==============================] - 547s 867ms/step - loss: 0.0349 - categorical_crossentropy: 0.1043 - tversky_coefficient: 0.8526 - dice_coefficient: 0.9013 - iou_coefficient: 0.8229 - val_loss: 0.0311 - val_categorical_crossentropy: 0.0973 - val_tversky_coefficient: 0.8548 - val_dice_coefficient: 0.9035 - val_iou_coefficient: 0.8262
Epoch 63/100
630/630 [==============================] - 561s 891ms/step - loss: 0.0353 - categorical_crossentropy: 0.1052 - tversky_coefficient: 0.8519 - dice_coefficient: 0.9007 - iou_coefficient: 0.8221 - val_loss: 0.0359 - val_categorical_crossentropy: 0.1039 - val_tversky_coefficient: 0.8512 - val_dice_coefficient: 0.9007 - val_iou_coefficient: 0.8219
Epoch 64/100
630/630 [==============================] - 532s 844ms/step - loss: 0.0331 - categorical_crossentropy: 0.1002 - tversky_coefficient: 0.8562 - dice_coefficient: 0.9040 - iou_coefficient: 0.8273 - val_loss: 0.0556 - val_categorical_crossentropy: 0.1514 - val_tversky_coefficient: 0.8066 - val_dice_coefficient: 0.8665 - val_iou_coefficient: 0.7684
Epoch 65/100
630/630 [==============================] - 536s 850ms/step - loss: 0.0355 - categorical_crossentropy: 0.1049 - tversky_coefficient: 0.8524 - dice_coefficient: 0.9011 - iou_coefficient: 0.8226 - val_loss: 0.0285 - val_categorical_crossentropy: 0.1021 - val_tversky_coefficient: 0.8448 - val_dice_coefficient: 0.8961 - val_iou_coefficient: 0.8140
Epoch 66/100
630/630 [==============================] - 537s 852ms/step - loss: 0.0347 - categorical_crossentropy: 0.1039 - tversky_coefficient: 0.8530 - dice_coefficient: 0.9015 - iou_coefficient: 0.8233 - val_loss: 0.0317 - val_categorical_crossentropy: 0.0989 - val_tversky_coefficient: 0.8534 - val_dice_coefficient: 0.9024 - val_iou_coefficient: 0.8246
Epoch 67/100
630/630 [==============================] - 553s 877ms/step - loss: 0.0343 - categorical_crossentropy: 0.1026 - tversky_coefficient: 0.8543 - dice_coefficient: 0.9025 - iou_coefficient: 0.8250 - val_loss: 0.0726 - val_categorical_crossentropy: 0.1563 - val_tversky_coefficient: 0.8230 - val_dice_coefficient: 0.8789 - val_iou_coefficient: 0.7884
Epoch 68/100
630/630 [==============================] - 501s 795ms/step - loss: 0.0356 - categorical_crossentropy: 0.1058 - tversky_coefficient: 0.8513 - dice_coefficient: 0.9003 - iou_coefficient: 0.8213 - val_loss: 0.0321 - val_categorical_crossentropy: 0.0966 - val_tversky_coefficient: 0.8570 - val_dice_coefficient: 0.9051 - val_iou_coefficient: 0.8291
eval_validation = ps.evaluate_models('examples/30_clouds_validation.csv')
eval_test = ps.evaluate_models('examples/30_clouds_test.csv')
1680 images detected!
Set 'steps_per_epoch' to: 53


2022-10-19 12:40:59.976871: I tensorflow/stream_executor/cuda/cuda_dnn.cc:384] Loaded cuDNN version 8101


53/53 [==============================] - 125s 2s/step - loss: 0.0351 - categorical_crossentropy: 0.1080 - dice_coefficient: 0.8957 - tversky_coefficient: 0.8435 - iou_coefficient: 0.8117
1680 images detected!
Set 'steps_per_epoch' to: 210
210/210 [==============================] - 119s 560ms/step - loss: 0.0360 - dice_coefficient: 0.9117 - iou_coefficient: 0.8402 - categorical_crossentropy: 0.0940 - tversky_coefficient: 0.8660
EVALUATION RESULTS:

            model_name  focal_loss  categorical_crossentropy  \
0            38c_u_net    0.035124                  0.108038   
0  38c_u_net_plus_plus    0.036038                  0.911740

   dice_coefficient  iou_coefficient  tversky_coefficient  
0          0.895686         0.843504             0.811663  
0          0.840156         0.093998             0.865977  
1680 images detected!
Set 'steps_per_epoch' to: 53
53/53 [==============================] - 133s 3s/step - loss: 0.0307 - categorical_crossentropy: 0.0972 - dice_coefficient: 0.9046 - tversky_coefficient: 0.8560 - iou_coefficient: 0.8262
1680 images detected!
Set 'steps_per_epoch' to: 210
210/210 [==============================] - 118s 559ms/step - loss: 0.0313 - dice_coefficient: 0.9217 - iou_coefficient: 0.8569 - categorical_crossentropy: 0.0825 - tversky_coefficient: 0.8801
EVALUATION RESULTS:

            model_name  focal_loss  categorical_crossentropy  \
0            38c_u_net    0.030687                  0.097211   
0  38c_u_net_plus_plus    0.031301                  0.921655

   dice_coefficient  iou_coefficient  tversky_coefficient  
0          0.904561         0.855966             0.826248  
0          0.856911         0.082530             0.880135

Predictions

Only after do we train the models, we can easily produce predicted masks based on the validation set or whatever data that we would like to use, just make sure it is organized as in the train/validation/test sets.

# When the custom_data_path is set to None, the validation data will be used.
# If that is not the intention of yours, feel free to point the engine to any other direction.pyplatypus.com
ps.produce_and_save_predicted_masks_for_model(model_name="38c_u_net", custom_data_path=None)
ps.produce_and_save_predicted_masks_for_model(model_name="38c_u_net", custom_data_path='examples/30_clouds_test.csv')
1680 images detected!
Set 'steps_per_epoch' to: 53
1/1 [==============================] - 1s 537ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 43ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 41ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 42ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 41ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 41ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 43ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 41ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 42ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 41ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 41ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 42ms/step
1/1 [==============================] - 0s 38ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 42ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 428ms/step
1680 images detected!
Set 'steps_per_epoch' to: 53
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 42ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 41ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 42ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 41ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 41ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 45ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 43ms/step
1/1 [==============================] - 0s 42ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 32ms/step
1/1 [==============================] - 0s 41ms/step
1/1 [==============================] - 0s 42ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 42ms/step
1/1 [==============================] - 0s 46ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 44ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 42ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 41ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 41ms/step
1/1 [==============================] - 0s 25ms/step
1/1 [==============================] - 0s 41ms/step
1/1 [==============================] - 0s 42ms/step
1/1 [==============================] - 0s 39ms/step
1/1 [==============================] - 0s 25ms/step
# When the custom_data_path is set to None, the validation data will be used.
# If that is not the intention of yours, feel free to point the engine to any other direction.pyplatypus.com
ps.produce_and_save_predicted_masks_for_model(model_name="38c_u_net_plus_plus", custom_data_path=None)
ps.produce_and_save_predicted_masks_for_model(model_name="38c_u_net_plus_plus", custom_data_path='examples/30_clouds_test.csv')
1680 images detected!
Set 'steps_per_epoch' to: 210
1/1 [==============================] - 0s 361ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 25ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 25ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 26ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 26ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 26ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 25ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 26ms/step
1/1 [==============================] - 0s 25ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 29ms/step
1/1 [==============================] - 0s 25ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 36ms/step
1/1 [==============================] - 0s 28ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 27ms/step
1/1 [==============================] - 0s 27ms/step
1/1 [==============================] - 0s 25ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 28ms/step
1/1 [==============================] - 0s 26ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 32ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 27ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 31ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 27ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 27ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 25ms/step
1/1 [==============================] - 0s 25ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 31ms/step
1/1 [==============================] - 0s 25ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 27ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 27ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 28ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 26ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 25ms/step
1/1 [==============================] - 0s 26ms/step
1/1 [==============================] - 0s 25ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 29ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1680 images detected!
Set 'steps_per_epoch' to: 210
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 28ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 26ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 26ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 28ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 26ms/step
1/1 [==============================] - 0s 28ms/step
1/1 [==============================] - 0s 26ms/step
1/1 [==============================] - 0s 25ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 26ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 27ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 26ms/step
1/1 [==============================] - 0s 27ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 31ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 34ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 27ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 25ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 26ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 25ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 38ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 25ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 25ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 21ms/step