Training models for solar panel segmentation¶
Let's install the necessary libraries and then import them.
In [ ]:
!pip install geoai-py
Collecting geoai-py
Downloading geoai_py-0.6.0-py2.py3-none-any.whl.metadata (6.7 kB)
Requirement already satisfied: albumentations in /usr/local/lib/python3.11/dist-packages (from geoai-py) (2.0.6)
Collecting buildingregulariser (from geoai-py)
Downloading buildingregulariser-0.1.12-py3-none-any.whl.metadata (5.9 kB)
Collecting contextily (from geoai-py)
Downloading contextily-1.6.2-py3-none-any.whl.metadata (2.9 kB)
Requirement already satisfied: geopandas in /usr/local/lib/python3.11/dist-packages (from geoai-py) (1.0.1)
Requirement already satisfied: huggingface_hub in /usr/local/lib/python3.11/dist-packages (from geoai-py) (0.31.2)
Collecting jupyter-server-proxy (from geoai-py)
Downloading jupyter_server_proxy-4.4.0-py3-none-any.whl.metadata (8.7 kB)
Collecting leafmap (from geoai-py)
Downloading leafmap-0.45.0-py2.py3-none-any.whl.metadata (16 kB)
Collecting localtileserver (from geoai-py)
Downloading localtileserver-0.10.6-py3-none-any.whl.metadata (5.2 kB)
Collecting mapclassify (from geoai-py)
Downloading mapclassify-2.8.1-py3-none-any.whl.metadata (2.8 kB)
Collecting maplibre (from geoai-py)
Downloading maplibre-0.3.3-py3-none-any.whl.metadata (3.9 kB)
Requirement already satisfied: opencv-python-headless in /usr/local/lib/python3.11/dist-packages (from geoai-py) (4.11.0.86)
Collecting overturemaps (from geoai-py)
Downloading overturemaps-0.14.0-py3-none-any.whl.metadata (4.0 kB)
Collecting planetary-computer (from geoai-py)
Downloading planetary_computer-1.0.0-py3-none-any.whl.metadata (7.4 kB)
Collecting pystac-client (from geoai-py)
Downloading pystac_client-0.8.6-py3-none-any.whl.metadata (3.0 kB)
Collecting rasterio (from geoai-py)
Downloading rasterio-1.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (9.1 kB)
Collecting rioxarray (from geoai-py)
Downloading rioxarray-0.19.0-py3-none-any.whl.metadata (5.5 kB)
Requirement already satisfied: scikit-image in /usr/local/lib/python3.11/dist-packages (from geoai-py) (0.25.2)
Requirement already satisfied: scikit-learn in /usr/local/lib/python3.11/dist-packages (from geoai-py) (1.6.1)
Requirement already satisfied: torch in /usr/local/lib/python3.11/dist-packages (from geoai-py) (2.6.0+cu124)
Collecting torchgeo (from geoai-py)
Downloading torchgeo-0.7.0-py3-none-any.whl.metadata (19 kB)
Collecting torchinfo (from geoai-py)
Downloading torchinfo-1.8.0-py3-none-any.whl.metadata (21 kB)
Requirement already satisfied: tqdm in /usr/local/lib/python3.11/dist-packages (from geoai-py) (4.67.1)
Requirement already satisfied: transformers in /usr/local/lib/python3.11/dist-packages (from geoai-py) (4.51.3)
Requirement already satisfied: numpy>=1.24.4 in /usr/local/lib/python3.11/dist-packages (from albumentations->geoai-py) (2.0.2)
Requirement already satisfied: scipy>=1.10.0 in /usr/local/lib/python3.11/dist-packages (from albumentations->geoai-py) (1.15.3)
Requirement already satisfied: PyYAML in /usr/local/lib/python3.11/dist-packages (from albumentations->geoai-py) (6.0.2)
Requirement already satisfied: pydantic>=2.9.2 in /usr/local/lib/python3.11/dist-packages (from albumentations->geoai-py) (2.11.4)
Requirement already satisfied: albucore==0.0.24 in /usr/local/lib/python3.11/dist-packages (from albumentations->geoai-py) (0.0.24)
Requirement already satisfied: stringzilla>=3.10.4 in /usr/local/lib/python3.11/dist-packages (from albucore==0.0.24->albumentations->geoai-py) (3.12.5)
Requirement already satisfied: simsimd>=5.9.2 in /usr/local/lib/python3.11/dist-packages (from albucore==0.0.24->albumentations->geoai-py) (6.2.1)
Requirement already satisfied: pyogrio>=0.7.2 in /usr/local/lib/python3.11/dist-packages (from geopandas->geoai-py) (0.11.0)
Requirement already satisfied: packaging in /usr/local/lib/python3.11/dist-packages (from geopandas->geoai-py) (24.2)
Requirement already satisfied: pandas>=1.4.0 in /usr/local/lib/python3.11/dist-packages (from geopandas->geoai-py) (2.2.2)
Requirement already satisfied: pyproj>=3.3.0 in /usr/local/lib/python3.11/dist-packages (from geopandas->geoai-py) (3.7.1)
Requirement already satisfied: shapely>=2.0.0 in /usr/local/lib/python3.11/dist-packages (from geopandas->geoai-py) (2.1.0)
Requirement already satisfied: geopy in /usr/local/lib/python3.11/dist-packages (from contextily->geoai-py) (2.4.1)
Requirement already satisfied: matplotlib in /usr/local/lib/python3.11/dist-packages (from contextily->geoai-py) (3.10.0)
Collecting mercantile (from contextily->geoai-py)
Downloading mercantile-1.2.1-py3-none-any.whl.metadata (4.8 kB)
Requirement already satisfied: pillow in /usr/local/lib/python3.11/dist-packages (from contextily->geoai-py) (11.2.1)
Requirement already satisfied: requests in /usr/local/lib/python3.11/dist-packages (from contextily->geoai-py) (2.32.3)
Requirement already satisfied: joblib in /usr/local/lib/python3.11/dist-packages (from contextily->geoai-py) (1.5.0)
Requirement already satisfied: xyzservices in /usr/local/lib/python3.11/dist-packages (from contextily->geoai-py) (2025.4.0)
Requirement already satisfied: filelock in /usr/local/lib/python3.11/dist-packages (from huggingface_hub->geoai-py) (3.18.0)
Requirement already satisfied: fsspec>=2023.5.0 in /usr/local/lib/python3.11/dist-packages (from huggingface_hub->geoai-py) (2025.3.2)
Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.11/dist-packages (from huggingface_hub->geoai-py) (4.13.2)
Requirement already satisfied: aiohttp in /usr/local/lib/python3.11/dist-packages (from jupyter-server-proxy->geoai-py) (3.11.15)
Collecting jupyter-server>=1.24.0 (from jupyter-server-proxy->geoai-py)
Downloading jupyter_server-2.16.0-py3-none-any.whl.metadata (8.5 kB)
Collecting simpervisor>=1.0.0 (from jupyter-server-proxy->geoai-py)
Downloading simpervisor-1.0.0-py3-none-any.whl.metadata (4.3 kB)
Requirement already satisfied: tornado>=6.1.0 in /usr/local/lib/python3.11/dist-packages (from jupyter-server-proxy->geoai-py) (6.4.2)
Requirement already satisfied: traitlets>=5.1.0 in /usr/local/lib/python3.11/dist-packages (from jupyter-server-proxy->geoai-py) (5.7.1)
Collecting anywidget (from leafmap->geoai-py)
Downloading anywidget-0.9.18-py3-none-any.whl.metadata (8.9 kB)
Requirement already satisfied: bqplot in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (0.12.44)
Requirement already satisfied: colour in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (0.1.5)
Requirement already satisfied: duckdb in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (1.2.2)
Requirement already satisfied: folium in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (0.19.5)
Requirement already satisfied: gdown in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (5.2.0)
Collecting geojson (from leafmap->geoai-py)
Downloading geojson-3.2.0-py3-none-any.whl.metadata (16 kB)
Requirement already satisfied: ipyevents in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (2.0.2)
Requirement already satisfied: ipyfilechooser in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (0.6.0)
Requirement already satisfied: ipyleaflet in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (0.19.2)
Collecting ipyvuetify (from leafmap->geoai-py)
Downloading ipyvuetify-1.11.1-py2.py3-none-any.whl.metadata (7.5 kB)
Requirement already satisfied: ipywidgets in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (7.7.1)
Requirement already satisfied: plotly in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (5.24.1)
Requirement already satisfied: psutil in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (5.9.5)
Requirement already satisfied: pyshp in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (2.3.1)
Requirement already satisfied: python-box in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (7.3.2)
Requirement already satisfied: scooby in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (0.10.1)
Collecting whiteboxgui (from leafmap->geoai-py)
Downloading whiteboxgui-2.3.0-py2.py3-none-any.whl.metadata (5.7 kB)
Requirement already satisfied: click in /usr/local/lib/python3.11/dist-packages (from localtileserver->geoai-py) (8.2.0)
Requirement already satisfied: flask<4,>=2.0.0 in /usr/local/lib/python3.11/dist-packages (from localtileserver->geoai-py) (3.1.1)
Collecting Flask-Caching (from localtileserver->geoai-py)
Downloading Flask_Caching-2.3.1-py3-none-any.whl.metadata (2.2 kB)
Collecting flask-cors (from localtileserver->geoai-py)
Downloading flask_cors-6.0.0-py3-none-any.whl.metadata (961 bytes)
Collecting flask-restx>=1.3.0 (from localtileserver->geoai-py)
Downloading flask_restx-1.3.0-py2.py3-none-any.whl.metadata (9.3 kB)
Collecting rio-tiler (from localtileserver->geoai-py)
Downloading rio_tiler-7.7.2-py3-none-any.whl.metadata (12 kB)
Collecting rio-cogeo (from localtileserver->geoai-py)
Downloading rio_cogeo-5.4.1-py3-none-any.whl.metadata (4.7 kB)
Collecting server-thread (from localtileserver->geoai-py)
Downloading server_thread-0.3.0-py3-none-any.whl.metadata (5.3 kB)
Requirement already satisfied: werkzeug in /usr/local/lib/python3.11/dist-packages (from localtileserver->geoai-py) (3.1.3)
Requirement already satisfied: networkx>=2.7 in /usr/local/lib/python3.11/dist-packages (from mapclassify->geoai-py) (3.4.2)
Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn->geoai-py) (3.6.0)
Requirement already satisfied: branca in /usr/local/lib/python3.11/dist-packages (from maplibre->geoai-py) (0.8.1)
Collecting eval-type-backport (from maplibre->geoai-py)
Downloading eval_type_backport-0.2.2-py3-none-any.whl.metadata (2.2 kB)
Requirement already satisfied: jinja2>=3.1.5 in /usr/local/lib/python3.11/dist-packages (from maplibre->geoai-py) (3.1.6)
Requirement already satisfied: pyarrow>=15.0.2 in /usr/local/lib/python3.11/dist-packages (from overturemaps->geoai-py) (18.1.0)
Collecting pystac>=1.0.0 (from planetary-computer->geoai-py)
Downloading pystac-1.13.0-py3-none-any.whl.metadata (4.7 kB)
Requirement already satisfied: pytz>=2020.5 in /usr/local/lib/python3.11/dist-packages (from planetary-computer->geoai-py) (2025.2)
Collecting python-dotenv (from planetary-computer->geoai-py)
Downloading python_dotenv-1.1.0-py3-none-any.whl.metadata (24 kB)
Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.11/dist-packages (from pystac-client->geoai-py) (2.9.0.post0)
Collecting affine (from rasterio->geoai-py)
Downloading affine-2.4.0-py3-none-any.whl.metadata (4.0 kB)
Requirement already satisfied: attrs in /usr/local/lib/python3.11/dist-packages (from rasterio->geoai-py) (25.3.0)
Requirement already satisfied: certifi in /usr/local/lib/python3.11/dist-packages (from rasterio->geoai-py) (2025.4.26)
Collecting cligj>=0.5 (from rasterio->geoai-py)
Downloading cligj-0.7.2-py3-none-any.whl.metadata (5.0 kB)
Collecting click-plugins (from rasterio->geoai-py)
Downloading click_plugins-1.1.1-py2.py3-none-any.whl.metadata (6.4 kB)
Requirement already satisfied: pyparsing in /usr/local/lib/python3.11/dist-packages (from rasterio->geoai-py) (3.2.3)
Requirement already satisfied: xarray>=2024.7.0 in /usr/local/lib/python3.11/dist-packages (from rioxarray->geoai-py) (2025.3.1)
Requirement already satisfied: imageio!=2.35.0,>=2.33 in /usr/local/lib/python3.11/dist-packages (from scikit-image->geoai-py) (2.37.0)
Requirement already satisfied: tifffile>=2022.8.12 in /usr/local/lib/python3.11/dist-packages (from scikit-image->geoai-py) (2025.5.10)
Requirement already satisfied: lazy-loader>=0.4 in /usr/local/lib/python3.11/dist-packages (from scikit-image->geoai-py) (0.4)
Collecting nvidia-cuda-nvrtc-cu12==12.4.127 (from torch->geoai-py)
Downloading nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-cuda-runtime-cu12==12.4.127 (from torch->geoai-py)
Downloading nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-cuda-cupti-cu12==12.4.127 (from torch->geoai-py)
Downloading nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)
Collecting nvidia-cudnn-cu12==9.1.0.70 (from torch->geoai-py)
Downloading nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)
Collecting nvidia-cublas-cu12==12.4.5.8 (from torch->geoai-py)
Downloading nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-cufft-cu12==11.2.1.3 (from torch->geoai-py)
Downloading nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-curand-cu12==10.3.5.147 (from torch->geoai-py)
Downloading nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-cusolver-cu12==11.6.1.9 (from torch->geoai-py)
Downloading nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)
Collecting nvidia-cusparse-cu12==12.3.1.170 (from torch->geoai-py)
Downloading nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)
Requirement already satisfied: nvidia-cusparselt-cu12==0.6.2 in /usr/local/lib/python3.11/dist-packages (from torch->geoai-py) (0.6.2)
Requirement already satisfied: nvidia-nccl-cu12==2.21.5 in /usr/local/lib/python3.11/dist-packages (from torch->geoai-py) (2.21.5)
Requirement already satisfied: nvidia-nvtx-cu12==12.4.127 in /usr/local/lib/python3.11/dist-packages (from torch->geoai-py) (12.4.127)
Collecting nvidia-nvjitlink-cu12==12.4.127 (from torch->geoai-py)
Downloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Requirement already satisfied: triton==3.2.0 in /usr/local/lib/python3.11/dist-packages (from torch->geoai-py) (3.2.0)
Requirement already satisfied: sympy==1.13.1 in /usr/local/lib/python3.11/dist-packages (from torch->geoai-py) (1.13.1)
Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.11/dist-packages (from sympy==1.13.1->torch->geoai-py) (1.3.0)
Requirement already satisfied: einops>=0.3 in /usr/local/lib/python3.11/dist-packages (from torchgeo->geoai-py) (0.8.1)
Collecting fiona>=1.8.22 (from torchgeo->geoai-py)
Downloading fiona-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (56 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.6/56.6 kB 2.9 MB/s eta 0:00:00
Collecting kornia>=0.7.4 (from torchgeo->geoai-py)
Downloading kornia-0.8.1-py2.py3-none-any.whl.metadata (17 kB)
Collecting lightly!=1.4.26,>=1.4.5 (from torchgeo->geoai-py)
Downloading lightly-1.5.20-py3-none-any.whl.metadata (37 kB)
Collecting lightning!=2.3.*,!=2.5.0,>=2 (from lightning[pytorch-extra]!=2.3.*,!=2.5.0,>=2->torchgeo->geoai-py)
Downloading lightning-2.5.1.post0-py3-none-any.whl.metadata (39 kB)
Collecting rtree>=1.0.1 (from torchgeo->geoai-py)
Downloading rtree-1.4.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.1 kB)
Collecting segmentation-models-pytorch>=0.3.3 (from torchgeo->geoai-py)
Downloading segmentation_models_pytorch-0.5.0-py3-none-any.whl.metadata (17 kB)
Requirement already satisfied: timm>=0.9.2 in /usr/local/lib/python3.11/dist-packages (from torchgeo->geoai-py) (1.0.15)
Collecting torchmetrics>=1.2 (from torchgeo->geoai-py)
Downloading torchmetrics-1.7.1-py3-none-any.whl.metadata (21 kB)
Requirement already satisfied: torchvision>=0.15.1 in /usr/local/lib/python3.11/dist-packages (from torchgeo->geoai-py) (0.21.0+cu124)
Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.11/dist-packages (from transformers->geoai-py) (2024.11.6)
Requirement already satisfied: tokenizers<0.22,>=0.21 in /usr/local/lib/python3.11/dist-packages (from transformers->geoai-py) (0.21.1)
Requirement already satisfied: safetensors>=0.4.3 in /usr/local/lib/python3.11/dist-packages (from transformers->geoai-py) (0.5.3)
Requirement already satisfied: blinker>=1.9.0 in /usr/local/lib/python3.11/dist-packages (from flask<4,>=2.0.0->localtileserver->geoai-py) (1.9.0)
Requirement already satisfied: itsdangerous>=2.2.0 in /usr/local/lib/python3.11/dist-packages (from flask<4,>=2.0.0->localtileserver->geoai-py) (2.2.0)
Requirement already satisfied: markupsafe>=2.1.1 in /usr/local/lib/python3.11/dist-packages (from flask<4,>=2.0.0->localtileserver->geoai-py) (3.0.2)
Collecting aniso8601>=0.82 (from flask-restx>=1.3.0->localtileserver->geoai-py)
Downloading aniso8601-10.0.1-py2.py3-none-any.whl.metadata (23 kB)
Requirement already satisfied: jsonschema in /usr/local/lib/python3.11/dist-packages (from flask-restx>=1.3.0->localtileserver->geoai-py) (4.23.0)
Requirement already satisfied: importlib-resources in /usr/local/lib/python3.11/dist-packages (from flask-restx>=1.3.0->localtileserver->geoai-py) (6.5.2)
Requirement already satisfied: anyio>=3.1.0 in /usr/local/lib/python3.11/dist-packages (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (4.9.0)
Requirement already satisfied: argon2-cffi>=21.1 in /usr/local/lib/python3.11/dist-packages (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (23.1.0)
Collecting jupyter-client>=7.4.4 (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
Downloading jupyter_client-8.6.3-py3-none-any.whl.metadata (8.3 kB)
Requirement already satisfied: jupyter-core!=5.0.*,>=4.12 in /usr/local/lib/python3.11/dist-packages (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (5.7.2)
Collecting jupyter-events>=0.11.0 (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
Downloading jupyter_events-0.12.0-py3-none-any.whl.metadata (5.8 kB)
Collecting jupyter-server-terminals>=0.4.4 (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
Downloading jupyter_server_terminals-0.5.3-py3-none-any.whl.metadata (5.6 kB)
Requirement already satisfied: nbconvert>=6.4.4 in /usr/local/lib/python3.11/dist-packages (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (7.16.6)
Requirement already satisfied: nbformat>=5.3.0 in /usr/local/lib/python3.11/dist-packages (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (5.10.4)
Collecting overrides>=5.0 (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
Downloading overrides-7.7.0-py3-none-any.whl.metadata (5.8 kB)
Requirement already satisfied: prometheus-client>=0.9 in /usr/local/lib/python3.11/dist-packages (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (0.21.1)
Requirement already satisfied: pyzmq>=24 in /usr/local/lib/python3.11/dist-packages (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (24.0.1)
Requirement already satisfied: send2trash>=1.8.2 in /usr/local/lib/python3.11/dist-packages (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (1.8.3)
Requirement already satisfied: terminado>=0.8.3 in /usr/local/lib/python3.11/dist-packages (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (0.18.1)
Requirement already satisfied: websocket-client>=1.7 in /usr/local/lib/python3.11/dist-packages (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (1.8.0)
Collecting kornia_rs>=0.1.9 (from kornia>=0.7.4->torchgeo->geoai-py)
Downloading kornia_rs-0.1.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)
Collecting hydra-core>=1.0.0 (from lightly!=1.4.26,>=1.4.5->torchgeo->geoai-py)
Downloading hydra_core-1.3.2-py3-none-any.whl.metadata (5.5 kB)
Collecting lightly_utils~=0.0.0 (from lightly!=1.4.26,>=1.4.5->torchgeo->geoai-py)
Downloading lightly_utils-0.0.2-py3-none-any.whl.metadata (1.4 kB)
Requirement already satisfied: six>=1.10 in /usr/local/lib/python3.11/dist-packages (from lightly!=1.4.26,>=1.4.5->torchgeo->geoai-py) (1.17.0)
Collecting pytorch_lightning>=1.0.4 (from lightly!=1.4.26,>=1.4.5->torchgeo->geoai-py)
Downloading pytorch_lightning-2.5.1.post0-py3-none-any.whl.metadata (20 kB)
Requirement already satisfied: urllib3>=1.25.3 in /usr/local/lib/python3.11/dist-packages (from lightly!=1.4.26,>=1.4.5->torchgeo->geoai-py) (2.4.0)
Collecting aenum>=3.1.11 (from lightly!=1.4.26,>=1.4.5->torchgeo->geoai-py)
Downloading aenum-3.1.16-py3-none-any.whl.metadata (3.8 kB)
Collecting lightning-utilities<2.0,>=0.10.0 (from lightning!=2.3.*,!=2.5.0,>=2->lightning[pytorch-extra]!=2.3.*,!=2.5.0,>=2->torchgeo->geoai-py)
Downloading lightning_utilities-0.14.3-py3-none-any.whl.metadata (5.6 kB)
Collecting jsonargparse<5.0,>=4.27.7 (from jsonargparse[signatures]<5.0,>=4.27.7; extra == "pytorch-extra"->lightning[pytorch-extra]!=2.3.*,!=2.5.0,>=2->torchgeo->geoai-py)
Downloading jsonargparse-4.40.0-py3-none-any.whl.metadata (13 kB)
Requirement already satisfied: omegaconf<3.0,>=2.2.3 in /usr/local/lib/python3.11/dist-packages (from lightning[pytorch-extra]!=2.3.*,!=2.5.0,>=2->torchgeo->geoai-py) (2.3.0)
Requirement already satisfied: rich<14.0,>=12.3.0 in /usr/local/lib/python3.11/dist-packages (from lightning[pytorch-extra]!=2.3.*,!=2.5.0,>=2->torchgeo->geoai-py) (13.9.4)
Collecting tensorboardX<3.0,>=2.2 (from lightning[pytorch-extra]!=2.3.*,!=2.5.0,>=2->torchgeo->geoai-py)
Downloading tensorboardX-2.6.2.2-py2.py3-none-any.whl.metadata (5.8 kB)
Collecting bitsandbytes<1.0,>=0.45.2 (from lightning[pytorch-extra]!=2.3.*,!=2.5.0,>=2->torchgeo->geoai-py)
Downloading bitsandbytes-0.45.5-py3-none-manylinux_2_24_x86_64.whl.metadata (5.0 kB)
Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib->contextily->geoai-py) (1.3.2)
Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.11/dist-packages (from matplotlib->contextily->geoai-py) (0.12.1)
Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib->contextily->geoai-py) (4.58.0)
Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib->contextily->geoai-py) (1.4.8)
Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.4.0->geopandas->geoai-py) (2025.2)
Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.11/dist-packages (from pydantic>=2.9.2->albumentations->geoai-py) (0.7.0)
Requirement already satisfied: pydantic-core==2.33.2 in /usr/local/lib/python3.11/dist-packages (from pydantic>=2.9.2->albumentations->geoai-py) (2.33.2)
Requirement already satisfied: typing-inspection>=0.4.0 in /usr/local/lib/python3.11/dist-packages (from pydantic>=2.9.2->albumentations->geoai-py) (0.4.0)
Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.11/dist-packages (from requests->contextily->geoai-py) (3.4.2)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/dist-packages (from requests->contextily->geoai-py) (3.10)
Requirement already satisfied: aiohappyeyeballs>=2.3.0 in /usr/local/lib/python3.11/dist-packages (from aiohttp->jupyter-server-proxy->geoai-py) (2.6.1)
Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.11/dist-packages (from aiohttp->jupyter-server-proxy->geoai-py) (1.3.2)
Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.11/dist-packages (from aiohttp->jupyter-server-proxy->geoai-py) (1.6.0)
Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.11/dist-packages (from aiohttp->jupyter-server-proxy->geoai-py) (6.4.3)
Requirement already satisfied: propcache>=0.2.0 in /usr/local/lib/python3.11/dist-packages (from aiohttp->jupyter-server-proxy->geoai-py) (0.3.1)
Requirement already satisfied: yarl<2.0,>=1.17.0 in /usr/local/lib/python3.11/dist-packages (from aiohttp->jupyter-server-proxy->geoai-py) (1.20.0)
Collecting psygnal>=0.8.1 (from anywidget->leafmap->geoai-py)
Downloading psygnal-0.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.0 kB)
Requirement already satisfied: ipykernel>=4.5.1 in /usr/local/lib/python3.11/dist-packages (from ipywidgets->leafmap->geoai-py) (6.17.1)
Requirement already satisfied: ipython-genutils~=0.2.0 in /usr/local/lib/python3.11/dist-packages (from ipywidgets->leafmap->geoai-py) (0.2.0)
Requirement already satisfied: widgetsnbextension~=3.6.0 in /usr/local/lib/python3.11/dist-packages (from ipywidgets->leafmap->geoai-py) (3.6.10)
Requirement already satisfied: ipython>=4.0.0 in /usr/local/lib/python3.11/dist-packages (from ipywidgets->leafmap->geoai-py) (7.34.0)
Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /usr/local/lib/python3.11/dist-packages (from ipywidgets->leafmap->geoai-py) (3.0.15)
Requirement already satisfied: traittypes>=0.0.6 in /usr/local/lib/python3.11/dist-packages (from bqplot->leafmap->geoai-py) (0.2.1)
Collecting cachelib>=0.9.0 (from Flask-Caching->localtileserver->geoai-py)
Downloading cachelib-0.13.0-py3-none-any.whl.metadata (2.0 kB)
Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python3.11/dist-packages (from gdown->leafmap->geoai-py) (4.13.4)
Requirement already satisfied: geographiclib<3,>=1.52 in /usr/local/lib/python3.11/dist-packages (from geopy->contextily->geoai-py) (2.0)
Requirement already satisfied: jupyter-leaflet<0.20,>=0.19 in /usr/local/lib/python3.11/dist-packages (from ipyleaflet->leafmap->geoai-py) (0.19.2)
Collecting ipyvue<2,>=1.7 (from ipyvuetify->leafmap->geoai-py)
Downloading ipyvue-1.11.2-py2.py3-none-any.whl.metadata (1.1 kB)
Requirement already satisfied: tenacity>=6.2.0 in /usr/local/lib/python3.11/dist-packages (from plotly->leafmap->geoai-py) (9.1.2)
Collecting morecantile<7.0,>=5.0 (from rio-cogeo->localtileserver->geoai-py)
Downloading morecantile-6.2.0-py3-none-any.whl.metadata (7.3 kB)
Requirement already satisfied: cachetools in /usr/local/lib/python3.11/dist-packages (from rio-tiler->localtileserver->geoai-py) (5.5.2)
Collecting color-operations (from rio-tiler->localtileserver->geoai-py)
Downloading color_operations-0.2.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.3 kB)
Requirement already satisfied: httpx in /usr/local/lib/python3.11/dist-packages (from rio-tiler->localtileserver->geoai-py) (0.28.1)
Requirement already satisfied: numexpr in /usr/local/lib/python3.11/dist-packages (from rio-tiler->localtileserver->geoai-py) (2.10.2)
Collecting uvicorn (from server-thread->localtileserver->geoai-py)
Downloading uvicorn-0.34.2-py3-none-any.whl.metadata (6.5 kB)
Requirement already satisfied: ipytree in /usr/local/lib/python3.11/dist-packages (from whiteboxgui->leafmap->geoai-py) (0.2.2)
Collecting whitebox (from whiteboxgui->leafmap->geoai-py)
Downloading whitebox-2.3.6-py2.py3-none-any.whl.metadata (11 kB)
Requirement already satisfied: sniffio>=1.1 in /usr/local/lib/python3.11/dist-packages (from anyio>=3.1.0->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (1.3.1)
Requirement already satisfied: argon2-cffi-bindings in /usr/local/lib/python3.11/dist-packages (from argon2-cffi>=21.1->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (21.2.0)
Requirement already satisfied: antlr4-python3-runtime==4.9.* in /usr/local/lib/python3.11/dist-packages (from hydra-core>=1.0.0->lightly!=1.4.26,>=1.4.5->torchgeo->geoai-py) (4.9.3)
Requirement already satisfied: debugpy>=1.0 in /usr/local/lib/python3.11/dist-packages (from ipykernel>=4.5.1->ipywidgets->leafmap->geoai-py) (1.8.0)
Requirement already satisfied: matplotlib-inline>=0.1 in /usr/local/lib/python3.11/dist-packages (from ipykernel>=4.5.1->ipywidgets->leafmap->geoai-py) (0.1.7)
Requirement already satisfied: nest-asyncio in /usr/local/lib/python3.11/dist-packages (from ipykernel>=4.5.1->ipywidgets->leafmap->geoai-py) (1.6.0)
Requirement already satisfied: setuptools>=18.5 in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets->leafmap->geoai-py) (75.2.0)
Collecting jedi>=0.16 (from ipython>=4.0.0->ipywidgets->leafmap->geoai-py)
Downloading jedi-0.19.2-py2.py3-none-any.whl.metadata (22 kB)
Requirement already satisfied: decorator in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets->leafmap->geoai-py) (4.4.2)
Requirement already satisfied: pickleshare in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets->leafmap->geoai-py) (0.7.5)
Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets->leafmap->geoai-py) (3.0.51)
Requirement already satisfied: pygments in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets->leafmap->geoai-py) (2.19.1)
Requirement already satisfied: backcall in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets->leafmap->geoai-py) (0.2.0)
Requirement already satisfied: pexpect>4.3 in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets->leafmap->geoai-py) (4.9.0)
Requirement already satisfied: docstring-parser>=0.15 in /usr/local/lib/python3.11/dist-packages (from jsonargparse[signatures]<5.0,>=4.27.7; extra == "pytorch-extra"->lightning[pytorch-extra]!=2.3.*,!=2.5.0,>=2->torchgeo->geoai-py) (0.16)
Collecting typeshed-client>=2.3.0 (from jsonargparse[signatures]<5.0,>=4.27.7; extra == "pytorch-extra"->lightning[pytorch-extra]!=2.3.*,!=2.5.0,>=2->torchgeo->geoai-py)
Downloading typeshed_client-2.7.0-py3-none-any.whl.metadata (7.9 kB)
Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /usr/local/lib/python3.11/dist-packages (from jsonschema->flask-restx>=1.3.0->localtileserver->geoai-py) (2025.4.1)
Requirement already satisfied: referencing>=0.28.4 in /usr/local/lib/python3.11/dist-packages (from jsonschema->flask-restx>=1.3.0->localtileserver->geoai-py) (0.36.2)
Requirement already satisfied: rpds-py>=0.7.1 in /usr/local/lib/python3.11/dist-packages (from jsonschema->flask-restx>=1.3.0->localtileserver->geoai-py) (0.24.0)
Requirement already satisfied: platformdirs>=2.5 in /usr/local/lib/python3.11/dist-packages (from jupyter-core!=5.0.*,>=4.12->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (4.3.8)
Collecting python-json-logger>=2.0.4 (from jupyter-events>=0.11.0->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
Downloading python_json_logger-3.3.0-py3-none-any.whl.metadata (4.0 kB)
Collecting rfc3339-validator (from jupyter-events>=0.11.0->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
Downloading rfc3339_validator-0.1.4-py2.py3-none-any.whl.metadata (1.5 kB)
Collecting rfc3986-validator>=0.1.1 (from jupyter-events>=0.11.0->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
Downloading rfc3986_validator-0.1.1-py2.py3-none-any.whl.metadata (1.7 kB)
Requirement already satisfied: bleach!=5.0.0 in /usr/local/lib/python3.11/dist-packages (from bleach[css]!=5.0.0->nbconvert>=6.4.4->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (6.2.0)
Requirement already satisfied: defusedxml in /usr/local/lib/python3.11/dist-packages (from nbconvert>=6.4.4->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (0.7.1)
Requirement already satisfied: jupyterlab-pygments in /usr/local/lib/python3.11/dist-packages (from nbconvert>=6.4.4->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (0.3.0)
Requirement already satisfied: mistune<4,>=2.0.3 in /usr/local/lib/python3.11/dist-packages (from nbconvert>=6.4.4->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (3.1.3)
Requirement already satisfied: nbclient>=0.5.0 in /usr/local/lib/python3.11/dist-packages (from nbconvert>=6.4.4->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (0.10.2)
Requirement already satisfied: pandocfilters>=1.4.1 in /usr/local/lib/python3.11/dist-packages (from nbconvert>=6.4.4->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (1.5.1)
Requirement already satisfied: fastjsonschema>=2.15 in /usr/local/lib/python3.11/dist-packages (from nbformat>=5.3.0->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (2.21.1)
Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.11/dist-packages (from rich<14.0,>=12.3.0->lightning[pytorch-extra]!=2.3.*,!=2.5.0,>=2->torchgeo->geoai-py) (3.0.0)
Requirement already satisfied: protobuf>=3.20 in /usr/local/lib/python3.11/dist-packages (from tensorboardX<3.0,>=2.2->lightning[pytorch-extra]!=2.3.*,!=2.5.0,>=2->torchgeo->geoai-py) (5.29.4)
Requirement already satisfied: ptyprocess in /usr/local/lib/python3.11/dist-packages (from terminado>=0.8.3->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (0.7.0)
Requirement already satisfied: notebook>=4.4.1 in /usr/local/lib/python3.11/dist-packages (from widgetsnbextension~=3.6.0->ipywidgets->leafmap->geoai-py) (6.5.7)
Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.11/dist-packages (from beautifulsoup4->gdown->leafmap->geoai-py) (2.7)
Requirement already satisfied: httpcore==1.* in /usr/local/lib/python3.11/dist-packages (from httpx->rio-tiler->localtileserver->geoai-py) (1.0.9)
Requirement already satisfied: h11>=0.16 in /usr/local/lib/python3.11/dist-packages (from httpcore==1.*->httpx->rio-tiler->localtileserver->geoai-py) (0.16.0)
Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /usr/local/lib/python3.11/dist-packages (from requests[socks]->gdown->leafmap->geoai-py) (1.7.1)
Requirement already satisfied: webencodings in /usr/local/lib/python3.11/dist-packages (from bleach!=5.0.0->bleach[css]!=5.0.0->nbconvert>=6.4.4->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (0.5.1)
Requirement already satisfied: tinycss2<1.5,>=1.1.0 in /usr/local/lib/python3.11/dist-packages (from bleach[css]!=5.0.0->nbconvert>=6.4.4->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (1.4.0)
Requirement already satisfied: parso<0.9.0,>=0.8.4 in /usr/local/lib/python3.11/dist-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets->leafmap->geoai-py) (0.8.4)
Collecting fqdn (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
Downloading fqdn-1.5.1-py3-none-any.whl.metadata (1.4 kB)
Collecting isoduration (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
Downloading isoduration-20.11.0-py3-none-any.whl.metadata (5.7 kB)
Requirement already satisfied: jsonpointer>1.13 in /usr/local/lib/python3.11/dist-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (3.0.0)
Collecting uri-template (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
Downloading uri_template-1.3.0-py3-none-any.whl.metadata (8.8 kB)
Requirement already satisfied: webcolors>=24.6.0 in /usr/local/lib/python3.11/dist-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (24.11.1)
Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.11/dist-packages (from markdown-it-py>=2.2.0->rich<14.0,>=12.3.0->lightning[pytorch-extra]!=2.3.*,!=2.5.0,>=2->torchgeo->geoai-py) (0.1.2)
Collecting jupyter-client>=7.4.4 (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
Downloading jupyter_client-7.4.9-py3-none-any.whl.metadata (8.5 kB)
Requirement already satisfied: nbclassic>=0.4.7 in /usr/local/lib/python3.11/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->leafmap->geoai-py) (1.3.1)
Requirement already satisfied: entrypoints in /usr/local/lib/python3.11/dist-packages (from jupyter-client>=7.4.4->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (0.4)
Requirement already satisfied: wcwidth in /usr/local/lib/python3.11/dist-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets->leafmap->geoai-py) (0.2.13)
Requirement already satisfied: cffi>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from argon2-cffi-bindings->argon2-cffi>=21.1->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (1.17.1)
Requirement already satisfied: pycparser in /usr/local/lib/python3.11/dist-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi>=21.1->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (2.22)
Requirement already satisfied: notebook-shim>=0.2.3 in /usr/local/lib/python3.11/dist-packages (from nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->leafmap->geoai-py) (0.2.4)
Collecting arrow>=0.15.0 (from isoduration->jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
Downloading arrow-1.3.0-py3-none-any.whl.metadata (7.5 kB)
Collecting types-python-dateutil>=2.8.10 (from arrow>=0.15.0->isoduration->jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
Downloading types_python_dateutil-2.9.0.20250516-py3-none-any.whl.metadata (2.1 kB)
Downloading geoai_py-0.6.0-py2.py3-none-any.whl (140 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 140.8/140.8 kB 10.2 MB/s eta 0:00:00
Downloading buildingregulariser-0.1.12-py3-none-any.whl (19 kB)
Downloading contextily-1.6.2-py3-none-any.whl (17 kB)
Downloading jupyter_server_proxy-4.4.0-py3-none-any.whl (37 kB)
Downloading leafmap-0.45.0-py2.py3-none-any.whl (547 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 547.7/547.7 kB 33.7 MB/s eta 0:00:00
Downloading localtileserver-0.10.6-py3-none-any.whl (17.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 17.1/17.1 MB 111.0 MB/s eta 0:00:00
Downloading mapclassify-2.8.1-py3-none-any.whl (59 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 59.1/59.1 kB 5.9 MB/s eta 0:00:00
Downloading maplibre-0.3.3-py3-none-any.whl (1.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3/1.3 MB 56.6 MB/s eta 0:00:00
Downloading overturemaps-0.14.0-py3-none-any.whl (9.9 kB)
Downloading planetary_computer-1.0.0-py3-none-any.whl (14 kB)
Downloading pystac_client-0.8.6-py3-none-any.whl (41 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 41.4/41.4 kB 4.4 MB/s eta 0:00:00
Downloading rasterio-1.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (22.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 22.2/22.2 MB 106.6 MB/s eta 0:00:00
Downloading rioxarray-0.19.0-py3-none-any.whl (62 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.2/62.2 kB 7.8 MB/s eta 0:00:00
Downloading nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl (363.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 363.4/363.4 MB 4.7 MB/s eta 0:00:00
Downloading nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (13.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.8/13.8 MB 69.0 MB/s eta 0:00:00
Downloading nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (24.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 24.6/24.6 MB 37.7 MB/s eta 0:00:00
Downloading nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (883 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 883.7/883.7 kB 51.4 MB/s eta 0:00:00
Downloading nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl (664.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 664.8/664.8 MB 2.1 MB/s eta 0:00:00
Downloading nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl (211.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 211.5/211.5 MB 5.4 MB/s eta 0:00:00
Downloading nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl (56.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.3/56.3 MB 12.7 MB/s eta 0:00:00
Downloading nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl (127.9 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 127.9/127.9 MB 7.4 MB/s eta 0:00:00
Downloading nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl (207.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 207.5/207.5 MB 5.5 MB/s eta 0:00:00
Downloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (21.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 21.1/21.1 MB 103.2 MB/s eta 0:00:00
Downloading torchgeo-0.7.0-py3-none-any.whl (604 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 605.0/605.0 kB 46.1 MB/s eta 0:00:00
Downloading torchinfo-1.8.0-py3-none-any.whl (23 kB)
Downloading cligj-0.7.2-py3-none-any.whl (7.1 kB)
Downloading fiona-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 17.3/17.3 MB 115.8 MB/s eta 0:00:00
Downloading click_plugins-1.1.1-py2.py3-none-any.whl (7.5 kB)
Downloading flask_restx-1.3.0-py2.py3-none-any.whl (2.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.8/2.8 MB 88.3 MB/s eta 0:00:00
Downloading jupyter_server-2.16.0-py3-none-any.whl (386 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 386.9/386.9 kB 35.2 MB/s eta 0:00:00
Downloading kornia-0.8.1-py2.py3-none-any.whl (1.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 67.3 MB/s eta 0:00:00
Downloading lightly-1.5.20-py3-none-any.whl (851 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 851.6/851.6 kB 59.1 MB/s eta 0:00:00
Downloading lightning-2.5.1.post0-py3-none-any.whl (819 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 819.0/819.0 kB 61.1 MB/s eta 0:00:00
Downloading pystac-1.13.0-py3-none-any.whl (206 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 206.8/206.8 kB 20.5 MB/s eta 0:00:00
Downloading rtree-1.4.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (541 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 541.1/541.1 kB 46.5 MB/s eta 0:00:00
Downloading segmentation_models_pytorch-0.5.0-py3-none-any.whl (154 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 154.8/154.8 kB 17.4 MB/s eta 0:00:00
Downloading simpervisor-1.0.0-py3-none-any.whl (8.3 kB)
Downloading torchmetrics-1.7.1-py3-none-any.whl (961 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 961.5/961.5 kB 62.3 MB/s eta 0:00:00
Downloading affine-2.4.0-py3-none-any.whl (15 kB)
Downloading anywidget-0.9.18-py3-none-any.whl (220 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 220.7/220.7 kB 23.5 MB/s eta 0:00:00
Downloading eval_type_backport-0.2.2-py3-none-any.whl (5.8 kB)
Downloading Flask_Caching-2.3.1-py3-none-any.whl (28 kB)
Downloading flask_cors-6.0.0-py3-none-any.whl (11 kB)
Downloading geojson-3.2.0-py3-none-any.whl (15 kB)
Downloading ipyvuetify-1.11.1-py2.py3-none-any.whl (7.7 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.7/7.7 MB 119.9 MB/s eta 0:00:00
Downloading mercantile-1.2.1-py3-none-any.whl (14 kB)
Downloading python_dotenv-1.1.0-py3-none-any.whl (20 kB)
Downloading rio_cogeo-5.4.1-py3-none-any.whl (20 kB)
Downloading rio_tiler-7.7.2-py3-none-any.whl (268 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 268.6/268.6 kB 25.6 MB/s eta 0:00:00
Downloading server_thread-0.3.0-py3-none-any.whl (6.6 kB)
Downloading whiteboxgui-2.3.0-py2.py3-none-any.whl (108 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 108.6/108.6 kB 11.6 MB/s eta 0:00:00
Downloading aenum-3.1.16-py3-none-any.whl (165 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 165.6/165.6 kB 18.2 MB/s eta 0:00:00
Downloading aniso8601-10.0.1-py2.py3-none-any.whl (52 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 52.8/52.8 kB 5.2 MB/s eta 0:00:00
Downloading bitsandbytes-0.45.5-py3-none-manylinux_2_24_x86_64.whl (76.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 76.1/76.1 MB 10.0 MB/s eta 0:00:00
Downloading cachelib-0.13.0-py3-none-any.whl (20 kB)
Downloading hydra_core-1.3.2-py3-none-any.whl (154 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 154.5/154.5 kB 15.8 MB/s eta 0:00:00
Downloading ipyvue-1.11.2-py2.py3-none-any.whl (2.7 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.7/2.7 MB 102.1 MB/s eta 0:00:00
Downloading jsonargparse-4.40.0-py3-none-any.whl (224 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 224.3/224.3 kB 22.3 MB/s eta 0:00:00
Downloading jupyter_events-0.12.0-py3-none-any.whl (19 kB)
Downloading jupyter_server_terminals-0.5.3-py3-none-any.whl (13 kB)
Downloading kornia_rs-0.1.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.8/2.8 MB 104.4 MB/s eta 0:00:00
Downloading lightly_utils-0.0.2-py3-none-any.whl (6.4 kB)
Downloading lightning_utilities-0.14.3-py3-none-any.whl (28 kB)
Downloading morecantile-6.2.0-py3-none-any.whl (49 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 49.5/49.5 kB 4.5 MB/s eta 0:00:00
Downloading overrides-7.7.0-py3-none-any.whl (17 kB)
Downloading psygnal-0.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (842 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 842.5/842.5 kB 57.4 MB/s eta 0:00:00
Downloading pytorch_lightning-2.5.1.post0-py3-none-any.whl (823 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 823.1/823.1 kB 62.5 MB/s eta 0:00:00
Downloading tensorboardX-2.6.2.2-py2.py3-none-any.whl (101 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 101.7/101.7 kB 9.4 MB/s eta 0:00:00
Downloading color_operations-0.2.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (195 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 195.2/195.2 kB 19.4 MB/s eta 0:00:00
Downloading uvicorn-0.34.2-py3-none-any.whl (62 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.5/62.5 kB 6.4 MB/s eta 0:00:00
Downloading whitebox-2.3.6-py2.py3-none-any.whl (74 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 74.0/74.0 kB 7.7 MB/s eta 0:00:00
Downloading jedi-0.19.2-py2.py3-none-any.whl (1.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.6/1.6 MB 77.7 MB/s eta 0:00:00
Downloading jupyter_client-7.4.9-py3-none-any.whl (133 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.5/133.5 kB 13.3 MB/s eta 0:00:00
Downloading python_json_logger-3.3.0-py3-none-any.whl (15 kB)
Downloading rfc3986_validator-0.1.1-py2.py3-none-any.whl (4.2 kB)
Downloading typeshed_client-2.7.0-py3-none-any.whl (624 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 624.4/624.4 kB 48.9 MB/s eta 0:00:00
Downloading rfc3339_validator-0.1.4-py2.py3-none-any.whl (3.5 kB)
Downloading fqdn-1.5.1-py3-none-any.whl (9.1 kB)
Downloading isoduration-20.11.0-py3-none-any.whl (11 kB)
Downloading uri_template-1.3.0-py3-none-any.whl (11 kB)
Downloading arrow-1.3.0-py3-none-any.whl (66 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 66.4/66.4 kB 6.5 MB/s eta 0:00:00
Downloading types_python_dateutil-2.9.0.20250516-py3-none-any.whl (14 kB)
Installing collected packages: aniso8601, aenum, whitebox, uvicorn, uri-template, typeshed-client, types-python-dateutil, torchinfo, tensorboardX, simpervisor, rtree, rfc3986-validator, rfc3339-validator, python-json-logger, python-dotenv, psygnal, overrides, nvidia-nvjitlink-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, mercantile, lightning-utilities, lightly_utils, kornia_rs, jsonargparse, jedi, geojson, fqdn, eval-type-backport, color-operations, cligj, click-plugins, cachelib, affine, server-thread, rasterio, pystac, overturemaps, nvidia-cusparse-cu12, nvidia-cudnn-cu12, jupyter-server-terminals, jupyter-client, hydra-core, fiona, arrow, nvidia-cusolver-cu12, morecantile, maplibre, mapclassify, isoduration, flask-cors, Flask-Caching, contextily, rioxarray, rio-tiler, rio-cogeo, flask-restx, buildingregulariser, torchmetrics, pystac-client, localtileserver, kornia, jupyter-events, bitsandbytes, pytorch_lightning, planetary-computer, segmentation-models-pytorch, lightning, lightly, jupyter-server, jupyter-server-proxy, torchgeo, ipyvue, anywidget, whiteboxgui, ipyvuetify, leafmap, geoai-py
Attempting uninstall: nvidia-nvjitlink-cu12
Found existing installation: nvidia-nvjitlink-cu12 12.5.82
Uninstalling nvidia-nvjitlink-cu12-12.5.82:
Successfully uninstalled nvidia-nvjitlink-cu12-12.5.82
Attempting uninstall: nvidia-curand-cu12
Found existing installation: nvidia-curand-cu12 10.3.6.82
Uninstalling nvidia-curand-cu12-10.3.6.82:
Successfully uninstalled nvidia-curand-cu12-10.3.6.82
Attempting uninstall: nvidia-cufft-cu12
Found existing installation: nvidia-cufft-cu12 11.2.3.61
Uninstalling nvidia-cufft-cu12-11.2.3.61:
Successfully uninstalled nvidia-cufft-cu12-11.2.3.61
Attempting uninstall: nvidia-cuda-runtime-cu12
Found existing installation: nvidia-cuda-runtime-cu12 12.5.82
Uninstalling nvidia-cuda-runtime-cu12-12.5.82:
Successfully uninstalled nvidia-cuda-runtime-cu12-12.5.82
Attempting uninstall: nvidia-cuda-nvrtc-cu12
Found existing installation: nvidia-cuda-nvrtc-cu12 12.5.82
Uninstalling nvidia-cuda-nvrtc-cu12-12.5.82:
Successfully uninstalled nvidia-cuda-nvrtc-cu12-12.5.82
Attempting uninstall: nvidia-cuda-cupti-cu12
Found existing installation: nvidia-cuda-cupti-cu12 12.5.82
Uninstalling nvidia-cuda-cupti-cu12-12.5.82:
Successfully uninstalled nvidia-cuda-cupti-cu12-12.5.82
Attempting uninstall: nvidia-cublas-cu12
Found existing installation: nvidia-cublas-cu12 12.5.3.2
Uninstalling nvidia-cublas-cu12-12.5.3.2:
Successfully uninstalled nvidia-cublas-cu12-12.5.3.2
Attempting uninstall: nvidia-cusparse-cu12
Found existing installation: nvidia-cusparse-cu12 12.5.1.3
Uninstalling nvidia-cusparse-cu12-12.5.1.3:
Successfully uninstalled nvidia-cusparse-cu12-12.5.1.3
Attempting uninstall: nvidia-cudnn-cu12
Found existing installation: nvidia-cudnn-cu12 9.3.0.75
Uninstalling nvidia-cudnn-cu12-9.3.0.75:
Successfully uninstalled nvidia-cudnn-cu12-9.3.0.75
Attempting uninstall: jupyter-client
Found existing installation: jupyter-client 6.1.12
Uninstalling jupyter-client-6.1.12:
Successfully uninstalled jupyter-client-6.1.12
Attempting uninstall: nvidia-cusolver-cu12
Found existing installation: nvidia-cusolver-cu12 11.6.3.83
Uninstalling nvidia-cusolver-cu12-11.6.3.83:
Successfully uninstalled nvidia-cusolver-cu12-11.6.3.83
Attempting uninstall: jupyter-server
Found existing installation: jupyter-server 1.16.0
Uninstalling jupyter-server-1.16.0:
Successfully uninstalled jupyter-server-1.16.0
Successfully installed Flask-Caching-2.3.1 aenum-3.1.16 affine-2.4.0 aniso8601-10.0.1 anywidget-0.9.18 arrow-1.3.0 bitsandbytes-0.45.5 buildingregulariser-0.1.12 cachelib-0.13.0 click-plugins-1.1.1 cligj-0.7.2 color-operations-0.2.0 contextily-1.6.2 eval-type-backport-0.2.2 fiona-1.10.1 flask-cors-6.0.0 flask-restx-1.3.0 fqdn-1.5.1 geoai-py-0.6.0 geojson-3.2.0 hydra-core-1.3.2 ipyvue-1.11.2 ipyvuetify-1.11.1 isoduration-20.11.0 jedi-0.19.2 jsonargparse-4.40.0 jupyter-client-7.4.9 jupyter-events-0.12.0 jupyter-server-2.16.0 jupyter-server-proxy-4.4.0 jupyter-server-terminals-0.5.3 kornia-0.8.1 kornia_rs-0.1.9 leafmap-0.45.0 lightly-1.5.20 lightly_utils-0.0.2 lightning-2.5.1.post0 lightning-utilities-0.14.3 localtileserver-0.10.6 mapclassify-2.8.1 maplibre-0.3.3 mercantile-1.2.1 morecantile-6.2.0 nvidia-cublas-cu12-12.4.5.8 nvidia-cuda-cupti-cu12-12.4.127 nvidia-cuda-nvrtc-cu12-12.4.127 nvidia-cuda-runtime-cu12-12.4.127 nvidia-cudnn-cu12-9.1.0.70 nvidia-cufft-cu12-11.2.1.3 nvidia-curand-cu12-10.3.5.147 nvidia-cusolver-cu12-11.6.1.9 nvidia-cusparse-cu12-12.3.1.170 nvidia-nvjitlink-cu12-12.4.127 overrides-7.7.0 overturemaps-0.14.0 planetary-computer-1.0.0 psygnal-0.13.0 pystac-1.13.0 pystac-client-0.8.6 python-dotenv-1.1.0 python-json-logger-3.3.0 pytorch_lightning-2.5.1.post0 rasterio-1.4.3 rfc3339-validator-0.1.4 rfc3986-validator-0.1.1 rio-cogeo-5.4.1 rio-tiler-7.7.2 rioxarray-0.19.0 rtree-1.4.0 segmentation-models-pytorch-0.5.0 server-thread-0.3.0 simpervisor-1.0.0 tensorboardX-2.6.2.2 torchgeo-0.7.0 torchinfo-1.8.0 torchmetrics-1.7.1 types-python-dateutil-2.9.0.20250516 typeshed-client-2.7.0 uri-template-1.3.0 uvicorn-0.34.2 whitebox-2.3.6 whiteboxgui-2.3.0
In [ ]:
!pip install ipysheet
Collecting ipysheet Downloading ipysheet-0.7.0-py2.py3-none-any.whl.metadata (4.0 kB) Requirement already satisfied: ipywidgets<9.0,>=7.5.0 in /usr/local/lib/python3.11/dist-packages (from ipysheet) (7.7.1) Requirement already satisfied: ipykernel>=4.5.1 in /usr/local/lib/python3.11/dist-packages (from ipywidgets<9.0,>=7.5.0->ipysheet) (6.17.1) Requirement already satisfied: ipython-genutils~=0.2.0 in /usr/local/lib/python3.11/dist-packages (from ipywidgets<9.0,>=7.5.0->ipysheet) (0.2.0) Requirement already satisfied: traitlets>=4.3.1 in /usr/local/lib/python3.11/dist-packages (from ipywidgets<9.0,>=7.5.0->ipysheet) (5.7.1) Requirement already satisfied: widgetsnbextension~=3.6.0 in /usr/local/lib/python3.11/dist-packages (from ipywidgets<9.0,>=7.5.0->ipysheet) (3.6.10) Requirement already satisfied: ipython>=4.0.0 in /usr/local/lib/python3.11/dist-packages (from ipywidgets<9.0,>=7.5.0->ipysheet) (7.34.0) Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /usr/local/lib/python3.11/dist-packages (from ipywidgets<9.0,>=7.5.0->ipysheet) (3.0.15) Requirement already satisfied: debugpy>=1.0 in /usr/local/lib/python3.11/dist-packages (from ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (1.8.0) Requirement already satisfied: jupyter-client>=6.1.12 in /usr/local/lib/python3.11/dist-packages (from ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (7.4.9) Requirement already satisfied: matplotlib-inline>=0.1 in /usr/local/lib/python3.11/dist-packages (from ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (0.1.7) Requirement already satisfied: nest-asyncio in /usr/local/lib/python3.11/dist-packages (from ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (1.6.0) Requirement already satisfied: packaging in /usr/local/lib/python3.11/dist-packages (from ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (24.2) Requirement already satisfied: psutil in /usr/local/lib/python3.11/dist-packages (from ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (5.9.5) Requirement already satisfied: pyzmq>=17 in /usr/local/lib/python3.11/dist-packages (from ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (24.0.1) Requirement already satisfied: tornado>=6.1 in /usr/local/lib/python3.11/dist-packages (from ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (6.4.2) Requirement already satisfied: setuptools>=18.5 in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets<9.0,>=7.5.0->ipysheet) (75.2.0) Requirement already satisfied: jedi>=0.16 in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.19.2) Requirement already satisfied: decorator in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets<9.0,>=7.5.0->ipysheet) (4.4.2) Requirement already satisfied: pickleshare in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.7.5) Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets<9.0,>=7.5.0->ipysheet) (3.0.51) Requirement already satisfied: pygments in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets<9.0,>=7.5.0->ipysheet) (2.19.1) Requirement already satisfied: backcall in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.2.0) Requirement already satisfied: pexpect>4.3 in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets<9.0,>=7.5.0->ipysheet) (4.9.0) Requirement already satisfied: notebook>=4.4.1 in /usr/local/lib/python3.11/dist-packages (from widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (6.5.7) Requirement already satisfied: parso<0.9.0,>=0.8.4 in /usr/local/lib/python3.11/dist-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.8.4) Requirement already satisfied: entrypoints in /usr/local/lib/python3.11/dist-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (0.4) Requirement already satisfied: jupyter-core>=4.9.2 in /usr/local/lib/python3.11/dist-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (5.7.2) Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.11/dist-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (2.9.0.post0) Requirement already satisfied: jinja2 in /usr/local/lib/python3.11/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (3.1.6) Requirement already satisfied: argon2-cffi in /usr/local/lib/python3.11/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (23.1.0) Requirement already satisfied: nbformat in /usr/local/lib/python3.11/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (5.10.4) Requirement already satisfied: nbconvert>=5 in /usr/local/lib/python3.11/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (7.16.6) Requirement already satisfied: Send2Trash>=1.8.0 in /usr/local/lib/python3.11/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (1.8.3) Requirement already satisfied: terminado>=0.8.3 in /usr/local/lib/python3.11/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.18.1) Requirement already satisfied: prometheus-client in /usr/local/lib/python3.11/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.21.1) Requirement already satisfied: nbclassic>=0.4.7 in /usr/local/lib/python3.11/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (1.3.1) Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.11/dist-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.7.0) Requirement already satisfied: wcwidth in /usr/local/lib/python3.11/dist-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.2.13) Requirement already satisfied: platformdirs>=2.5 in /usr/local/lib/python3.11/dist-packages (from jupyter-core>=4.9.2->jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (4.3.8) Requirement already satisfied: notebook-shim>=0.2.3 in /usr/local/lib/python3.11/dist-packages (from nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.2.4) Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python3.11/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (4.13.4) Requirement already satisfied: bleach!=5.0.0 in /usr/local/lib/python3.11/dist-packages (from bleach[css]!=5.0.0->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (6.2.0) Requirement already satisfied: defusedxml in /usr/local/lib/python3.11/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.7.1) Requirement already satisfied: jupyterlab-pygments in /usr/local/lib/python3.11/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.3.0) Requirement already satisfied: markupsafe>=2.0 in /usr/local/lib/python3.11/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (3.0.2) Requirement already satisfied: mistune<4,>=2.0.3 in /usr/local/lib/python3.11/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (3.1.3) Requirement already satisfied: nbclient>=0.5.0 in /usr/local/lib/python3.11/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.10.2) Requirement already satisfied: pandocfilters>=1.4.1 in /usr/local/lib/python3.11/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (1.5.1) Requirement already satisfied: fastjsonschema>=2.15 in /usr/local/lib/python3.11/dist-packages (from nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (2.21.1) Requirement already satisfied: jsonschema>=2.6 in /usr/local/lib/python3.11/dist-packages (from nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (4.23.0) Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.11/dist-packages (from python-dateutil>=2.8.2->jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (1.17.0) Requirement already satisfied: argon2-cffi-bindings in /usr/local/lib/python3.11/dist-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (21.2.0) Requirement already satisfied: webencodings in /usr/local/lib/python3.11/dist-packages (from bleach!=5.0.0->bleach[css]!=5.0.0->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.5.1) Requirement already satisfied: tinycss2<1.5,>=1.1.0 in /usr/local/lib/python3.11/dist-packages (from bleach[css]!=5.0.0->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (1.4.0) Requirement already satisfied: attrs>=22.2.0 in /usr/local/lib/python3.11/dist-packages (from jsonschema>=2.6->nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (25.3.0) Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /usr/local/lib/python3.11/dist-packages (from jsonschema>=2.6->nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (2025.4.1) Requirement already satisfied: referencing>=0.28.4 in /usr/local/lib/python3.11/dist-packages (from jsonschema>=2.6->nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.36.2) Requirement already satisfied: rpds-py>=0.7.1 in /usr/local/lib/python3.11/dist-packages (from jsonschema>=2.6->nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.24.0) Requirement already satisfied: jupyter-server<3,>=1.8 in /usr/local/lib/python3.11/dist-packages (from notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (2.16.0) Requirement already satisfied: cffi>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (1.17.1) Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.11/dist-packages (from beautifulsoup4->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (2.7) Requirement already satisfied: typing-extensions>=4.0.0 in /usr/local/lib/python3.11/dist-packages (from beautifulsoup4->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (4.13.2) Requirement already satisfied: pycparser in /usr/local/lib/python3.11/dist-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (2.22) Requirement already satisfied: anyio>=3.1.0 in /usr/local/lib/python3.11/dist-packages (from jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (4.9.0) Requirement already satisfied: jupyter-events>=0.11.0 in /usr/local/lib/python3.11/dist-packages (from jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.12.0) Requirement already satisfied: jupyter-server-terminals>=0.4.4 in /usr/local/lib/python3.11/dist-packages (from jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.5.3) Requirement already satisfied: overrides>=5.0 in /usr/local/lib/python3.11/dist-packages (from jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (7.7.0) Requirement already satisfied: websocket-client>=1.7 in /usr/local/lib/python3.11/dist-packages (from jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (1.8.0) Requirement already satisfied: idna>=2.8 in /usr/local/lib/python3.11/dist-packages (from anyio>=3.1.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (3.10) Requirement already satisfied: sniffio>=1.1 in /usr/local/lib/python3.11/dist-packages (from anyio>=3.1.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (1.3.1) Requirement already satisfied: python-json-logger>=2.0.4 in /usr/local/lib/python3.11/dist-packages (from jupyter-events>=0.11.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (3.3.0) Requirement already satisfied: pyyaml>=5.3 in /usr/local/lib/python3.11/dist-packages (from jupyter-events>=0.11.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (6.0.2) Requirement already satisfied: rfc3339-validator in /usr/local/lib/python3.11/dist-packages (from jupyter-events>=0.11.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.1.4) Requirement already satisfied: rfc3986-validator>=0.1.1 in /usr/local/lib/python3.11/dist-packages (from jupyter-events>=0.11.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.1.1) Requirement already satisfied: fqdn in /usr/local/lib/python3.11/dist-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (1.5.1) Requirement already satisfied: isoduration in /usr/local/lib/python3.11/dist-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (20.11.0) Requirement already satisfied: jsonpointer>1.13 in /usr/local/lib/python3.11/dist-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (3.0.0) Requirement already satisfied: uri-template in /usr/local/lib/python3.11/dist-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (1.3.0) Requirement already satisfied: webcolors>=24.6.0 in /usr/local/lib/python3.11/dist-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (24.11.1) Requirement already satisfied: arrow>=0.15.0 in /usr/local/lib/python3.11/dist-packages (from isoduration->jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (1.3.0) Requirement already satisfied: types-python-dateutil>=2.8.10 in /usr/local/lib/python3.11/dist-packages (from arrow>=0.15.0->isoduration->jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (2.9.0.20250516) Downloading ipysheet-0.7.0-py2.py3-none-any.whl (3.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.8/3.8 MB 39.0 MB/s eta 0:00:00 Installing collected packages: ipysheet Successfully installed ipysheet-0.7.0
In [ ]:
from google.colab import output
output.enable_custom_widget_manager()
In [ ]:
import geoai
import leafmap
Let's download the sample data:
In [ ]:
train_raster_url = "https://huggingface.co/datasets/giswqs/geospatial/resolve/main/solar_panels_davis_ca.tif"
train_vector_url = "https://huggingface.co/datasets/giswqs/geospatial/resolve/main/solar_panels_davis_ca.geojson"
test_raster_url = "https://huggingface.co/datasets/giswqs/geospatial/resolve/main/solar_panels_test_davis_ca.tif"
In [ ]:
train_raster_path = geoai.download_file(train_raster_url)
train_vector_path = geoai.download_file(train_vector_url)
test_raster_path = geoai.download_file(test_raster_url)
solar_panels_davis_ca.tif: 100%|██████████| 31.2M/31.2M [00:00<00:00, 63.5MB/s] solar_panels_davis_ca.geojson: 100%|██████████| 30.0k/30.0k [00:00<00:00, 35.2MB/s] solar_panels_test_davis_ca.tif: 100%|██████████| 45.4M/45.4M [00:00<00:00, 63.1MB/s]
In [ ]:
geoai.view_vector_interactive(train_vector_path, tiles=train_raster_url)
Out[ ]:
Make this Notebook Trusted to load map: File -> Trust Notebook
After visualizing the data, let's divide the training orthomosaic into 512 x 512 patches:
In [ ]:
out_folder = "output"
tiles = geoai.export_geotiff_tiles(
in_raster=train_raster_path,
out_folder=out_folder,
in_class_data=train_vector_path,
tile_size=512,
stride=256,
buffer_radius=0,
)
Raster info for solar_panels_davis_ca.tif: CRS: EPSG:3857 Dimensions: 6711 x 3242 Resolution: (0.07464427187774597, 0.07464193859333511) Bands: 3 Bounds: BoundingBox(left=-13556075.706688922, bottom=4657729.5446374295, right=-13555574.76898035, top=4657971.533802349) Loaded 67 features from solar_panels_davis_ca.geojson Vector CRS: EPSG:4326 Reprojecting features from EPSG:4326 to EPSG:3857 WARNING: 'class' not found in vector data. Using default class ID 1.
Generated: 312, With features: 137: 100%|██████████| 312/312 [00:15<00:00, 20.39it/s]
------- Export Summary ------- Total tiles exported: 312 Tiles with features: 137 (43.9%) Average feature pixels per tile: 8422.7 Output saved to: output ------- Georeference Verification -------
Let's visualize the images and masks:
In [ ]:
import matplotlib.pyplot as plt
import rasterio
import os
import random
image_folder = os.path.join(out_folder, 'images')
mask_folder = os.path.join(out_folder, 'labels')
image_files = [os.path.join(image_folder, f) for f in os.listdir(image_folder) if f.endswith('.tif')]
mask_files = [os.path.join(mask_folder, f) for f in os.listdir(mask_folder) if f.endswith('.tif')]
image_files.sort()
mask_files.sort()
random_numbers = [random.randint(1, len(image_files)) for _ in range(5)] # Example: random numbers between 1 and 100
for i in random_numbers:
image_path = image_files[i]
mask_path = mask_files[i]
# Read the image
with rasterio.open(image_path) as src_img:
image_data = src_img.read()
# Read the mask
with rasterio.open(mask_path) as src_mask:
mask_data = src_mask.read()
image_data = image_data.transpose(1, 2, 0)
plt.figure(figsize=(10, 5))
# Display the image
plt.subplot(1, 2, 1)
plt.imshow(image_data)
plt.title(f'Image: {os.path.basename(image_path)}')
plt.axis('off')
# Display the mask
plt.subplot(1, 2, 2)
plt.imshow(mask_data.squeeze())
plt.title(f'Mask: {os.path.basename(mask_path)}')
plt.axis('off')
plt.tight_layout()
plt.show()
We can then train MaskRCNN with the dataset:
In [ ]:
geoai.train_MaskRCNN_model(
images_dir=f"{out_folder}/images",
labels_dir=f"{out_folder}/labels",
output_dir=f"{out_folder}/models",
num_channels=3,
pretrained=True,
batch_size=4,
num_epochs=100,
learning_rate=0.005,
val_split=0.2,
)
Using device: cuda Found 312 image files and 312 label files Training on 249 images, validating on 63 images
Downloading: "https://download.pytorch.org/models/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth" to /root/.cache/torch/hub/checkpoints/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth 100%|██████████| 170M/170M [00:01<00:00, 126MB/s]
Epoch: 0, Batch: 0/63, Loss: 2.5722, Time: 3.44s Epoch: 0, Batch: 10/63, Loss: 0.5780, Time: 7.99s Epoch: 0, Batch: 20/63, Loss: 0.3171, Time: 8.23s Epoch: 0, Batch: 30/63, Loss: 0.1902, Time: 8.25s Epoch: 0, Batch: 40/63, Loss: 0.4812, Time: 8.29s Epoch: 0, Batch: 50/63, Loss: 0.4490, Time: 8.47s Epoch: 0, Batch: 60/63, Loss: 1.4948, Time: 8.30s Epoch 1/100: Train Loss: 0.5449, Val Loss: inf, Val IoU: 0.3342 Saving best model with IoU: 0.3342 Epoch: 1, Batch: 0/63, Loss: 0.2604, Time: 1.45s Epoch: 1, Batch: 10/63, Loss: 0.2738, Time: 8.77s Epoch: 1, Batch: 20/63, Loss: 0.1722, Time: 8.80s Epoch: 1, Batch: 30/63, Loss: 0.1846, Time: 8.87s Epoch: 1, Batch: 40/63, Loss: 0.1474, Time: 8.61s Epoch: 1, Batch: 50/63, Loss: 0.1678, Time: 8.63s Epoch: 1, Batch: 60/63, Loss: 0.1423, Time: 8.86s Epoch 2/100: Train Loss: 0.2295, Val Loss: inf, Val IoU: 0.3993 Saving best model with IoU: 0.3993 Epoch: 2, Batch: 0/63, Loss: 0.1169, Time: 1.45s Epoch: 2, Batch: 10/63, Loss: 0.1745, Time: 8.76s Epoch: 2, Batch: 20/63, Loss: 0.4036, Time: 8.69s Epoch: 2, Batch: 30/63, Loss: 0.2527, Time: 8.89s Epoch: 2, Batch: 40/63, Loss: 0.2512, Time: 8.52s Epoch: 2, Batch: 50/63, Loss: 0.2089, Time: 8.76s Epoch: 2, Batch: 60/63, Loss: 0.1137, Time: 8.67s Epoch 3/100: Train Loss: 0.1884, Val Loss: inf, Val IoU: 0.4529 Saving best model with IoU: 0.4529 Epoch: 3, Batch: 0/63, Loss: 0.2725, Time: 1.42s Epoch: 3, Batch: 10/63, Loss: 0.1384, Time: 8.80s Epoch: 3, Batch: 20/63, Loss: 0.1731, Time: 8.49s Epoch: 3, Batch: 30/63, Loss: 0.1305, Time: 8.70s Epoch: 3, Batch: 40/63, Loss: 0.1998, Time: 8.87s Epoch: 3, Batch: 50/63, Loss: 0.1429, Time: 8.88s Epoch: 3, Batch: 60/63, Loss: 0.4380, Time: 8.67s Epoch 4/100: Train Loss: 0.1689, Val Loss: inf, Val IoU: 0.3969 Epoch: 4, Batch: 0/63, Loss: 0.1604, Time: 1.60s Epoch: 4, Batch: 10/63, Loss: 0.1871, Time: 8.76s Epoch: 4, Batch: 20/63, Loss: 0.0894, Time: 8.66s Epoch: 4, Batch: 30/63, Loss: 0.1878, Time: 8.84s Epoch: 4, Batch: 40/63, Loss: 0.0019, Time: 8.74s Epoch: 4, Batch: 50/63, Loss: 0.1766, Time: 8.77s Epoch: 4, Batch: 60/63, Loss: 0.3094, Time: 8.72s Epoch 5/100: Train Loss: 0.1267, Val Loss: inf, Val IoU: 0.7445 Saving best model with IoU: 0.7445 Epoch: 5, Batch: 0/63, Loss: 0.0900, Time: 1.52s Epoch: 5, Batch: 10/63, Loss: 0.1319, Time: 8.73s Epoch: 5, Batch: 20/63, Loss: 0.0006, Time: 8.85s Epoch: 5, Batch: 30/63, Loss: 0.1350, Time: 8.57s Epoch: 5, Batch: 40/63, Loss: 0.0005, Time: 8.78s Epoch: 5, Batch: 50/63, Loss: 0.0001, Time: 8.92s Epoch: 5, Batch: 60/63, Loss: 0.1291, Time: 8.79s Epoch 6/100: Train Loss: 0.1044, Val Loss: inf, Val IoU: 0.6746 Epoch: 6, Batch: 0/63, Loss: 0.0816, Time: 1.91s Epoch: 6, Batch: 10/63, Loss: 0.1209, Time: 8.70s Epoch: 6, Batch: 20/63, Loss: 0.1294, Time: 8.74s Epoch: 6, Batch: 30/63, Loss: 0.0852, Time: 8.84s Epoch: 6, Batch: 40/63, Loss: 0.0732, Time: 8.73s Epoch: 6, Batch: 50/63, Loss: 0.1342, Time: 8.75s Epoch: 6, Batch: 60/63, Loss: 0.0803, Time: 8.89s Epoch 7/100: Train Loss: 0.0973, Val Loss: inf, Val IoU: 0.7713 Saving best model with IoU: 0.7713 Epoch: 7, Batch: 0/63, Loss: 0.1198, Time: 1.60s Epoch: 7, Batch: 10/63, Loss: 0.1328, Time: 8.57s Epoch: 7, Batch: 20/63, Loss: 0.1378, Time: 9.10s Epoch: 7, Batch: 30/63, Loss: 0.2076, Time: 8.74s Epoch: 7, Batch: 40/63, Loss: 0.0835, Time: 8.69s Epoch: 7, Batch: 50/63, Loss: 0.0784, Time: 8.82s Epoch: 7, Batch: 60/63, Loss: 0.0590, Time: 8.65s Epoch 8/100: Train Loss: 0.1059, Val Loss: inf, Val IoU: 0.7561 Epoch: 8, Batch: 0/63, Loss: 0.0001, Time: 1.31s Epoch: 8, Batch: 10/63, Loss: 0.0749, Time: 8.74s Epoch: 8, Batch: 20/63, Loss: 0.0693, Time: 8.66s Epoch: 8, Batch: 30/63, Loss: 0.1116, Time: 8.63s Epoch: 8, Batch: 40/63, Loss: 0.0816, Time: 8.67s Epoch: 8, Batch: 50/63, Loss: 0.1443, Time: 9.09s Epoch: 8, Batch: 60/63, Loss: 0.1058, Time: 8.67s Epoch 9/100: Train Loss: 0.0909, Val Loss: inf, Val IoU: 0.7699 Epoch: 9, Batch: 0/63, Loss: 0.0533, Time: 1.39s Epoch: 9, Batch: 10/63, Loss: 0.0012, Time: 8.99s Epoch: 9, Batch: 20/63, Loss: 0.0644, Time: 8.57s Epoch: 9, Batch: 30/63, Loss: 0.0701, Time: 8.76s Epoch: 9, Batch: 40/63, Loss: 0.0697, Time: 8.89s Epoch: 9, Batch: 50/63, Loss: 0.0582, Time: 8.85s Epoch: 9, Batch: 60/63, Loss: 0.0745, Time: 8.61s Epoch 10/100: Train Loss: 0.0919, Val Loss: inf, Val IoU: 0.8366 Saving best model with IoU: 0.8366 Epoch: 10, Batch: 0/63, Loss: 0.1844, Time: 1.57s Epoch: 10, Batch: 10/63, Loss: 0.0761, Time: 8.72s Epoch: 10, Batch: 20/63, Loss: 0.0663, Time: 8.68s Epoch: 10, Batch: 30/63, Loss: 0.0833, Time: 8.80s Epoch: 10, Batch: 40/63, Loss: 0.1212, Time: 8.95s Epoch: 10, Batch: 50/63, Loss: 0.1049, Time: 8.95s Epoch: 10, Batch: 60/63, Loss: 0.0587, Time: 8.68s Epoch 11/100: Train Loss: 0.0830, Val Loss: inf, Val IoU: 0.8224 Epoch: 11, Batch: 0/63, Loss: 0.0997, Time: 1.42s Epoch: 11, Batch: 10/63, Loss: 0.0576, Time: 8.57s Epoch: 11, Batch: 20/63, Loss: 0.0966, Time: 8.82s Epoch: 11, Batch: 30/63, Loss: 0.0507, Time: 8.84s Epoch: 11, Batch: 40/63, Loss: 0.0702, Time: 8.73s Epoch: 11, Batch: 50/63, Loss: 0.0500, Time: 8.84s Epoch: 11, Batch: 60/63, Loss: 0.0770, Time: 8.85s Epoch 12/100: Train Loss: 0.0836, Val Loss: inf, Val IoU: 0.8060 Epoch: 12, Batch: 0/63, Loss: 0.0812, Time: 1.68s Epoch: 12, Batch: 10/63, Loss: 0.0000, Time: 8.82s Epoch: 12, Batch: 20/63, Loss: 0.0001, Time: 8.66s Epoch: 12, Batch: 30/63, Loss: 0.1027, Time: 8.96s Epoch: 12, Batch: 40/63, Loss: 0.0699, Time: 8.69s Epoch: 12, Batch: 50/63, Loss: 0.1104, Time: 8.92s Epoch: 12, Batch: 60/63, Loss: 0.0834, Time: 8.66s Epoch 13/100: Train Loss: 0.0758, Val Loss: inf, Val IoU: 0.8054 Epoch: 13, Batch: 0/63, Loss: 0.0978, Time: 1.97s Epoch: 13, Batch: 10/63, Loss: 0.0593, Time: 8.86s Epoch: 13, Batch: 20/63, Loss: 0.0729, Time: 8.95s Epoch: 13, Batch: 30/63, Loss: 0.0932, Time: 8.90s Epoch: 13, Batch: 40/63, Loss: 0.0714, Time: 8.50s Epoch: 13, Batch: 50/63, Loss: 0.0932, Time: 8.75s Epoch: 13, Batch: 60/63, Loss: 0.0000, Time: 8.74s Epoch 14/100: Train Loss: 0.0756, Val Loss: inf, Val IoU: 0.8853 Saving best model with IoU: 0.8853 Epoch: 14, Batch: 0/63, Loss: 0.0003, Time: 1.40s Epoch: 14, Batch: 10/63, Loss: 0.1257, Time: 8.75s Epoch: 14, Batch: 20/63, Loss: 0.1124, Time: 8.67s Epoch: 14, Batch: 30/63, Loss: 0.0799, Time: 8.55s Epoch: 14, Batch: 40/63, Loss: 0.0724, Time: 8.98s Epoch: 14, Batch: 50/63, Loss: 0.0661, Time: 8.88s Epoch: 14, Batch: 60/63, Loss: 0.0761, Time: 8.83s Epoch 15/100: Train Loss: 0.0802, Val Loss: inf, Val IoU: 0.8435 Epoch: 15, Batch: 0/63, Loss: 0.0002, Time: 1.42s Epoch: 15, Batch: 10/63, Loss: 0.0003, Time: 8.81s Epoch: 15, Batch: 20/63, Loss: 0.0534, Time: 8.69s Epoch: 15, Batch: 30/63, Loss: 0.0882, Time: 8.86s Epoch: 15, Batch: 40/63, Loss: 0.0681, Time: 8.87s Epoch: 15, Batch: 50/63, Loss: 0.0742, Time: 8.88s Epoch: 15, Batch: 60/63, Loss: 0.1100, Time: 8.67s Epoch 16/100: Train Loss: 0.0713, Val Loss: inf, Val IoU: 0.8317 Epoch: 16, Batch: 0/63, Loss: 0.0867, Time: 1.53s Epoch: 16, Batch: 10/63, Loss: 0.0664, Time: 8.80s Epoch: 16, Batch: 20/63, Loss: 0.0594, Time: 8.79s Epoch: 16, Batch: 30/63, Loss: 0.1164, Time: 8.78s Epoch: 16, Batch: 40/63, Loss: 0.0713, Time: 8.80s Epoch: 16, Batch: 50/63, Loss: 0.0816, Time: 8.79s Epoch: 16, Batch: 60/63, Loss: 0.0552, Time: 8.71s Epoch 17/100: Train Loss: 0.0726, Val Loss: inf, Val IoU: 0.8524 Epoch: 17, Batch: 0/63, Loss: 0.0511, Time: 1.47s Epoch: 17, Batch: 10/63, Loss: 0.0001, Time: 8.77s Epoch: 17, Batch: 20/63, Loss: 0.0613, Time: 8.86s Epoch: 17, Batch: 30/63, Loss: 0.0645, Time: 8.52s Epoch: 17, Batch: 40/63, Loss: 0.0878, Time: 8.96s Epoch: 17, Batch: 50/63, Loss: 0.0829, Time: 8.75s Epoch: 17, Batch: 60/63, Loss: 0.0741, Time: 8.81s Epoch 18/100: Train Loss: 0.0685, Val Loss: inf, Val IoU: 0.8536 Epoch: 18, Batch: 0/63, Loss: 0.0586, Time: 1.53s Epoch: 18, Batch: 10/63, Loss: 0.0502, Time: 8.78s Epoch: 18, Batch: 20/63, Loss: 0.0518, Time: 8.59s Epoch: 18, Batch: 30/63, Loss: 0.0974, Time: 8.92s Epoch: 18, Batch: 40/63, Loss: 0.0609, Time: 8.87s Epoch: 18, Batch: 50/63, Loss: 0.0000, Time: 8.91s Epoch: 18, Batch: 60/63, Loss: 0.0911, Time: 8.68s Epoch 19/100: Train Loss: 0.0672, Val Loss: inf, Val IoU: 0.8788 Epoch: 19, Batch: 0/63, Loss: 0.0920, Time: 1.50s Epoch: 19, Batch: 10/63, Loss: 0.0601, Time: 8.69s Epoch: 19, Batch: 20/63, Loss: 0.0586, Time: 8.71s Epoch: 19, Batch: 30/63, Loss: 0.0759, Time: 8.65s Epoch: 19, Batch: 40/63, Loss: 0.0741, Time: 8.76s Epoch: 19, Batch: 50/63, Loss: 0.0846, Time: 9.01s Epoch: 19, Batch: 60/63, Loss: 0.0003, Time: 8.84s Epoch 20/100: Train Loss: 0.0655, Val Loss: inf, Val IoU: 0.8856 Saving best model with IoU: 0.8856 Epoch: 20, Batch: 0/63, Loss: 0.0988, Time: 1.52s Epoch: 20, Batch: 10/63, Loss: 0.0688, Time: 8.75s Epoch: 20, Batch: 20/63, Loss: 0.0591, Time: 8.82s Epoch: 20, Batch: 30/63, Loss: 0.0906, Time: 8.83s Epoch: 20, Batch: 40/63, Loss: 0.0756, Time: 8.62s Epoch: 20, Batch: 50/63, Loss: 0.0557, Time: 8.97s Epoch: 20, Batch: 60/63, Loss: 0.0585, Time: 8.68s Epoch 21/100: Train Loss: 0.0658, Val Loss: inf, Val IoU: 0.8531 Epoch: 21, Batch: 0/63, Loss: 0.1002, Time: 1.68s Epoch: 21, Batch: 10/63, Loss: 0.1059, Time: 8.88s Epoch: 21, Batch: 20/63, Loss: 0.0724, Time: 8.85s Epoch: 21, Batch: 30/63, Loss: 0.0358, Time: 8.63s Epoch: 21, Batch: 40/63, Loss: 0.0343, Time: 8.81s Epoch: 21, Batch: 50/63, Loss: 0.0537, Time: 8.55s Epoch: 21, Batch: 60/63, Loss: 0.0751, Time: 8.70s Epoch 22/100: Train Loss: 0.0660, Val Loss: inf, Val IoU: 0.8804 Epoch: 22, Batch: 0/63, Loss: 0.0933, Time: 1.41s Epoch: 22, Batch: 10/63, Loss: 0.0672, Time: 8.94s Epoch: 22, Batch: 20/63, Loss: 0.0528, Time: 8.62s Epoch: 22, Batch: 30/63, Loss: 0.0901, Time: 8.70s Epoch: 22, Batch: 40/63, Loss: 0.0778, Time: 8.78s Epoch: 22, Batch: 50/63, Loss: 0.0599, Time: 8.68s Epoch: 22, Batch: 60/63, Loss: 0.0551, Time: 8.92s Epoch 23/100: Train Loss: 0.0638, Val Loss: inf, Val IoU: 0.8550 Epoch: 23, Batch: 0/63, Loss: 0.0425, Time: 1.48s Epoch: 23, Batch: 10/63, Loss: 0.0740, Time: 8.66s Epoch: 23, Batch: 20/63, Loss: 0.0648, Time: 8.87s Epoch: 23, Batch: 30/63, Loss: 0.0996, Time: 8.83s Epoch: 23, Batch: 40/63, Loss: 0.0758, Time: 8.69s Epoch: 23, Batch: 50/63, Loss: 0.0811, Time: 8.90s Epoch: 23, Batch: 60/63, Loss: 0.0536, Time: 8.69s Epoch 24/100: Train Loss: 0.0653, Val Loss: inf, Val IoU: 0.8534 Epoch: 24, Batch: 0/63, Loss: 0.0571, Time: 1.40s Epoch: 24, Batch: 10/63, Loss: 0.0856, Time: 8.85s Epoch: 24, Batch: 20/63, Loss: 0.0493, Time: 8.66s Epoch: 24, Batch: 30/63, Loss: 0.0887, Time: 8.67s Epoch: 24, Batch: 40/63, Loss: 0.0593, Time: 9.00s Epoch: 24, Batch: 50/63, Loss: 0.0608, Time: 8.84s Epoch: 24, Batch: 60/63, Loss: 0.0466, Time: 8.79s Epoch 25/100: Train Loss: 0.0624, Val Loss: inf, Val IoU: 0.8547 Epoch: 25, Batch: 0/63, Loss: 0.0436, Time: 1.46s Epoch: 25, Batch: 10/63, Loss: 0.0002, Time: 8.69s Epoch: 25, Batch: 20/63, Loss: 0.0849, Time: 8.85s Epoch: 25, Batch: 30/63, Loss: 0.0763, Time: 8.87s Epoch: 25, Batch: 40/63, Loss: 0.0669, Time: 8.62s Epoch: 25, Batch: 50/63, Loss: 0.1031, Time: 8.85s Epoch: 25, Batch: 60/63, Loss: 0.0666, Time: 8.81s Epoch 26/100: Train Loss: 0.0612, Val Loss: inf, Val IoU: 0.8548 Epoch: 26, Batch: 0/63, Loss: 0.0540, Time: 1.85s Epoch: 26, Batch: 10/63, Loss: 0.0528, Time: 8.65s Epoch: 26, Batch: 20/63, Loss: 0.0627, Time: 8.84s Epoch: 26, Batch: 30/63, Loss: 0.0749, Time: 8.72s Epoch: 26, Batch: 40/63, Loss: 0.1049, Time: 8.92s Epoch: 26, Batch: 50/63, Loss: 0.0940, Time: 8.86s Epoch: 26, Batch: 60/63, Loss: 0.0423, Time: 8.78s Epoch 27/100: Train Loss: 0.0617, Val Loss: inf, Val IoU: 0.8544 Epoch: 27, Batch: 0/63, Loss: 0.0701, Time: 1.35s Epoch: 27, Batch: 10/63, Loss: 0.0762, Time: 8.75s Epoch: 27, Batch: 20/63, Loss: 0.0619, Time: 8.64s Epoch: 27, Batch: 30/63, Loss: 0.0960, Time: 8.80s Epoch: 27, Batch: 40/63, Loss: 0.0000, Time: 8.91s Epoch: 27, Batch: 50/63, Loss: 0.0532, Time: 8.75s Epoch: 27, Batch: 60/63, Loss: 0.0816, Time: 9.03s Epoch 28/100: Train Loss: 0.0604, Val Loss: inf, Val IoU: 0.8810 Epoch: 28, Batch: 0/63, Loss: 0.0000, Time: 1.34s Epoch: 28, Batch: 10/63, Loss: 0.0685, Time: 9.10s Epoch: 28, Batch: 20/63, Loss: 0.0741, Time: 8.89s Epoch: 28, Batch: 30/63, Loss: 0.0001, Time: 8.54s Epoch: 28, Batch: 40/63, Loss: 0.0458, Time: 8.59s Epoch: 28, Batch: 50/63, Loss: 0.0649, Time: 8.65s Epoch: 28, Batch: 60/63, Loss: 0.0757, Time: 8.75s Epoch 29/100: Train Loss: 0.0595, Val Loss: inf, Val IoU: 0.8760 Epoch: 29, Batch: 0/63, Loss: 0.0768, Time: 1.53s Epoch: 29, Batch: 10/63, Loss: 0.0634, Time: 8.67s Epoch: 29, Batch: 20/63, Loss: 0.0729, Time: 8.69s Epoch: 29, Batch: 30/63, Loss: 0.0000, Time: 8.63s Epoch: 29, Batch: 40/63, Loss: 0.0722, Time: 8.80s Epoch: 29, Batch: 50/63, Loss: 0.0674, Time: 8.99s Epoch: 29, Batch: 60/63, Loss: 0.0814, Time: 8.91s Epoch 30/100: Train Loss: 0.0577, Val Loss: inf, Val IoU: 0.8779 Epoch: 30, Batch: 0/63, Loss: 0.0516, Time: 1.60s Epoch: 30, Batch: 10/63, Loss: 0.0607, Time: 8.62s Epoch: 30, Batch: 20/63, Loss: 0.0916, Time: 8.94s Epoch: 30, Batch: 30/63, Loss: 0.0734, Time: 8.74s Epoch: 30, Batch: 40/63, Loss: 0.0383, Time: 8.90s Epoch: 30, Batch: 50/63, Loss: 0.0585, Time: 8.85s Epoch: 30, Batch: 60/63, Loss: 0.0504, Time: 8.89s Epoch 31/100: Train Loss: 0.0586, Val Loss: inf, Val IoU: 0.8523 Epoch: 31, Batch: 0/63, Loss: 0.0748, Time: 1.97s Epoch: 31, Batch: 10/63, Loss: 0.0744, Time: 8.73s Epoch: 31, Batch: 20/63, Loss: 0.0682, Time: 8.85s Epoch: 31, Batch: 30/63, Loss: 0.0594, Time: 8.57s Epoch: 31, Batch: 40/63, Loss: 0.0668, Time: 8.85s Epoch: 31, Batch: 50/63, Loss: 0.0587, Time: 8.76s Epoch: 31, Batch: 60/63, Loss: 0.0484, Time: 8.75s Epoch 32/100: Train Loss: 0.0588, Val Loss: inf, Val IoU: 0.8806 Epoch: 32, Batch: 0/63, Loss: 0.0534, Time: 1.50s Epoch: 32, Batch: 10/63, Loss: 0.0675, Time: 8.79s Epoch: 32, Batch: 20/63, Loss: 0.0834, Time: 8.95s Epoch: 32, Batch: 30/63, Loss: 0.0559, Time: 9.03s Epoch: 32, Batch: 40/63, Loss: 0.0514, Time: 8.73s Epoch: 32, Batch: 50/63, Loss: 0.0469, Time: 8.39s Epoch: 32, Batch: 60/63, Loss: 0.0798, Time: 8.77s Epoch 33/100: Train Loss: 0.0552, Val Loss: inf, Val IoU: 0.8794 Epoch: 33, Batch: 0/63, Loss: 0.0917, Time: 1.62s Epoch: 33, Batch: 10/63, Loss: 0.0661, Time: 8.53s Epoch: 33, Batch: 20/63, Loss: 0.0591, Time: 8.73s Epoch: 33, Batch: 30/63, Loss: 0.0532, Time: 8.77s Epoch: 33, Batch: 40/63, Loss: 0.0565, Time: 8.86s Epoch: 33, Batch: 50/63, Loss: 0.0739, Time: 8.93s Epoch: 33, Batch: 60/63, Loss: 0.0557, Time: 8.80s Epoch 34/100: Train Loss: 0.0590, Val Loss: inf, Val IoU: 0.8820 Epoch: 34, Batch: 0/63, Loss: 0.0818, Time: 1.37s Epoch: 34, Batch: 10/63, Loss: 0.0621, Time: 8.93s Epoch: 34, Batch: 20/63, Loss: 0.0516, Time: 8.69s Epoch: 34, Batch: 30/63, Loss: 0.0673, Time: 8.68s Epoch: 34, Batch: 40/63, Loss: 0.0964, Time: 8.74s Epoch: 34, Batch: 50/63, Loss: 0.0711, Time: 8.91s Epoch: 34, Batch: 60/63, Loss: 0.0735, Time: 8.80s Epoch 35/100: Train Loss: 0.0591, Val Loss: inf, Val IoU: 0.8853 Epoch: 35, Batch: 0/63, Loss: 0.0849, Time: 1.64s Epoch: 35, Batch: 10/63, Loss: 0.0778, Time: 8.58s Epoch: 35, Batch: 20/63, Loss: 0.0660, Time: 8.73s Epoch: 35, Batch: 30/63, Loss: 0.0637, Time: 8.63s Epoch: 35, Batch: 40/63, Loss: 0.0753, Time: 9.05s Epoch: 35, Batch: 50/63, Loss: 0.0728, Time: 8.79s Epoch: 35, Batch: 60/63, Loss: 0.0580, Time: 8.66s Epoch 36/100: Train Loss: 0.0576, Val Loss: inf, Val IoU: 0.8804 Epoch: 36, Batch: 0/63, Loss: 0.0437, Time: 1.36s Epoch: 36, Batch: 10/63, Loss: 0.0569, Time: 8.94s Epoch: 36, Batch: 20/63, Loss: 0.0596, Time: 8.83s Epoch: 36, Batch: 30/63, Loss: 0.0336, Time: 8.61s Epoch: 36, Batch: 40/63, Loss: 0.0914, Time: 8.77s Epoch: 36, Batch: 50/63, Loss: 0.0606, Time: 8.98s Epoch: 36, Batch: 60/63, Loss: 0.0000, Time: 8.67s Epoch 37/100: Train Loss: 0.0555, Val Loss: inf, Val IoU: 0.8866 Saving best model with IoU: 0.8866 Epoch: 37, Batch: 0/63, Loss: 0.0434, Time: 1.88s Epoch: 37, Batch: 10/63, Loss: 0.0857, Time: 8.78s Epoch: 37, Batch: 20/63, Loss: 0.0367, Time: 8.65s Epoch: 37, Batch: 30/63, Loss: 0.0479, Time: 8.83s Epoch: 37, Batch: 40/63, Loss: 0.0511, Time: 8.87s Epoch: 37, Batch: 50/63, Loss: 0.0751, Time: 8.94s Epoch: 37, Batch: 60/63, Loss: 0.0708, Time: 8.62s Epoch 38/100: Train Loss: 0.0573, Val Loss: inf, Val IoU: 0.8827 Epoch: 38, Batch: 0/63, Loss: 0.0705, Time: 1.84s Epoch: 38, Batch: 10/63, Loss: 0.0538, Time: 8.67s Epoch: 38, Batch: 20/63, Loss: 0.0561, Time: 8.77s Epoch: 38, Batch: 30/63, Loss: 0.0001, Time: 8.53s Epoch: 38, Batch: 40/63, Loss: 0.0668, Time: 8.91s Epoch: 38, Batch: 50/63, Loss: 0.0701, Time: 9.09s Epoch: 38, Batch: 60/63, Loss: 0.0000, Time: 8.67s Epoch 39/100: Train Loss: 0.0561, Val Loss: inf, Val IoU: 0.8780 Epoch: 39, Batch: 0/63, Loss: 0.0450, Time: 1.36s Epoch: 39, Batch: 10/63, Loss: 0.0529, Time: 9.11s Epoch: 39, Batch: 20/63, Loss: 0.0740, Time: 8.83s Epoch: 39, Batch: 30/63, Loss: 0.0582, Time: 8.60s Epoch: 39, Batch: 40/63, Loss: 0.0716, Time: 8.79s Epoch: 39, Batch: 50/63, Loss: 0.0643, Time: 8.75s Epoch: 39, Batch: 60/63, Loss: 0.0445, Time: 8.69s Epoch 40/100: Train Loss: 0.0556, Val Loss: inf, Val IoU: 0.8851 Epoch: 40, Batch: 0/63, Loss: 0.0439, Time: 1.64s Epoch: 40, Batch: 10/63, Loss: 0.0833, Time: 8.77s Epoch: 40, Batch: 20/63, Loss: 0.0000, Time: 8.81s Epoch: 40, Batch: 30/63, Loss: 0.0659, Time: 8.93s Epoch: 40, Batch: 40/63, Loss: 0.0471, Time: 8.81s Epoch: 40, Batch: 50/63, Loss: 0.0575, Time: 8.85s Epoch: 40, Batch: 60/63, Loss: 0.0001, Time: 8.56s Epoch 41/100: Train Loss: 0.0545, Val Loss: inf, Val IoU: 0.8855 Epoch: 41, Batch: 0/63, Loss: 0.0738, Time: 1.46s Epoch: 41, Batch: 10/63, Loss: 0.0718, Time: 8.85s Epoch: 41, Batch: 20/63, Loss: 0.0683, Time: 8.89s Epoch: 41, Batch: 30/63, Loss: 0.0360, Time: 8.72s Epoch: 41, Batch: 40/63, Loss: 0.0462, Time: 8.77s Epoch: 41, Batch: 50/63, Loss: 0.0779, Time: 8.83s Epoch: 41, Batch: 60/63, Loss: 0.0860, Time: 8.74s Epoch 42/100: Train Loss: 0.0566, Val Loss: inf, Val IoU: 0.8841 Epoch: 42, Batch: 0/63, Loss: 0.0000, Time: 1.46s Epoch: 42, Batch: 10/63, Loss: 0.0000, Time: 8.64s Epoch: 42, Batch: 20/63, Loss: 0.0906, Time: 8.82s Epoch: 42, Batch: 30/63, Loss: 0.0419, Time: 8.82s Epoch: 42, Batch: 40/63, Loss: 0.0768, Time: 8.88s Epoch: 42, Batch: 50/63, Loss: 0.0598, Time: 8.92s Epoch: 42, Batch: 60/63, Loss: 0.0644, Time: 8.64s Epoch 43/100: Train Loss: 0.0571, Val Loss: inf, Val IoU: 0.8867 Saving best model with IoU: 0.8867 Epoch: 43, Batch: 0/63, Loss: 0.0515, Time: 1.49s Epoch: 43, Batch: 10/63, Loss: 0.0001, Time: 8.69s Epoch: 43, Batch: 20/63, Loss: 0.0959, Time: 8.91s Epoch: 43, Batch: 30/63, Loss: 0.0670, Time: 8.89s Epoch: 43, Batch: 40/63, Loss: 0.0797, Time: 8.73s Epoch: 43, Batch: 50/63, Loss: 0.0425, Time: 8.69s Epoch: 43, Batch: 60/63, Loss: 0.0000, Time: 8.78s Epoch 44/100: Train Loss: 0.0554, Val Loss: inf, Val IoU: 0.8834 Epoch: 44, Batch: 0/63, Loss: 0.0659, Time: 2.02s Epoch: 44, Batch: 10/63, Loss: 0.0570, Time: 8.53s Epoch: 44, Batch: 20/63, Loss: 0.0586, Time: 9.06s Epoch: 44, Batch: 30/63, Loss: 0.0476, Time: 8.73s Epoch: 44, Batch: 40/63, Loss: 0.0520, Time: 8.79s Epoch: 44, Batch: 50/63, Loss: 0.0659, Time: 8.87s Epoch: 44, Batch: 60/63, Loss: 0.0000, Time: 8.68s Epoch 45/100: Train Loss: 0.0548, Val Loss: inf, Val IoU: 0.8839 Epoch: 45, Batch: 0/63, Loss: 0.0534, Time: 1.58s Epoch: 45, Batch: 10/63, Loss: 0.0552, Time: 8.72s Epoch: 45, Batch: 20/63, Loss: 0.0517, Time: 8.86s Epoch: 45, Batch: 30/63, Loss: 0.0847, Time: 8.75s Epoch: 45, Batch: 40/63, Loss: 0.0632, Time: 8.84s Epoch: 45, Batch: 50/63, Loss: 0.0728, Time: 8.84s Epoch: 45, Batch: 60/63, Loss: 0.0739, Time: 8.67s Epoch 46/100: Train Loss: 0.0570, Val Loss: inf, Val IoU: 0.8899 Saving best model with IoU: 0.8899 Epoch: 46, Batch: 0/63, Loss: 0.0618, Time: 1.58s Epoch: 46, Batch: 10/63, Loss: 0.0362, Time: 8.77s Epoch: 46, Batch: 20/63, Loss: 0.0623, Time: 8.65s Epoch: 46, Batch: 30/63, Loss: 0.0008, Time: 9.04s Epoch: 46, Batch: 40/63, Loss: 0.0476, Time: 8.74s Epoch: 46, Batch: 50/63, Loss: 0.0573, Time: 8.70s Epoch: 46, Batch: 60/63, Loss: 0.0624, Time: 8.78s Epoch 47/100: Train Loss: 0.0553, Val Loss: inf, Val IoU: 0.8792 Epoch: 47, Batch: 0/63, Loss: 0.0791, Time: 1.52s Epoch: 47, Batch: 10/63, Loss: 0.0527, Time: 8.82s Epoch: 47, Batch: 20/63, Loss: 0.0576, Time: 8.87s Epoch: 47, Batch: 30/63, Loss: 0.0000, Time: 8.54s Epoch: 47, Batch: 40/63, Loss: 0.0739, Time: 8.83s Epoch: 47, Batch: 50/63, Loss: 0.0638, Time: 8.77s Epoch: 47, Batch: 60/63, Loss: 0.0622, Time: 8.92s Epoch 48/100: Train Loss: 0.0523, Val Loss: inf, Val IoU: 0.8850 Epoch: 48, Batch: 0/63, Loss: 0.0598, Time: 1.44s Epoch: 48, Batch: 10/63, Loss: 0.0463, Time: 8.73s Epoch: 48, Batch: 20/63, Loss: 0.0651, Time: 8.70s Epoch: 48, Batch: 30/63, Loss: 0.0783, Time: 8.90s Epoch: 48, Batch: 40/63, Loss: 0.0422, Time: 8.76s Epoch: 48, Batch: 50/63, Loss: 0.0650, Time: 8.81s Epoch: 48, Batch: 60/63, Loss: 0.0474, Time: 8.74s Epoch 49/100: Train Loss: 0.0566, Val Loss: inf, Val IoU: 0.8796 Epoch: 49, Batch: 0/63, Loss: 0.0000, Time: 1.33s Epoch: 49, Batch: 10/63, Loss: 0.0694, Time: 8.78s Epoch: 49, Batch: 20/63, Loss: 0.0435, Time: 8.74s Epoch: 49, Batch: 30/63, Loss: 0.0000, Time: 8.93s Epoch: 49, Batch: 40/63, Loss: 0.0615, Time: 8.87s Epoch: 49, Batch: 50/63, Loss: 0.0674, Time: 8.77s Epoch: 49, Batch: 60/63, Loss: 0.0685, Time: 8.67s Epoch 50/100: Train Loss: 0.0504, Val Loss: inf, Val IoU: 0.8816 Epoch: 50, Batch: 0/63, Loss: 0.0742, Time: 2.04s Epoch: 50, Batch: 10/63, Loss: 0.0646, Time: 8.88s Epoch: 50, Batch: 20/63, Loss: 0.0427, Time: 8.78s Epoch: 50, Batch: 30/63, Loss: 0.0631, Time: 8.56s Epoch: 50, Batch: 40/63, Loss: 0.0000, Time: 9.00s Epoch: 50, Batch: 50/63, Loss: 0.0000, Time: 8.70s Epoch: 50, Batch: 60/63, Loss: 0.0529, Time: 8.89s Epoch 51/100: Train Loss: 0.0530, Val Loss: inf, Val IoU: 0.8865 Epoch: 51, Batch: 0/63, Loss: 0.0530, Time: 1.68s Epoch: 51, Batch: 10/63, Loss: 0.0657, Time: 8.56s Epoch: 51, Batch: 20/63, Loss: 0.0000, Time: 8.66s Epoch: 51, Batch: 30/63, Loss: 0.0667, Time: 8.75s Epoch: 51, Batch: 40/63, Loss: 0.0696, Time: 8.85s Epoch: 51, Batch: 50/63, Loss: 0.0639, Time: 8.90s Epoch: 51, Batch: 60/63, Loss: 0.0696, Time: 8.92s Epoch 52/100: Train Loss: 0.0554, Val Loss: inf, Val IoU: 0.8863 Epoch: 52, Batch: 0/63, Loss: 0.0601, Time: 1.46s Epoch: 52, Batch: 10/63, Loss: 0.0728, Time: 8.78s Epoch: 52, Batch: 20/63, Loss: 0.0698, Time: 8.73s Epoch: 52, Batch: 30/63, Loss: 0.0696, Time: 8.85s Epoch: 52, Batch: 40/63, Loss: 0.0001, Time: 8.77s Epoch: 52, Batch: 50/63, Loss: 0.0563, Time: 8.92s Epoch: 52, Batch: 60/63, Loss: 0.0661, Time: 8.70s Epoch 53/100: Train Loss: 0.0532, Val Loss: inf, Val IoU: 0.8863 Epoch: 53, Batch: 0/63, Loss: 0.0550, Time: 1.55s Epoch: 53, Batch: 10/63, Loss: 0.0485, Time: 8.94s Epoch: 53, Batch: 20/63, Loss: 0.0697, Time: 8.71s Epoch: 53, Batch: 30/63, Loss: 0.0857, Time: 9.12s Epoch: 53, Batch: 40/63, Loss: 0.0665, Time: 8.93s Epoch: 53, Batch: 50/63, Loss: 0.0555, Time: 8.47s Epoch: 53, Batch: 60/63, Loss: 0.0595, Time: 8.58s Epoch 54/100: Train Loss: 0.0543, Val Loss: inf, Val IoU: 0.8799 Epoch: 54, Batch: 0/63, Loss: 0.0532, Time: 1.53s Epoch: 54, Batch: 10/63, Loss: 0.0634, Time: 8.69s Epoch: 54, Batch: 20/63, Loss: 0.0785, Time: 8.96s Epoch: 54, Batch: 30/63, Loss: 0.0486, Time: 8.88s Epoch: 54, Batch: 40/63, Loss: 0.0576, Time: 8.56s Epoch: 54, Batch: 50/63, Loss: 0.0350, Time: 8.80s Epoch: 54, Batch: 60/63, Loss: 0.0473, Time: 8.77s Epoch 55/100: Train Loss: 0.0535, Val Loss: inf, Val IoU: 0.8813 Epoch: 55, Batch: 0/63, Loss: 0.0631, Time: 1.43s Epoch: 55, Batch: 10/63, Loss: 0.0702, Time: 8.79s Epoch: 55, Batch: 20/63, Loss: 0.0789, Time: 9.13s Epoch: 55, Batch: 30/63, Loss: 0.0638, Time: 8.62s Epoch: 55, Batch: 40/63, Loss: 0.0573, Time: 8.65s Epoch: 55, Batch: 50/63, Loss: 0.0699, Time: 8.72s Epoch: 55, Batch: 60/63, Loss: 0.0611, Time: 8.70s Epoch 56/100: Train Loss: 0.0552, Val Loss: inf, Val IoU: 0.8825 Epoch: 56, Batch: 0/63, Loss: 0.0442, Time: 1.48s Epoch: 56, Batch: 10/63, Loss: 0.0000, Time: 8.70s Epoch: 56, Batch: 20/63, Loss: 0.0000, Time: 8.93s Epoch: 56, Batch: 30/63, Loss: 0.0776, Time: 8.66s Epoch: 56, Batch: 40/63, Loss: 0.0640, Time: 8.79s Epoch: 56, Batch: 50/63, Loss: 0.0511, Time: 9.13s Epoch: 56, Batch: 60/63, Loss: 0.0406, Time: 8.57s Epoch 57/100: Train Loss: 0.0548, Val Loss: inf, Val IoU: 0.8917 Saving best model with IoU: 0.8917 Epoch: 57, Batch: 0/63, Loss: 0.0695, Time: 1.91s Epoch: 57, Batch: 10/63, Loss: 0.0730, Time: 8.78s Epoch: 57, Batch: 20/63, Loss: 0.0453, Time: 8.95s Epoch: 57, Batch: 30/63, Loss: 0.0000, Time: 8.69s Epoch: 57, Batch: 40/63, Loss: 0.0722, Time: 8.68s Epoch: 57, Batch: 50/63, Loss: 0.0547, Time: 8.98s Epoch: 57, Batch: 60/63, Loss: 0.0444, Time: 8.58s Epoch 58/100: Train Loss: 0.0526, Val Loss: inf, Val IoU: 0.8871 Epoch: 58, Batch: 0/63, Loss: 0.0000, Time: 1.56s Epoch: 58, Batch: 10/63, Loss: 0.0551, Time: 8.77s Epoch: 58, Batch: 20/63, Loss: 0.0485, Time: 8.69s Epoch: 58, Batch: 30/63, Loss: 0.0000, Time: 8.87s Epoch: 58, Batch: 40/63, Loss: 0.0654, Time: 8.56s Epoch: 58, Batch: 50/63, Loss: 0.0000, Time: 8.77s Epoch: 58, Batch: 60/63, Loss: 0.0575, Time: 9.02s Epoch 59/100: Train Loss: 0.0532, Val Loss: inf, Val IoU: 0.8882 Epoch: 59, Batch: 0/63, Loss: 0.0000, Time: 1.43s Epoch: 59, Batch: 10/63, Loss: 0.0602, Time: 8.81s Epoch: 59, Batch: 20/63, Loss: 0.0693, Time: 8.89s Epoch: 59, Batch: 30/63, Loss: 0.0535, Time: 8.91s Epoch: 59, Batch: 40/63, Loss: 0.0465, Time: 8.69s Epoch: 59, Batch: 50/63, Loss: 0.0603, Time: 8.86s Epoch: 59, Batch: 60/63, Loss: 0.0856, Time: 8.63s Epoch 60/100: Train Loss: 0.0550, Val Loss: inf, Val IoU: 0.8843 Epoch: 60, Batch: 0/63, Loss: 0.0525, Time: 1.65s Epoch: 60, Batch: 10/63, Loss: 0.0596, Time: 8.49s Epoch: 60, Batch: 20/63, Loss: 0.0588, Time: 8.68s Epoch: 60, Batch: 30/63, Loss: 0.0491, Time: 8.95s Epoch: 60, Batch: 40/63, Loss: 0.0635, Time: 9.02s Epoch: 60, Batch: 50/63, Loss: 0.0769, Time: 8.72s Epoch: 60, Batch: 60/63, Loss: 0.0489, Time: 8.69s Epoch 61/100: Train Loss: 0.0552, Val Loss: inf, Val IoU: 0.8891 Epoch: 61, Batch: 0/63, Loss: 0.0601, Time: 1.48s Epoch: 61, Batch: 10/63, Loss: 0.0522, Time: 8.74s Epoch: 61, Batch: 20/63, Loss: 0.0558, Time: 8.79s Epoch: 61, Batch: 30/63, Loss: 0.0635, Time: 9.06s Epoch: 61, Batch: 40/63, Loss: 0.0482, Time: 8.72s Epoch: 61, Batch: 50/63, Loss: 0.0657, Time: 8.73s Epoch: 61, Batch: 60/63, Loss: 0.0514, Time: 8.67s Epoch 62/100: Train Loss: 0.0523, Val Loss: inf, Val IoU: 0.8936 Saving best model with IoU: 0.8936 Epoch: 62, Batch: 0/63, Loss: 0.0543, Time: 1.43s Epoch: 62, Batch: 10/63, Loss: 0.0530, Time: 8.94s Epoch: 62, Batch: 20/63, Loss: 0.0703, Time: 8.73s Epoch: 62, Batch: 30/63, Loss: 0.0000, Time: 8.72s Epoch: 62, Batch: 40/63, Loss: 0.0352, Time: 8.94s Epoch: 62, Batch: 50/63, Loss: 0.0567, Time: 8.81s Epoch: 62, Batch: 60/63, Loss: 0.0688, Time: 8.57s Epoch 63/100: Train Loss: 0.0533, Val Loss: inf, Val IoU: 0.8891 Epoch: 63, Batch: 0/63, Loss: 0.0558, Time: 1.57s Epoch: 63, Batch: 10/63, Loss: 0.0678, Time: 8.82s Epoch: 63, Batch: 20/63, Loss: 0.0490, Time: 8.81s Epoch: 63, Batch: 30/63, Loss: 0.0636, Time: 8.80s Epoch: 63, Batch: 40/63, Loss: 0.0473, Time: 8.67s Epoch: 63, Batch: 50/63, Loss: 0.0738, Time: 8.69s Epoch: 63, Batch: 60/63, Loss: 0.0000, Time: 8.92s Epoch 64/100: Train Loss: 0.0563, Val Loss: inf, Val IoU: 0.8896 Epoch: 64, Batch: 0/63, Loss: 0.0745, Time: 2.05s Epoch: 64, Batch: 10/63, Loss: 0.0653, Time: 8.68s Epoch: 64, Batch: 20/63, Loss: 0.0519, Time: 8.59s Epoch: 64, Batch: 30/63, Loss: 0.0003, Time: 8.90s Epoch: 64, Batch: 40/63, Loss: 0.0739, Time: 8.73s Epoch: 64, Batch: 50/63, Loss: 0.0460, Time: 8.92s Epoch: 64, Batch: 60/63, Loss: 0.0461, Time: 8.77s Epoch 65/100: Train Loss: 0.0524, Val Loss: inf, Val IoU: 0.8831 Epoch: 65, Batch: 0/63, Loss: 0.0626, Time: 1.35s Epoch: 65, Batch: 10/63, Loss: 0.0580, Time: 8.71s Epoch: 65, Batch: 20/63, Loss: 0.0473, Time: 8.78s Epoch: 65, Batch: 30/63, Loss: 0.0984, Time: 8.62s Epoch: 65, Batch: 40/63, Loss: 0.0604, Time: 8.84s Epoch: 65, Batch: 50/63, Loss: 0.0644, Time: 8.89s Epoch: 65, Batch: 60/63, Loss: 0.0846, Time: 8.84s Epoch 66/100: Train Loss: 0.0559, Val Loss: inf, Val IoU: 0.8898 Epoch: 66, Batch: 0/63, Loss: 0.0630, Time: 1.41s Epoch: 66, Batch: 10/63, Loss: 0.0601, Time: 8.78s Epoch: 66, Batch: 20/63, Loss: 0.0393, Time: 8.60s Epoch: 66, Batch: 30/63, Loss: 0.0532, Time: 8.88s Epoch: 66, Batch: 40/63, Loss: 0.0525, Time: 8.76s Epoch: 66, Batch: 50/63, Loss: 0.0490, Time: 8.64s Epoch: 66, Batch: 60/63, Loss: 0.0726, Time: 8.91s Epoch 67/100: Train Loss: 0.0537, Val Loss: inf, Val IoU: 0.8893 Epoch: 67, Batch: 0/63, Loss: 0.0728, Time: 1.48s Epoch: 67, Batch: 10/63, Loss: 0.0632, Time: 8.70s Epoch: 67, Batch: 20/63, Loss: 0.0577, Time: 8.87s Epoch: 67, Batch: 30/63, Loss: 0.0679, Time: 8.55s Epoch: 67, Batch: 40/63, Loss: 0.0002, Time: 8.59s Epoch: 67, Batch: 50/63, Loss: 0.0776, Time: 9.15s Epoch: 67, Batch: 60/63, Loss: 0.0373, Time: 8.68s Epoch 68/100: Train Loss: 0.0530, Val Loss: inf, Val IoU: 0.8915 Epoch: 68, Batch: 0/63, Loss: 0.0000, Time: 1.35s Epoch: 68, Batch: 10/63, Loss: 0.0888, Time: 8.96s Epoch: 68, Batch: 20/63, Loss: 0.0427, Time: 8.74s Epoch: 68, Batch: 30/63, Loss: 0.0536, Time: 8.79s Epoch: 68, Batch: 40/63, Loss: 0.0570, Time: 8.85s Epoch: 68, Batch: 50/63, Loss: 0.0679, Time: 8.66s Epoch: 68, Batch: 60/63, Loss: 0.0567, Time: 8.71s Epoch 69/100: Train Loss: 0.0547, Val Loss: inf, Val IoU: 0.8847 Epoch: 69, Batch: 0/63, Loss: 0.0003, Time: 1.34s Epoch: 69, Batch: 10/63, Loss: 0.0000, Time: 8.73s Epoch: 69, Batch: 20/63, Loss: 0.0741, Time: 8.82s Epoch: 69, Batch: 30/63, Loss: 0.0645, Time: 8.68s Epoch: 69, Batch: 40/63, Loss: 0.0383, Time: 8.78s Epoch: 69, Batch: 50/63, Loss: 0.0557, Time: 9.06s Epoch: 69, Batch: 60/63, Loss: 0.0399, Time: 8.67s Epoch 70/100: Train Loss: 0.0520, Val Loss: inf, Val IoU: 0.8852 Epoch: 70, Batch: 0/63, Loss: 0.0718, Time: 1.67s Epoch: 70, Batch: 10/63, Loss: 0.0652, Time: 8.76s Epoch: 70, Batch: 20/63, Loss: 0.0520, Time: 8.69s Epoch: 70, Batch: 30/63, Loss: 0.0000, Time: 8.72s Epoch: 70, Batch: 40/63, Loss: 0.0487, Time: 8.90s Epoch: 70, Batch: 50/63, Loss: 0.0387, Time: 8.76s Epoch: 70, Batch: 60/63, Loss: 0.0528, Time: 8.90s Epoch 71/100: Train Loss: 0.0557, Val Loss: inf, Val IoU: 0.8852 Epoch: 71, Batch: 0/63, Loss: 0.0574, Time: 1.52s Epoch: 71, Batch: 10/63, Loss: 0.0728, Time: 8.88s Epoch: 71, Batch: 20/63, Loss: 0.0522, Time: 8.65s Epoch: 71, Batch: 30/63, Loss: 0.0001, Time: 8.73s Epoch: 71, Batch: 40/63, Loss: 0.0565, Time: 8.86s Epoch: 71, Batch: 50/63, Loss: 0.0650, Time: 8.68s Epoch: 71, Batch: 60/63, Loss: 0.0540, Time: 8.89s Epoch 72/100: Train Loss: 0.0537, Val Loss: inf, Val IoU: 0.8887 Epoch: 72, Batch: 0/63, Loss: 0.0609, Time: 1.55s Epoch: 72, Batch: 10/63, Loss: 0.0553, Time: 8.67s Epoch: 72, Batch: 20/63, Loss: 0.0486, Time: 9.05s Epoch: 72, Batch: 30/63, Loss: 0.0696, Time: 8.66s Epoch: 72, Batch: 40/63, Loss: 0.0476, Time: 8.92s Epoch: 72, Batch: 50/63, Loss: 0.0509, Time: 8.73s Epoch: 72, Batch: 60/63, Loss: 0.0525, Time: 8.67s Epoch 73/100: Train Loss: 0.0551, Val Loss: inf, Val IoU: 0.8883 Epoch: 73, Batch: 0/63, Loss: 0.0763, Time: 1.44s Epoch: 73, Batch: 10/63, Loss: 0.0769, Time: 8.93s Epoch: 73, Batch: 20/63, Loss: 0.0606, Time: 8.78s Epoch: 73, Batch: 30/63, Loss: 0.0643, Time: 8.75s Epoch: 73, Batch: 40/63, Loss: 0.0000, Time: 8.45s Epoch: 73, Batch: 50/63, Loss: 0.0847, Time: 8.91s Epoch: 73, Batch: 60/63, Loss: 0.0561, Time: 8.82s Epoch 74/100: Train Loss: 0.0522, Val Loss: inf, Val IoU: 0.8896 Epoch: 74, Batch: 0/63, Loss: 0.0601, Time: 1.36s Epoch: 74, Batch: 10/63, Loss: 0.0634, Time: 8.85s Epoch: 74, Batch: 20/63, Loss: 0.0624, Time: 8.77s Epoch: 74, Batch: 30/63, Loss: 0.0433, Time: 8.68s Epoch: 74, Batch: 40/63, Loss: 0.0682, Time: 8.70s Epoch: 74, Batch: 50/63, Loss: 0.0530, Time: 8.95s Epoch: 74, Batch: 60/63, Loss: 0.0493, Time: 8.75s Epoch 75/100: Train Loss: 0.0533, Val Loss: inf, Val IoU: 0.8906 Epoch: 75, Batch: 0/63, Loss: 0.0508, Time: 1.92s Epoch: 75, Batch: 10/63, Loss: 0.0582, Time: 8.86s Epoch: 75, Batch: 20/63, Loss: 0.0453, Time: 8.69s Epoch: 75, Batch: 30/63, Loss: 0.0000, Time: 8.84s Epoch: 75, Batch: 40/63, Loss: 0.0688, Time: 8.79s Epoch: 75, Batch: 50/63, Loss: 0.0723, Time: 8.84s Epoch: 75, Batch: 60/63, Loss: 0.0586, Time: 8.73s Epoch 76/100: Train Loss: 0.0486, Val Loss: inf, Val IoU: 0.8895 Epoch: 76, Batch: 0/63, Loss: 0.0512, Time: 1.39s Epoch: 76, Batch: 10/63, Loss: 0.0505, Time: 8.85s Epoch: 76, Batch: 20/63, Loss: 0.0525, Time: 8.81s Epoch: 76, Batch: 30/63, Loss: 0.0714, Time: 8.79s Epoch: 76, Batch: 40/63, Loss: 0.0000, Time: 8.71s Epoch: 76, Batch: 50/63, Loss: 0.0001, Time: 8.75s Epoch: 76, Batch: 60/63, Loss: 0.0518, Time: 8.64s Epoch 77/100: Train Loss: 0.0499, Val Loss: inf, Val IoU: 0.8900 Epoch: 77, Batch: 0/63, Loss: 0.0791, Time: 1.35s Epoch: 77, Batch: 10/63, Loss: 0.0502, Time: 8.70s Epoch: 77, Batch: 20/63, Loss: 0.0630, Time: 8.75s Epoch: 77, Batch: 30/63, Loss: 0.0584, Time: 8.60s Epoch: 77, Batch: 40/63, Loss: 0.0760, Time: 8.90s Epoch: 77, Batch: 50/63, Loss: 0.0002, Time: 8.75s Epoch: 77, Batch: 60/63, Loss: 0.0779, Time: 9.04s Epoch 78/100: Train Loss: 0.0535, Val Loss: inf, Val IoU: 0.8896 Epoch: 78, Batch: 0/63, Loss: 0.0617, Time: 1.57s Epoch: 78, Batch: 10/63, Loss: 0.0678, Time: 8.66s Epoch: 78, Batch: 20/63, Loss: 0.0773, Time: 8.59s Epoch: 78, Batch: 30/63, Loss: 0.0692, Time: 8.84s Epoch: 78, Batch: 40/63, Loss: 0.0559, Time: 8.92s Epoch: 78, Batch: 50/63, Loss: 0.0567, Time: 8.83s Epoch: 78, Batch: 60/63, Loss: 0.0693, Time: 8.76s Epoch 79/100: Train Loss: 0.0531, Val Loss: inf, Val IoU: 0.8909 Epoch: 79, Batch: 0/63, Loss: 0.0460, Time: 1.36s Epoch: 79, Batch: 10/63, Loss: 0.0585, Time: 8.69s Epoch: 79, Batch: 20/63, Loss: 0.0576, Time: 8.83s Epoch: 79, Batch: 30/63, Loss: 0.0444, Time: 8.79s Epoch: 79, Batch: 40/63, Loss: 0.0573, Time: 8.81s Epoch: 79, Batch: 50/63, Loss: 0.0527, Time: 8.78s Epoch: 79, Batch: 60/63, Loss: 0.0659, Time: 8.85s Epoch 80/100: Train Loss: 0.0537, Val Loss: inf, Val IoU: 0.8896 Epoch: 80, Batch: 0/63, Loss: 0.0685, Time: 1.70s Epoch: 80, Batch: 10/63, Loss: 0.0000, Time: 8.99s Epoch: 80, Batch: 20/63, Loss: 0.0466, Time: 8.78s Epoch: 80, Batch: 30/63, Loss: 0.0723, Time: 8.54s Epoch: 80, Batch: 40/63, Loss: 0.0472, Time: 8.77s Epoch: 80, Batch: 50/63, Loss: 0.0430, Time: 8.70s Epoch: 80, Batch: 60/63, Loss: 0.0679, Time: 8.87s Epoch 81/100: Train Loss: 0.0526, Val Loss: inf, Val IoU: 0.8900 Epoch: 81, Batch: 0/63, Loss: 0.0904, Time: 1.71s Epoch: 81, Batch: 10/63, Loss: 0.0000, Time: 8.73s Epoch: 81, Batch: 20/63, Loss: 0.0540, Time: 8.80s Epoch: 81, Batch: 30/63, Loss: 0.0401, Time: 8.96s Epoch: 81, Batch: 40/63, Loss: 0.0485, Time: 8.64s Epoch: 81, Batch: 50/63, Loss: 0.0886, Time: 8.72s Epoch: 81, Batch: 60/63, Loss: 0.0732, Time: 8.85s Epoch 82/100: Train Loss: 0.0551, Val Loss: inf, Val IoU: 0.8897 Epoch: 82, Batch: 0/63, Loss: 0.0710, Time: 1.87s Epoch: 82, Batch: 10/63, Loss: 0.0000, Time: 8.63s Epoch: 82, Batch: 20/63, Loss: 0.0529, Time: 9.11s Epoch: 82, Batch: 30/63, Loss: 0.0591, Time: 8.93s Epoch: 82, Batch: 40/63, Loss: 0.0804, Time: 8.71s Epoch: 82, Batch: 50/63, Loss: 0.0618, Time: 8.63s Epoch: 82, Batch: 60/63, Loss: 0.0000, Time: 8.67s Epoch 83/100: Train Loss: 0.0520, Val Loss: inf, Val IoU: 0.8893 Epoch: 83, Batch: 0/63, Loss: 0.0702, Time: 1.46s Epoch: 83, Batch: 10/63, Loss: 0.0495, Time: 8.71s Epoch: 83, Batch: 20/63, Loss: 0.0427, Time: 8.66s Epoch: 83, Batch: 30/63, Loss: 0.0742, Time: 8.80s Epoch: 83, Batch: 40/63, Loss: 0.0623, Time: 8.82s Epoch: 83, Batch: 50/63, Loss: 0.0717, Time: 8.74s Epoch: 83, Batch: 60/63, Loss: 0.0508, Time: 8.91s Epoch 84/100: Train Loss: 0.0541, Val Loss: inf, Val IoU: 0.8899 Epoch: 84, Batch: 0/63, Loss: 0.0606, Time: 1.42s Epoch: 84, Batch: 10/63, Loss: 0.0768, Time: 8.90s Epoch: 84, Batch: 20/63, Loss: 0.0638, Time: 8.73s Epoch: 84, Batch: 30/63, Loss: 0.0444, Time: 8.71s Epoch: 84, Batch: 40/63, Loss: 0.0496, Time: 8.78s Epoch: 84, Batch: 50/63, Loss: 0.0660, Time: 8.69s Epoch: 84, Batch: 60/63, Loss: 0.0608, Time: 8.93s Epoch 85/100: Train Loss: 0.0547, Val Loss: inf, Val IoU: 0.8899 Epoch: 85, Batch: 0/63, Loss: 0.0471, Time: 1.49s Epoch: 85, Batch: 10/63, Loss: 0.0661, Time: 8.76s Epoch: 85, Batch: 20/63, Loss: 0.0529, Time: 8.62s Epoch: 85, Batch: 30/63, Loss: 0.0000, Time: 8.67s Epoch: 85, Batch: 40/63, Loss: 0.0000, Time: 9.00s Epoch: 85, Batch: 50/63, Loss: 0.0633, Time: 8.71s Epoch: 85, Batch: 60/63, Loss: 0.0574, Time: 8.86s Epoch 86/100: Train Loss: 0.0523, Val Loss: inf, Val IoU: 0.8899 Epoch: 86, Batch: 0/63, Loss: 0.0699, Time: 1.44s Epoch: 86, Batch: 10/63, Loss: 0.0743, Time: 8.69s Epoch: 86, Batch: 20/63, Loss: 0.0539, Time: 9.08s Epoch: 86, Batch: 30/63, Loss: 0.0587, Time: 8.53s Epoch: 86, Batch: 40/63, Loss: 0.0537, Time: 9.05s Epoch: 86, Batch: 50/63, Loss: 0.0747, Time: 8.68s Epoch: 86, Batch: 60/63, Loss: 0.0628, Time: 8.78s Epoch 87/100: Train Loss: 0.0522, Val Loss: inf, Val IoU: 0.8902 Epoch: 87, Batch: 0/63, Loss: 0.0000, Time: 1.36s Epoch: 87, Batch: 10/63, Loss: 0.0550, Time: 8.80s Epoch: 87, Batch: 20/63, Loss: 0.0000, Time: 8.57s Epoch: 87, Batch: 30/63, Loss: 0.0496, Time: 8.76s Epoch: 87, Batch: 40/63, Loss: 0.0486, Time: 8.83s Epoch: 87, Batch: 50/63, Loss: 0.0694, Time: 9.01s Epoch: 87, Batch: 60/63, Loss: 0.0412, Time: 8.87s Epoch 88/100: Train Loss: 0.0521, Val Loss: inf, Val IoU: 0.8903 Epoch: 88, Batch: 0/63, Loss: 0.0428, Time: 1.87s Epoch: 88, Batch: 10/63, Loss: 0.0678, Time: 8.88s Epoch: 88, Batch: 20/63, Loss: 0.0699, Time: 8.77s Epoch: 88, Batch: 30/63, Loss: 0.0728, Time: 8.75s Epoch: 88, Batch: 40/63, Loss: 0.0649, Time: 8.79s Epoch: 88, Batch: 50/63, Loss: 0.0588, Time: 8.73s Epoch: 88, Batch: 60/63, Loss: 0.0543, Time: 8.89s Epoch 89/100: Train Loss: 0.0539, Val Loss: inf, Val IoU: 0.8907 Epoch: 89, Batch: 0/63, Loss: 0.0474, Time: 1.39s Epoch: 89, Batch: 10/63, Loss: 0.0422, Time: 8.78s Epoch: 89, Batch: 20/63, Loss: 0.0000, Time: 8.76s Epoch: 89, Batch: 30/63, Loss: 0.0678, Time: 8.84s Epoch: 89, Batch: 40/63, Loss: 0.0474, Time: 8.85s Epoch: 89, Batch: 50/63, Loss: 0.0547, Time: 8.76s Epoch: 89, Batch: 60/63, Loss: 0.0660, Time: 8.63s Epoch 90/100: Train Loss: 0.0518, Val Loss: inf, Val IoU: 0.8897 Epoch: 90, Batch: 0/63, Loss: 0.0000, Time: 1.57s Epoch: 90, Batch: 10/63, Loss: 0.0406, Time: 8.82s Epoch: 90, Batch: 20/63, Loss: 0.0573, Time: 8.72s Epoch: 90, Batch: 30/63, Loss: 0.0451, Time: 8.71s Epoch: 90, Batch: 40/63, Loss: 0.0432, Time: 8.74s Epoch: 90, Batch: 50/63, Loss: 0.0483, Time: 8.79s Epoch: 90, Batch: 60/63, Loss: 0.0556, Time: 8.87s Epoch 91/100: Train Loss: 0.0522, Val Loss: inf, Val IoU: 0.8892 Epoch: 91, Batch: 0/63, Loss: 0.0466, Time: 1.53s Epoch: 91, Batch: 10/63, Loss: 0.0523, Time: 8.79s Epoch: 91, Batch: 20/63, Loss: 0.0584, Time: 8.73s Epoch: 91, Batch: 30/63, Loss: 0.0663, Time: 8.76s Epoch: 91, Batch: 40/63, Loss: 0.0538, Time: 8.82s Epoch: 91, Batch: 50/63, Loss: 0.0717, Time: 8.59s Epoch: 91, Batch: 60/63, Loss: 0.0577, Time: 8.88s Epoch 92/100: Train Loss: 0.0523, Val Loss: inf, Val IoU: 0.8894 Epoch: 92, Batch: 0/63, Loss: 0.0650, Time: 1.59s Epoch: 92, Batch: 10/63, Loss: 0.0668, Time: 8.86s Epoch: 92, Batch: 20/63, Loss: 0.0490, Time: 8.75s Epoch: 92, Batch: 30/63, Loss: 0.0694, Time: 8.88s Epoch: 92, Batch: 40/63, Loss: 0.0475, Time: 8.89s Epoch: 92, Batch: 50/63, Loss: 0.0380, Time: 8.68s Epoch: 92, Batch: 60/63, Loss: 0.0551, Time: 8.57s Epoch 93/100: Train Loss: 0.0535, Val Loss: inf, Val IoU: 0.8893 Epoch: 93, Batch: 0/63, Loss: 0.0584, Time: 1.60s Epoch: 93, Batch: 10/63, Loss: 0.0601, Time: 8.74s Epoch: 93, Batch: 20/63, Loss: 0.0312, Time: 8.66s Epoch: 93, Batch: 30/63, Loss: 0.0481, Time: 8.68s Epoch: 93, Batch: 40/63, Loss: 0.0463, Time: 8.77s Epoch: 93, Batch: 50/63, Loss: 0.0702, Time: 8.93s Epoch: 93, Batch: 60/63, Loss: 0.0481, Time: 8.91s Epoch 94/100: Train Loss: 0.0541, Val Loss: inf, Val IoU: 0.8902 Epoch: 94, Batch: 0/63, Loss: 0.0531, Time: 1.48s Epoch: 94, Batch: 10/63, Loss: 0.0606, Time: 8.99s Epoch: 94, Batch: 20/63, Loss: 0.0704, Time: 8.57s Epoch: 94, Batch: 30/63, Loss: 0.0555, Time: 8.69s Epoch: 94, Batch: 40/63, Loss: 0.0479, Time: 8.83s Epoch: 94, Batch: 50/63, Loss: 0.0660, Time: 8.74s Epoch: 94, Batch: 60/63, Loss: 0.0503, Time: 8.82s Epoch 95/100: Train Loss: 0.0510, Val Loss: inf, Val IoU: 0.8891 Epoch: 95, Batch: 0/63, Loss: 0.0467, Time: 1.95s Epoch: 95, Batch: 10/63, Loss: 0.0677, Time: 8.90s Epoch: 95, Batch: 20/63, Loss: 0.0620, Time: 8.72s Epoch: 95, Batch: 30/63, Loss: 0.0547, Time: 8.58s Epoch: 95, Batch: 40/63, Loss: 0.0614, Time: 8.76s Epoch: 95, Batch: 50/63, Loss: 0.0566, Time: 8.93s Epoch: 95, Batch: 60/63, Loss: 0.0685, Time: 8.79s Epoch 96/100: Train Loss: 0.0515, Val Loss: inf, Val IoU: 0.8897 Epoch: 96, Batch: 0/63, Loss: 0.0549, Time: 1.46s Epoch: 96, Batch: 10/63, Loss: 0.0734, Time: 9.00s Epoch: 96, Batch: 20/63, Loss: 0.0649, Time: 8.66s Epoch: 96, Batch: 30/63, Loss: 0.0626, Time: 8.78s Epoch: 96, Batch: 40/63, Loss: 0.0373, Time: 8.51s Epoch: 96, Batch: 50/63, Loss: 0.0552, Time: 8.99s Epoch: 96, Batch: 60/63, Loss: 0.0688, Time: 8.73s Epoch 97/100: Train Loss: 0.0514, Val Loss: inf, Val IoU: 0.8903 Epoch: 97, Batch: 0/63, Loss: 0.0678, Time: 1.50s Epoch: 97, Batch: 10/63, Loss: 0.0000, Time: 8.59s Epoch: 97, Batch: 20/63, Loss: 0.0727, Time: 8.94s Epoch: 97, Batch: 30/63, Loss: 0.0521, Time: 8.71s Epoch: 97, Batch: 40/63, Loss: 0.0714, Time: 8.94s Epoch: 97, Batch: 50/63, Loss: 0.0609, Time: 8.94s Epoch: 97, Batch: 60/63, Loss: 0.0000, Time: 8.67s Epoch 98/100: Train Loss: 0.0523, Val Loss: inf, Val IoU: 0.8903 Epoch: 98, Batch: 0/63, Loss: 0.0521, Time: 1.60s Epoch: 98, Batch: 10/63, Loss: 0.0521, Time: 8.85s Epoch: 98, Batch: 20/63, Loss: 0.0000, Time: 8.76s Epoch: 98, Batch: 30/63, Loss: 0.0000, Time: 8.81s Epoch: 98, Batch: 40/63, Loss: 0.0626, Time: 8.90s Epoch: 98, Batch: 50/63, Loss: 0.0709, Time: 8.66s Epoch: 98, Batch: 60/63, Loss: 0.0000, Time: 8.67s Epoch 99/100: Train Loss: 0.0527, Val Loss: inf, Val IoU: 0.8900 Epoch: 99, Batch: 0/63, Loss: 0.0571, Time: 1.43s Epoch: 99, Batch: 10/63, Loss: 0.0681, Time: 8.85s Epoch: 99, Batch: 20/63, Loss: 0.0627, Time: 8.81s Epoch: 99, Batch: 30/63, Loss: 0.0498, Time: 8.96s Epoch: 99, Batch: 40/63, Loss: 0.0533, Time: 8.93s Epoch: 99, Batch: 50/63, Loss: 0.0666, Time: 8.56s Epoch: 99, Batch: 60/63, Loss: 0.0488, Time: 8.48s Epoch 100/100: Train Loss: 0.0533, Val Loss: inf, Val IoU: 0.8901 Final Evaluation - Loss: inf, IoU: 0.8936 Training complete! Trained model saved to output/models
Once trained, let's apply it to the test image:
In [ ]:
masks_path = "solar_panels_prediction.tif"
model_path = f"{out_folder}/models/best_model.pth"
In [ ]:
geoai.object_detection(
test_raster_path,
masks_path,
model_path,
window_size=512,
overlap=256,
confidence_threshold=0.5,
batch_size=4,
num_channels=3,
)
Processing 209 windows with size 512x512 and overlap 256...
240it [00:23, 10.15it/s]
Inference completed in 23.77 seconds Saved prediction to solar_panels_prediction.tif
Then we convert the generated mask image to polygons:
In [ ]:
output_path = "solar_panels_prediction.geojson"
gdf = geoai.orthogonalize(masks_path, output_path, epsilon=2)
Processing 39 features...
Converting features: 100%|██████████| 39/39 [00:00<00:00, 93.37shape/s]
Saving to solar_panels_prediction.geojson... Done!
In [ ]:
gdf
Out[ ]:
| geometry | value | |
|---|---|---|
| 0 | POLYGON ((-13555477.794 4657750.182, -13555476... | 1 |
| 1 | POLYGON ((-13555672.098 4657741.33, -13555667.... | 1 |
| 2 | POLYGON ((-13555693.336 4657739.241, -13555689... | 1 |
| 3 | POLYGON ((-13555661.535 4657749.355, -13555661... | 1 |
| 4 | POLYGON ((-13555671.463 4657736.403, -13555666... | 1 |
| 5 | POLYGON ((-13555700.876 4657746.817, -13555700... | 1 |
| 6 | POLYGON ((-13555587.52 4657726.176, -13555587.... | 1 |
| 7 | POLYGON ((-13555584.944 4657717.256, -13555584... | 1 |
| 8 | POLYGON ((-13555522.821 4657723.474, -13555519... | 1 |
| 9 | POLYGON ((-13555590.878 4657705.2, -13555590.8... | 1 |
| 10 | POLYGON ((-13555760.82 4657686.874, -13555752.... | 1 |
| 11 | POLYGON ((-13555725.287 4657690.458, -13555725... | 1 |
| 12 | POLYGON ((-13555776.646 4657675.604, -13555776... | 1 |
| 13 | POLYGON ((-13555519.113 4657667.571, -13555518... | 1 |
| 14 | POLYGON ((-13555499.581 4657666.943, -13555499... | 1 |
| 15 | POLYGON ((-13555455.724 4657661.718, -13555455... | 1 |
| 16 | POLYGON ((-13555567.177 4657657.239, -13555567... | 1 |
| 17 | POLYGON ((-13555579.457 4657652.797, -13555571... | 1 |
| 18 | POLYGON ((-13555508.353 4657638.279, -13555508... | 1 |
| 19 | POLYGON ((-13555569.192 4657637.009, -13555569... | 1 |
| 20 | POLYGON ((-13555450.762 4657629.358, -13555450... | 1 |
| 21 | POLYGON ((-13555499.208 4657634.024, -13555499... | 1 |
| 22 | POLYGON ((-13555502.903 4657635.741, -13555502... | 1 |
| 23 | POLYGON ((-13555501.373 4657615.473, -13555498... | 1 |
| 24 | POLYGON ((-13555512.123 4657616.631, -13555512... | 1 |
| 25 | POLYGON ((-13555565.636 4657612.563, -13555565... | 1 |
| 26 | POLYGON ((-13555502.008 4657599.387, -13555502... | 1 |
| 27 | POLYGON ((-13555554.152 4657593.603, -13555550... | 1 |
| 28 | POLYGON ((-13555572.926 4657592.296, -13555567... | 1 |
| 29 | POLYGON ((-13555506.112 4657584.31, -13555503.... | 1 |
| 30 | POLYGON ((-13555502.641 4657588.377, -13555502... | 1 |
| 31 | POLYGON ((-13555510.107 4657584.16, -13555507.... | 1 |
| 32 | POLYGON ((-13555569.267 4657576.547, -13555562... | 1 |
| 33 | POLYGON ((-13555562.997 4657576.622, -13555562... | 1 |
| 34 | POLYGON ((-13555448.334 4657559.078, -13555448... | 1 |
| 35 | POLYGON ((-13555576.959 4657550.643, -13555570... | 1 |
| 36 | POLYGON ((-13555570.386 4657543.439, -13555564... | 1 |
| 37 | POLYGON ((-13555560.421 4657544.409, -13555560... | 1 |
In [ ]:
geoai.view_vector_interactive(output_path, tiles=test_raster_url)
Out[ ]:
Make this Notebook Trusted to load map: File -> Trust Notebook