BloodAxe / pytorch-toolbelt

PyTorch extensions for fast R&D prototyping and Kaggle farming
MIT License
1.51k stars 119 forks source link

Update for collections.abc in installation #66

Closed sebasmos closed 2 years ago

sebasmos commented 2 years ago

🐛 Bug

Traceback (most recent call last): File "/home/sebasmos/Desktop/TRPD/segmentation_models_test.py", line 1, in import segmentation_models_pytorch as smp File "/home/sebasmos/anaconda3/envs/sebasmos/lib/python3.9/site-packages/segmentation_models_pytorch/init.py", line 1, in from .unet import Unet File "/home/sebasmos/anaconda3/envs/sebasmos/lib/python3.9/site-packages/segmentation_models_pytorch/unet/init.py", line 1, in from .model import Unet File "/home/sebasmos/anaconda3/envs/sebasmos/lib/python3.9/site-packages/segmentation_models_pytorch/unet/model.py", line 3, in from ..encoders import get_encoder File "/home/sebasmos/anaconda3/envs/sebasmos/lib/python3.9/site-packages/segmentation_models_pytorch/encoders/init.py", line 14, in from .timm_efficientnet import timm_efficientnet_encoders File "/home/sebasmos/anaconda3/envs/sebasmos/lib/python3.9/site-packages/segmentation_models_pytorch/encoders/timm_efficientnet.py", line 4, in from timm.models.efficientnet import EfficientNet File "/home/sebasmos/anaconda3/envs/sebasmos/lib/python3.9/site-packages/timm/init.py", line 2, in from .models import create_model, list_models, is_model, list_modules, model_entrypoint, \ File "/home/sebasmos/anaconda3/envs/sebasmos/lib/python3.9/site-packages/timm/models/init.py", line 1, in from .cspnet import * File "/home/sebasmos/anaconda3/envs/sebasmos/lib/python3.9/site-packages/timm/models/cspnet.py", line 20, in from .helpers import build_model_with_cfg File "/home/sebasmos/anaconda3/envs/sebasmos/lib/python3.9/site-packages/timm/models/helpers.py", line 17, in from .layers import Conv2dSame, Linear File "/home/sebasmos/anaconda3/envs/sebasmos/lib/python3.9/site-packages/timm/models/layers/init.py", line 7, in from .cond_conv2d import CondConv2d, get_condconv_initializer File "/home/sebasmos/anaconda3/envs/sebasmos/lib/python3.9/site-packages/timm/models/layers/cond_conv2d.py", line 16, in from .helpers import to_2tuple File "/home/sebasmos/anaconda3/envs/sebasmos/lib/python3.9/site-packages/timm/models/layers/helpers.py", line 6, in from torch._six import container_abcs ImportError: cannot import name 'container_abcs' from 'torch._six' (/home/sebasmos/anaconda3/envs/sebasmos/lib/python3.9/site-packages/torch/_six.py)

To Reproduce

Steps to reproduce the behavior:

  1. Cloning as of today (12 dec): pip install -U git+https://github.com/jlcsilva/segmentation_models.pytorch

Solution - how it worked for me based on https://github.com/rwightman/pytorch-image-models/commit/94ca140b67cb602ee7e146af32bfb63b60df96f4#diff-c7abf83bc43184f6101237b08d7c489c361f3d57b3538d633f6f01d35254b73c

""" Layer/Module Helpers

Hacked together by / Copyright 2020 Ross Wightman """ from itertools import repeat import collections.abc

def _ntuple(n): def parse(x): if isinstance(x, collections.abc.Iterable): return x return tuple(repeat(x, n)) return parse

to_1tuple = _ntuple(1) to_2tuple = _ntuple(2) to_3tuple = _ntuple(3) to_4tuple = _ntuple(4) to_ntuple = _ntuple