Skip to content

Incompatible with torchgeo 0.8 due to unused ResNet import #1031

@hkristen

Description

@hkristen

Describe the issue
Terratorch 1.1.1 is incompatible with torchgeo 0.8 due to importing the ResNet class which was removed in torchgeo 0.8. The import occurs in
terratorch/models/backbones/torchgeo_resnet.py:4. From what i can see the ResNet class is never used in the codebase - only the factory functions (resnet18, resnet50, resnet152) and weight classes are used.

To Reproduce

  1. Install torchgeo 0.8: pip install torchgeo==0.8.0
  2. Install terratorch: pip install terratorch==1.1.1
  3. Try to import: from terratorch.tasks import SemanticSegmentationTask
Log Output
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
Cell In[1], line 15
     13 import wandb
     14 from lightning.pytorch.loggers import WandbLogger
---> 15 from terratorch.tasks import SemanticSegmentationTask
     17 from src.data.datamodules.unet_change import SegmentationDataModule

File ~/miniforge3/envs/geoai-dev/lib/python3.11/site-packages/terratorch/init.py:7
4 import os
5 os.environ["NO_ALBUMENTATIONS_UPDATE"] = "True"
----> 7 import terratorch.models # noqa: F401
8 from terratorch.models.backbones import * # register models in registries # noqa: F403
9 from terratorch.registry import BACKBONE_REGISTRY, DECODER_REGISTRY, MODEL_FACTORY_REGISTRY, FULL_MODEL_REGISTRY # noqa: F401

File ~/miniforge3/envs/geoai-dev/lib/python3.11/site-packages/terratorch/models/init.py:7
4 import logging
6 import terratorch.models.necks # register necks # noqa: F401
----> 7 from terratorch.models.clay1_5_model_factory import Clay1_5ModelFactory
8 from terratorch.models.clay_model_factory import ClayModelFactory
9 from terratorch.models.encoder_decoder_factory import EncoderDecoderFactory

File ~/miniforge3/envs/geoai-dev/lib/python3.11/site-packages/terratorch/models/clay1_5_model_factory.py:12
9 import logging
11 import terratorch.models.decoders as decoder_registry
---> 12 from terratorch.models.backbones.clay_v1.embedder import Embedder
13 from terratorch.models.model import (
14 AuxiliaryHead,
15 Model,
16 ModelFactory,
17 )
18 from terratorch.models.pixel_wise_model import PixelWiseModel

File ~/miniforge3/envs/geoai-dev/lib/python3.11/site-packages/terratorch/models/backbones/init.py:11
9 import terratorch.models.backbones.scalemae
10 import terratorch.models.backbones.terramind
---> 11 import terratorch.models.backbones.torchgeo_resnet
12 import terratorch.models.backbones.torchgeo_swin_satlas
13 import terratorch.models.backbones.torchgeo_vit

File ~/miniforge3/envs/geoai-dev/lib/python3.11/site-packages/terratorch/models/backbones/torchgeo_resnet.py:4
1 # reference torchgeo https://torchgeo.readthedocs.io/en/stable/_modules/torchgeo/models/resnet.html
3 import torchgeo.models.resnet as resnet
----> 4 from torchgeo.models.resnet import ResNet, ResNet18_Weights, ResNet50_Weights, ResNet152_Weights, resnet18, resnet50, resnet152
5 import logging
6 from collections.abc import Callable

ImportError: cannot import name 'ResNet' from 'torchgeo.models.resnet' (/home/hkristen/miniforge3/envs/geoai-dev/lib/python3.11/site-packages/torchgeo/models/resnet.py)

Expected behavior

Terratorch should work with torchgeo 0.8.

Deployment information

  • TerraTorch version: 1.1.1
  • Installation source: pip
  • torchgeo version: 0.8.0 (attempting to use; currently constrained to <0.7.2)

FYI @adamjstewart

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions