From 4abc4fd73dbf2eaba44e0f96c77891e1676afd4b Mon Sep 17 00:00:00 2001 From: "Devin A. Conley" Date: Tue, 8 Oct 2019 06:13:35 -0500 Subject: [PATCH 1/3] package for pip installation --- .gitignore | 2 ++ csail_semseg/__init__.py | 0 {config => csail_semseg/config}/__init__.py | 0 {config => csail_semseg/config}/defaults.py | 0 dataset.py => csail_semseg/dataset.py | 0 csail_semseg/lib/__init__.py | 0 {lib => csail_semseg/lib}/nn/__init__.py | 0 .../lib}/nn/modules/__init__.py | 0 .../lib}/nn/modules/batchnorm.py | 0 {lib => csail_semseg/lib}/nn/modules/comm.py | 0 .../lib}/nn/modules/replicate.py | 0 csail_semseg/lib/nn/modules/tests/__init__.py | 0 .../modules/tests/test_numeric_batchnorm.py | 0 .../nn/modules/tests/test_sync_batchnorm.py | 0 .../lib}/nn/modules/unittest.py | 0 .../lib}/nn/parallel/__init__.py | 0 .../lib}/nn/parallel/data_parallel.py | 0 {lib => csail_semseg/lib}/utils/__init__.py | 0 .../lib}/utils/data/__init__.py | 0 .../lib}/utils/data/dataloader.py | 0 .../lib}/utils/data/dataset.py | 0 .../lib}/utils/data/distributed.py | 0 .../lib}/utils/data/sampler.py | 0 {lib => csail_semseg/lib}/utils/th.py | 0 {models => csail_semseg/models}/__init__.py | 0 {models => csail_semseg/models}/hrnet.py | 2 +- {models => csail_semseg/models}/mobilenet.py | 2 +- {models => csail_semseg/models}/models.py | 3 +- {models => csail_semseg/models}/resnet.py | 2 +- {models => csail_semseg/models}/resnext.py | 2 +- {models => csail_semseg/models}/utils.py | 0 utils.py => csail_semseg/utils.py | 0 eval.py | 12 ++++---- eval_multipro.py | 12 ++++---- setup.py | 28 +++++++++++++++++++ test.py | 12 ++++---- train.py | 10 +++---- 37 files changed, 58 insertions(+), 29 deletions(-) create mode 100644 csail_semseg/__init__.py rename {config => csail_semseg/config}/__init__.py (100%) rename {config => csail_semseg/config}/defaults.py (100%) rename dataset.py => csail_semseg/dataset.py (100%) create mode 100644 csail_semseg/lib/__init__.py rename {lib => csail_semseg/lib}/nn/__init__.py (100%) rename {lib => csail_semseg/lib}/nn/modules/__init__.py (100%) rename {lib => csail_semseg/lib}/nn/modules/batchnorm.py (100%) rename {lib => csail_semseg/lib}/nn/modules/comm.py (100%) rename {lib => csail_semseg/lib}/nn/modules/replicate.py (100%) create mode 100644 csail_semseg/lib/nn/modules/tests/__init__.py rename {lib => csail_semseg/lib}/nn/modules/tests/test_numeric_batchnorm.py (100%) rename {lib => csail_semseg/lib}/nn/modules/tests/test_sync_batchnorm.py (100%) rename {lib => csail_semseg/lib}/nn/modules/unittest.py (100%) rename {lib => csail_semseg/lib}/nn/parallel/__init__.py (100%) rename {lib => csail_semseg/lib}/nn/parallel/data_parallel.py (100%) rename {lib => csail_semseg/lib}/utils/__init__.py (100%) rename {lib => csail_semseg/lib}/utils/data/__init__.py (100%) rename {lib => csail_semseg/lib}/utils/data/dataloader.py (100%) rename {lib => csail_semseg/lib}/utils/data/dataset.py (100%) rename {lib => csail_semseg/lib}/utils/data/distributed.py (100%) rename {lib => csail_semseg/lib}/utils/data/sampler.py (100%) rename {lib => csail_semseg/lib}/utils/th.py (100%) rename {models => csail_semseg/models}/__init__.py (100%) rename {models => csail_semseg/models}/hrnet.py (99%) rename {models => csail_semseg/models}/mobilenet.py (98%) rename {models => csail_semseg/models}/models.py (99%) rename {models => csail_semseg/models}/resnet.py (99%) rename {models => csail_semseg/models}/resnext.py (98%) rename {models => csail_semseg/models}/utils.py (100%) rename utils.py => csail_semseg/utils.py (100%) create mode 100644 setup.py diff --git a/.gitignore b/.gitignore index e19cd521..005e4ace 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ ckpt/ vis/ log/ pretrained/ + +.idea/ \ No newline at end of file diff --git a/csail_semseg/__init__.py b/csail_semseg/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/config/__init__.py b/csail_semseg/config/__init__.py similarity index 100% rename from config/__init__.py rename to csail_semseg/config/__init__.py diff --git a/config/defaults.py b/csail_semseg/config/defaults.py similarity index 100% rename from config/defaults.py rename to csail_semseg/config/defaults.py diff --git a/dataset.py b/csail_semseg/dataset.py similarity index 100% rename from dataset.py rename to csail_semseg/dataset.py diff --git a/csail_semseg/lib/__init__.py b/csail_semseg/lib/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/lib/nn/__init__.py b/csail_semseg/lib/nn/__init__.py similarity index 100% rename from lib/nn/__init__.py rename to csail_semseg/lib/nn/__init__.py diff --git a/lib/nn/modules/__init__.py b/csail_semseg/lib/nn/modules/__init__.py similarity index 100% rename from lib/nn/modules/__init__.py rename to csail_semseg/lib/nn/modules/__init__.py diff --git a/lib/nn/modules/batchnorm.py b/csail_semseg/lib/nn/modules/batchnorm.py similarity index 100% rename from lib/nn/modules/batchnorm.py rename to csail_semseg/lib/nn/modules/batchnorm.py diff --git a/lib/nn/modules/comm.py b/csail_semseg/lib/nn/modules/comm.py similarity index 100% rename from lib/nn/modules/comm.py rename to csail_semseg/lib/nn/modules/comm.py diff --git a/lib/nn/modules/replicate.py b/csail_semseg/lib/nn/modules/replicate.py similarity index 100% rename from lib/nn/modules/replicate.py rename to csail_semseg/lib/nn/modules/replicate.py diff --git a/csail_semseg/lib/nn/modules/tests/__init__.py b/csail_semseg/lib/nn/modules/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/lib/nn/modules/tests/test_numeric_batchnorm.py b/csail_semseg/lib/nn/modules/tests/test_numeric_batchnorm.py similarity index 100% rename from lib/nn/modules/tests/test_numeric_batchnorm.py rename to csail_semseg/lib/nn/modules/tests/test_numeric_batchnorm.py diff --git a/lib/nn/modules/tests/test_sync_batchnorm.py b/csail_semseg/lib/nn/modules/tests/test_sync_batchnorm.py similarity index 100% rename from lib/nn/modules/tests/test_sync_batchnorm.py rename to csail_semseg/lib/nn/modules/tests/test_sync_batchnorm.py diff --git a/lib/nn/modules/unittest.py b/csail_semseg/lib/nn/modules/unittest.py similarity index 100% rename from lib/nn/modules/unittest.py rename to csail_semseg/lib/nn/modules/unittest.py diff --git a/lib/nn/parallel/__init__.py b/csail_semseg/lib/nn/parallel/__init__.py similarity index 100% rename from lib/nn/parallel/__init__.py rename to csail_semseg/lib/nn/parallel/__init__.py diff --git a/lib/nn/parallel/data_parallel.py b/csail_semseg/lib/nn/parallel/data_parallel.py similarity index 100% rename from lib/nn/parallel/data_parallel.py rename to csail_semseg/lib/nn/parallel/data_parallel.py diff --git a/lib/utils/__init__.py b/csail_semseg/lib/utils/__init__.py similarity index 100% rename from lib/utils/__init__.py rename to csail_semseg/lib/utils/__init__.py diff --git a/lib/utils/data/__init__.py b/csail_semseg/lib/utils/data/__init__.py similarity index 100% rename from lib/utils/data/__init__.py rename to csail_semseg/lib/utils/data/__init__.py diff --git a/lib/utils/data/dataloader.py b/csail_semseg/lib/utils/data/dataloader.py similarity index 100% rename from lib/utils/data/dataloader.py rename to csail_semseg/lib/utils/data/dataloader.py diff --git a/lib/utils/data/dataset.py b/csail_semseg/lib/utils/data/dataset.py similarity index 100% rename from lib/utils/data/dataset.py rename to csail_semseg/lib/utils/data/dataset.py diff --git a/lib/utils/data/distributed.py b/csail_semseg/lib/utils/data/distributed.py similarity index 100% rename from lib/utils/data/distributed.py rename to csail_semseg/lib/utils/data/distributed.py diff --git a/lib/utils/data/sampler.py b/csail_semseg/lib/utils/data/sampler.py similarity index 100% rename from lib/utils/data/sampler.py rename to csail_semseg/lib/utils/data/sampler.py diff --git a/lib/utils/th.py b/csail_semseg/lib/utils/th.py similarity index 100% rename from lib/utils/th.py rename to csail_semseg/lib/utils/th.py diff --git a/models/__init__.py b/csail_semseg/models/__init__.py similarity index 100% rename from models/__init__.py rename to csail_semseg/models/__init__.py diff --git a/models/hrnet.py b/csail_semseg/models/hrnet.py similarity index 99% rename from models/hrnet.py rename to csail_semseg/models/hrnet.py index c16ac5e9..071c09c0 100644 --- a/models/hrnet.py +++ b/csail_semseg/models/hrnet.py @@ -8,7 +8,7 @@ import torch.nn as nn import torch.nn.functional as F from .utils import load_url -from lib.nn import SynchronizedBatchNorm2d +from csail_semseg.lib.nn import SynchronizedBatchNorm2d BatchNorm2d = SynchronizedBatchNorm2d BN_MOMENTUM = 0.1 diff --git a/models/mobilenet.py b/csail_semseg/models/mobilenet.py similarity index 98% rename from models/mobilenet.py rename to csail_semseg/models/mobilenet.py index fe03d84d..cb8b0faf 100644 --- a/models/mobilenet.py +++ b/csail_semseg/models/mobilenet.py @@ -6,7 +6,7 @@ import torch.nn as nn import math from .utils import load_url -from lib.nn import SynchronizedBatchNorm2d +from csail_semseg.lib.nn import SynchronizedBatchNorm2d BatchNorm2d = SynchronizedBatchNorm2d diff --git a/models/models.py b/csail_semseg/models/models.py similarity index 99% rename from models/models.py rename to csail_semseg/models/models.py index 627a220a..df078d6a 100644 --- a/models/models.py +++ b/csail_semseg/models/models.py @@ -1,8 +1,7 @@ import torch import torch.nn as nn -import torchvision from . import resnet, resnext, mobilenet, hrnet -from lib.nn import SynchronizedBatchNorm2d +from csail_semseg.lib.nn import SynchronizedBatchNorm2d BatchNorm2d = SynchronizedBatchNorm2d diff --git a/models/resnet.py b/csail_semseg/models/resnet.py similarity index 99% rename from models/resnet.py rename to csail_semseg/models/resnet.py index f09f5b00..9dfad29b 100644 --- a/models/resnet.py +++ b/csail_semseg/models/resnet.py @@ -1,7 +1,7 @@ import torch.nn as nn import math from .utils import load_url -from lib.nn import SynchronizedBatchNorm2d +from csail_semseg.lib.nn import SynchronizedBatchNorm2d BatchNorm2d = SynchronizedBatchNorm2d diff --git a/models/resnext.py b/csail_semseg/models/resnext.py similarity index 98% rename from models/resnext.py rename to csail_semseg/models/resnext.py index ba3e8dcd..dee3c14f 100644 --- a/models/resnext.py +++ b/csail_semseg/models/resnext.py @@ -1,7 +1,7 @@ import torch.nn as nn import math from .utils import load_url -from lib.nn import SynchronizedBatchNorm2d +from csail_semseg.lib.nn import SynchronizedBatchNorm2d BatchNorm2d = SynchronizedBatchNorm2d diff --git a/models/utils.py b/csail_semseg/models/utils.py similarity index 100% rename from models/utils.py rename to csail_semseg/models/utils.py diff --git a/utils.py b/csail_semseg/utils.py similarity index 100% rename from utils.py rename to csail_semseg/utils.py diff --git a/eval.py b/eval.py index 8742990c..7499d985 100644 --- a/eval.py +++ b/eval.py @@ -9,12 +9,12 @@ import torch.nn as nn from scipy.io import loadmat # Our libs -from config import cfg -from dataset import ValDataset -from models import ModelBuilder, SegmentationModule -from utils import AverageMeter, colorEncode, accuracy, intersectionAndUnion, setup_logger -from lib.nn import user_scattered_collate, async_copy_to -from lib.utils import as_numpy +from csail_semseg.config import cfg +from csail_semseg.dataset import ValDataset +from csail_semseg.models import ModelBuilder, SegmentationModule +from csail_semseg.utils import AverageMeter, colorEncode, accuracy, intersectionAndUnion, setup_logger +from csail_semseg.lib.nn import user_scattered_collate, async_copy_to +from csail_semseg.lib.utils import as_numpy from PIL import Image from tqdm import tqdm diff --git a/eval_multipro.py b/eval_multipro.py index 258edfa1..8b191dd6 100644 --- a/eval_multipro.py +++ b/eval_multipro.py @@ -10,12 +10,12 @@ import torch.nn as nn from scipy.io import loadmat # Our libs -from config import cfg -from dataset import ValDataset -from models import ModelBuilder, SegmentationModule -from utils import AverageMeter, colorEncode, accuracy, intersectionAndUnion, parse_devices, setup_logger -from lib.nn import user_scattered_collate, async_copy_to -from lib.utils import as_numpy +from csail_semseg.config import cfg +from csail_semseg.dataset import ValDataset +from csail_semseg.models import ModelBuilder, SegmentationModule +from csail_semseg.utils import AverageMeter, colorEncode, accuracy, intersectionAndUnion, parse_devices, setup_logger +from csail_semseg.lib.nn import user_scattered_collate, async_copy_to +from csail_semseg.lib.utils import as_numpy from PIL import Image from tqdm import tqdm diff --git a/setup.py b/setup.py new file mode 100644 index 00000000..e49590c3 --- /dev/null +++ b/setup.py @@ -0,0 +1,28 @@ +import setuptools + +with open('README.md', 'r') as fh: + long_description = fh.read() + +setuptools.setup( + name='csail_semseg', + version='1.0.0', + author='CSAIL', + description='Pytorch implementation for Semantic Segmentation/Scene Parsing on MIT ADE20K dataset', + long_description=long_description, + long_description_content_type='text/markdown', + url='https://github.com/CSAILVision/semantic-segmentation-pytorch', + packages=setuptools.find_packages(), + classifiers=( + 'Programming Language :: Python :: 3', + 'License :: OSI Approved :: BSD License', + 'Operating System :: OS Independent', + ), + install_requires=[ + 'numpy', + 'torch>=0.4.1', + 'torchvision', + 'opencv-python', + 'yacs', + 'tqdm' + ] +) diff --git a/test.py b/test.py index 0fe85e11..c74ec899 100644 --- a/test.py +++ b/test.py @@ -9,14 +9,14 @@ from scipy.io import loadmat import csv # Our libs -from dataset import TestDataset -from models import ModelBuilder, SegmentationModule -from utils import colorEncode, find_recursive, setup_logger -from lib.nn import user_scattered_collate, async_copy_to -from lib.utils import as_numpy +from csail_semseg.dataset import TestDataset +from csail_semseg.models import ModelBuilder, SegmentationModule +from csail_semseg.utils import colorEncode, find_recursive, setup_logger +from csail_semseg.lib.nn import user_scattered_collate, async_copy_to +from csail_semseg.lib.utils import as_numpy from PIL import Image from tqdm import tqdm -from config import cfg +from csail_semseg.config import cfg colors = loadmat('data/color150.mat')['colors'] names = {} diff --git a/train.py b/train.py index 7f8a7562..269f7e93 100644 --- a/train.py +++ b/train.py @@ -9,11 +9,11 @@ import torch import torch.nn as nn # Our libs -from config import cfg -from dataset import TrainDataset -from models import ModelBuilder, SegmentationModule -from utils import AverageMeter, parse_devices, setup_logger -from lib.nn import UserScatteredDataParallel, user_scattered_collate, patch_replication_callback +from csail_semseg.config import cfg +from csail_semseg.dataset import TrainDataset +from csail_semseg.models import ModelBuilder, SegmentationModule +from csail_semseg.utils import AverageMeter, parse_devices, setup_logger +from csail_semseg.lib.nn import UserScatteredDataParallel, user_scattered_collate, patch_replication_callback # train one epoch From 5d695f9726b3c56598f4d372443d90a008ffc2d0 Mon Sep 17 00:00:00 2001 From: "Devin A. Conley" Date: Tue, 4 Feb 2020 16:46:43 -0600 Subject: [PATCH 2/3] rename package to mit_semseg --- eval.py | 12 ++++++------ eval_multipro.py | 12 ++++++------ {csail_semseg => mit_semseg}/__init__.py | 0 {csail_semseg => mit_semseg}/config/__init__.py | 0 {csail_semseg => mit_semseg}/config/defaults.py | 0 {csail_semseg => mit_semseg}/dataset.py | 0 {csail_semseg => mit_semseg}/lib/__init__.py | 0 {csail_semseg => mit_semseg}/lib/nn/__init__.py | 0 .../lib/nn/modules/__init__.py | 0 .../lib/nn/modules/batchnorm.py | 0 {csail_semseg => mit_semseg}/lib/nn/modules/comm.py | 0 .../lib/nn/modules/replicate.py | 0 .../lib/nn/modules/tests/__init__.py | 0 .../lib/nn/modules/tests/test_numeric_batchnorm.py | 0 .../lib/nn/modules/tests/test_sync_batchnorm.py | 0 .../lib/nn/modules/unittest.py | 0 .../lib/nn/parallel/__init__.py | 0 .../lib/nn/parallel/data_parallel.py | 0 {csail_semseg => mit_semseg}/lib/utils/__init__.py | 0 .../lib/utils/data/__init__.py | 0 .../lib/utils/data/dataloader.py | 0 .../lib/utils/data/dataset.py | 0 .../lib/utils/data/distributed.py | 0 .../lib/utils/data/sampler.py | 0 {csail_semseg => mit_semseg}/lib/utils/th.py | 0 {csail_semseg => mit_semseg}/models/__init__.py | 0 {csail_semseg => mit_semseg}/models/hrnet.py | 2 +- {csail_semseg => mit_semseg}/models/mobilenet.py | 2 +- {csail_semseg => mit_semseg}/models/models.py | 2 +- {csail_semseg => mit_semseg}/models/resnet.py | 2 +- {csail_semseg => mit_semseg}/models/resnext.py | 2 +- {csail_semseg => mit_semseg}/models/utils.py | 0 {csail_semseg => mit_semseg}/utils.py | 0 setup.py | 4 ++-- test.py | 12 ++++++------ train.py | 10 +++++----- 36 files changed, 30 insertions(+), 30 deletions(-) rename {csail_semseg => mit_semseg}/__init__.py (100%) rename {csail_semseg => mit_semseg}/config/__init__.py (100%) rename {csail_semseg => mit_semseg}/config/defaults.py (100%) rename {csail_semseg => mit_semseg}/dataset.py (100%) rename {csail_semseg => mit_semseg}/lib/__init__.py (100%) rename {csail_semseg => mit_semseg}/lib/nn/__init__.py (100%) rename {csail_semseg => mit_semseg}/lib/nn/modules/__init__.py (100%) rename {csail_semseg => mit_semseg}/lib/nn/modules/batchnorm.py (100%) rename {csail_semseg => mit_semseg}/lib/nn/modules/comm.py (100%) rename {csail_semseg => mit_semseg}/lib/nn/modules/replicate.py (100%) rename {csail_semseg => mit_semseg}/lib/nn/modules/tests/__init__.py (100%) rename {csail_semseg => mit_semseg}/lib/nn/modules/tests/test_numeric_batchnorm.py (100%) rename {csail_semseg => mit_semseg}/lib/nn/modules/tests/test_sync_batchnorm.py (100%) rename {csail_semseg => mit_semseg}/lib/nn/modules/unittest.py (100%) rename {csail_semseg => mit_semseg}/lib/nn/parallel/__init__.py (100%) rename {csail_semseg => mit_semseg}/lib/nn/parallel/data_parallel.py (100%) rename {csail_semseg => mit_semseg}/lib/utils/__init__.py (100%) rename {csail_semseg => mit_semseg}/lib/utils/data/__init__.py (100%) rename {csail_semseg => mit_semseg}/lib/utils/data/dataloader.py (100%) rename {csail_semseg => mit_semseg}/lib/utils/data/dataset.py (100%) rename {csail_semseg => mit_semseg}/lib/utils/data/distributed.py (100%) rename {csail_semseg => mit_semseg}/lib/utils/data/sampler.py (100%) rename {csail_semseg => mit_semseg}/lib/utils/th.py (100%) rename {csail_semseg => mit_semseg}/models/__init__.py (100%) rename {csail_semseg => mit_semseg}/models/hrnet.py (99%) rename {csail_semseg => mit_semseg}/models/mobilenet.py (98%) rename {csail_semseg => mit_semseg}/models/models.py (99%) rename {csail_semseg => mit_semseg}/models/resnet.py (99%) rename {csail_semseg => mit_semseg}/models/resnext.py (98%) rename {csail_semseg => mit_semseg}/models/utils.py (100%) rename {csail_semseg => mit_semseg}/utils.py (100%) diff --git a/eval.py b/eval.py index 7499d985..b4a60ad7 100644 --- a/eval.py +++ b/eval.py @@ -9,12 +9,12 @@ import torch.nn as nn from scipy.io import loadmat # Our libs -from csail_semseg.config import cfg -from csail_semseg.dataset import ValDataset -from csail_semseg.models import ModelBuilder, SegmentationModule -from csail_semseg.utils import AverageMeter, colorEncode, accuracy, intersectionAndUnion, setup_logger -from csail_semseg.lib.nn import user_scattered_collate, async_copy_to -from csail_semseg.lib.utils import as_numpy +from mit_semseg.config import cfg +from mit_semseg.dataset import ValDataset +from mit_semseg.models import ModelBuilder, SegmentationModule +from mit_semseg.utils import AverageMeter, colorEncode, accuracy, intersectionAndUnion, setup_logger +from mit_semseg.lib.nn import user_scattered_collate, async_copy_to +from mit_semseg.lib.utils import as_numpy from PIL import Image from tqdm import tqdm diff --git a/eval_multipro.py b/eval_multipro.py index 8b191dd6..db328cd3 100644 --- a/eval_multipro.py +++ b/eval_multipro.py @@ -10,12 +10,12 @@ import torch.nn as nn from scipy.io import loadmat # Our libs -from csail_semseg.config import cfg -from csail_semseg.dataset import ValDataset -from csail_semseg.models import ModelBuilder, SegmentationModule -from csail_semseg.utils import AverageMeter, colorEncode, accuracy, intersectionAndUnion, parse_devices, setup_logger -from csail_semseg.lib.nn import user_scattered_collate, async_copy_to -from csail_semseg.lib.utils import as_numpy +from mit_semseg.config import cfg +from mit_semseg.dataset import ValDataset +from mit_semseg.models import ModelBuilder, SegmentationModule +from mit_semseg.utils import AverageMeter, colorEncode, accuracy, intersectionAndUnion, parse_devices, setup_logger +from mit_semseg.lib.nn import user_scattered_collate, async_copy_to +from mit_semseg.lib.utils import as_numpy from PIL import Image from tqdm import tqdm diff --git a/csail_semseg/__init__.py b/mit_semseg/__init__.py similarity index 100% rename from csail_semseg/__init__.py rename to mit_semseg/__init__.py diff --git a/csail_semseg/config/__init__.py b/mit_semseg/config/__init__.py similarity index 100% rename from csail_semseg/config/__init__.py rename to mit_semseg/config/__init__.py diff --git a/csail_semseg/config/defaults.py b/mit_semseg/config/defaults.py similarity index 100% rename from csail_semseg/config/defaults.py rename to mit_semseg/config/defaults.py diff --git a/csail_semseg/dataset.py b/mit_semseg/dataset.py similarity index 100% rename from csail_semseg/dataset.py rename to mit_semseg/dataset.py diff --git a/csail_semseg/lib/__init__.py b/mit_semseg/lib/__init__.py similarity index 100% rename from csail_semseg/lib/__init__.py rename to mit_semseg/lib/__init__.py diff --git a/csail_semseg/lib/nn/__init__.py b/mit_semseg/lib/nn/__init__.py similarity index 100% rename from csail_semseg/lib/nn/__init__.py rename to mit_semseg/lib/nn/__init__.py diff --git a/csail_semseg/lib/nn/modules/__init__.py b/mit_semseg/lib/nn/modules/__init__.py similarity index 100% rename from csail_semseg/lib/nn/modules/__init__.py rename to mit_semseg/lib/nn/modules/__init__.py diff --git a/csail_semseg/lib/nn/modules/batchnorm.py b/mit_semseg/lib/nn/modules/batchnorm.py similarity index 100% rename from csail_semseg/lib/nn/modules/batchnorm.py rename to mit_semseg/lib/nn/modules/batchnorm.py diff --git a/csail_semseg/lib/nn/modules/comm.py b/mit_semseg/lib/nn/modules/comm.py similarity index 100% rename from csail_semseg/lib/nn/modules/comm.py rename to mit_semseg/lib/nn/modules/comm.py diff --git a/csail_semseg/lib/nn/modules/replicate.py b/mit_semseg/lib/nn/modules/replicate.py similarity index 100% rename from csail_semseg/lib/nn/modules/replicate.py rename to mit_semseg/lib/nn/modules/replicate.py diff --git a/csail_semseg/lib/nn/modules/tests/__init__.py b/mit_semseg/lib/nn/modules/tests/__init__.py similarity index 100% rename from csail_semseg/lib/nn/modules/tests/__init__.py rename to mit_semseg/lib/nn/modules/tests/__init__.py diff --git a/csail_semseg/lib/nn/modules/tests/test_numeric_batchnorm.py b/mit_semseg/lib/nn/modules/tests/test_numeric_batchnorm.py similarity index 100% rename from csail_semseg/lib/nn/modules/tests/test_numeric_batchnorm.py rename to mit_semseg/lib/nn/modules/tests/test_numeric_batchnorm.py diff --git a/csail_semseg/lib/nn/modules/tests/test_sync_batchnorm.py b/mit_semseg/lib/nn/modules/tests/test_sync_batchnorm.py similarity index 100% rename from csail_semseg/lib/nn/modules/tests/test_sync_batchnorm.py rename to mit_semseg/lib/nn/modules/tests/test_sync_batchnorm.py diff --git a/csail_semseg/lib/nn/modules/unittest.py b/mit_semseg/lib/nn/modules/unittest.py similarity index 100% rename from csail_semseg/lib/nn/modules/unittest.py rename to mit_semseg/lib/nn/modules/unittest.py diff --git a/csail_semseg/lib/nn/parallel/__init__.py b/mit_semseg/lib/nn/parallel/__init__.py similarity index 100% rename from csail_semseg/lib/nn/parallel/__init__.py rename to mit_semseg/lib/nn/parallel/__init__.py diff --git a/csail_semseg/lib/nn/parallel/data_parallel.py b/mit_semseg/lib/nn/parallel/data_parallel.py similarity index 100% rename from csail_semseg/lib/nn/parallel/data_parallel.py rename to mit_semseg/lib/nn/parallel/data_parallel.py diff --git a/csail_semseg/lib/utils/__init__.py b/mit_semseg/lib/utils/__init__.py similarity index 100% rename from csail_semseg/lib/utils/__init__.py rename to mit_semseg/lib/utils/__init__.py diff --git a/csail_semseg/lib/utils/data/__init__.py b/mit_semseg/lib/utils/data/__init__.py similarity index 100% rename from csail_semseg/lib/utils/data/__init__.py rename to mit_semseg/lib/utils/data/__init__.py diff --git a/csail_semseg/lib/utils/data/dataloader.py b/mit_semseg/lib/utils/data/dataloader.py similarity index 100% rename from csail_semseg/lib/utils/data/dataloader.py rename to mit_semseg/lib/utils/data/dataloader.py diff --git a/csail_semseg/lib/utils/data/dataset.py b/mit_semseg/lib/utils/data/dataset.py similarity index 100% rename from csail_semseg/lib/utils/data/dataset.py rename to mit_semseg/lib/utils/data/dataset.py diff --git a/csail_semseg/lib/utils/data/distributed.py b/mit_semseg/lib/utils/data/distributed.py similarity index 100% rename from csail_semseg/lib/utils/data/distributed.py rename to mit_semseg/lib/utils/data/distributed.py diff --git a/csail_semseg/lib/utils/data/sampler.py b/mit_semseg/lib/utils/data/sampler.py similarity index 100% rename from csail_semseg/lib/utils/data/sampler.py rename to mit_semseg/lib/utils/data/sampler.py diff --git a/csail_semseg/lib/utils/th.py b/mit_semseg/lib/utils/th.py similarity index 100% rename from csail_semseg/lib/utils/th.py rename to mit_semseg/lib/utils/th.py diff --git a/csail_semseg/models/__init__.py b/mit_semseg/models/__init__.py similarity index 100% rename from csail_semseg/models/__init__.py rename to mit_semseg/models/__init__.py diff --git a/csail_semseg/models/hrnet.py b/mit_semseg/models/hrnet.py similarity index 99% rename from csail_semseg/models/hrnet.py rename to mit_semseg/models/hrnet.py index 071c09c0..79598924 100644 --- a/csail_semseg/models/hrnet.py +++ b/mit_semseg/models/hrnet.py @@ -8,7 +8,7 @@ import torch.nn as nn import torch.nn.functional as F from .utils import load_url -from csail_semseg.lib.nn import SynchronizedBatchNorm2d +from mit_semseg.lib.nn import SynchronizedBatchNorm2d BatchNorm2d = SynchronizedBatchNorm2d BN_MOMENTUM = 0.1 diff --git a/csail_semseg/models/mobilenet.py b/mit_semseg/models/mobilenet.py similarity index 98% rename from csail_semseg/models/mobilenet.py rename to mit_semseg/models/mobilenet.py index cb8b0faf..d44b5295 100644 --- a/csail_semseg/models/mobilenet.py +++ b/mit_semseg/models/mobilenet.py @@ -6,7 +6,7 @@ import torch.nn as nn import math from .utils import load_url -from csail_semseg.lib.nn import SynchronizedBatchNorm2d +from mit_semseg.lib.nn import SynchronizedBatchNorm2d BatchNorm2d = SynchronizedBatchNorm2d diff --git a/csail_semseg/models/models.py b/mit_semseg/models/models.py similarity index 99% rename from csail_semseg/models/models.py rename to mit_semseg/models/models.py index df078d6a..793d2bd7 100644 --- a/csail_semseg/models/models.py +++ b/mit_semseg/models/models.py @@ -1,7 +1,7 @@ import torch import torch.nn as nn from . import resnet, resnext, mobilenet, hrnet -from csail_semseg.lib.nn import SynchronizedBatchNorm2d +from mit_semseg.lib.nn import SynchronizedBatchNorm2d BatchNorm2d = SynchronizedBatchNorm2d diff --git a/csail_semseg/models/resnet.py b/mit_semseg/models/resnet.py similarity index 99% rename from csail_semseg/models/resnet.py rename to mit_semseg/models/resnet.py index 9dfad29b..19a4ece6 100644 --- a/csail_semseg/models/resnet.py +++ b/mit_semseg/models/resnet.py @@ -1,7 +1,7 @@ import torch.nn as nn import math from .utils import load_url -from csail_semseg.lib.nn import SynchronizedBatchNorm2d +from mit_semseg.lib.nn import SynchronizedBatchNorm2d BatchNorm2d = SynchronizedBatchNorm2d diff --git a/csail_semseg/models/resnext.py b/mit_semseg/models/resnext.py similarity index 98% rename from csail_semseg/models/resnext.py rename to mit_semseg/models/resnext.py index dee3c14f..b806b673 100644 --- a/csail_semseg/models/resnext.py +++ b/mit_semseg/models/resnext.py @@ -1,7 +1,7 @@ import torch.nn as nn import math from .utils import load_url -from csail_semseg.lib.nn import SynchronizedBatchNorm2d +from mit_semseg.lib.nn import SynchronizedBatchNorm2d BatchNorm2d = SynchronizedBatchNorm2d diff --git a/csail_semseg/models/utils.py b/mit_semseg/models/utils.py similarity index 100% rename from csail_semseg/models/utils.py rename to mit_semseg/models/utils.py diff --git a/csail_semseg/utils.py b/mit_semseg/utils.py similarity index 100% rename from csail_semseg/utils.py rename to mit_semseg/utils.py diff --git a/setup.py b/setup.py index e49590c3..9f1e21f9 100644 --- a/setup.py +++ b/setup.py @@ -4,9 +4,9 @@ long_description = fh.read() setuptools.setup( - name='csail_semseg', + name='mit_semseg', version='1.0.0', - author='CSAIL', + author='MIT CSAIL', description='Pytorch implementation for Semantic Segmentation/Scene Parsing on MIT ADE20K dataset', long_description=long_description, long_description_content_type='text/markdown', diff --git a/test.py b/test.py index c74ec899..b84f4cb4 100644 --- a/test.py +++ b/test.py @@ -9,14 +9,14 @@ from scipy.io import loadmat import csv # Our libs -from csail_semseg.dataset import TestDataset -from csail_semseg.models import ModelBuilder, SegmentationModule -from csail_semseg.utils import colorEncode, find_recursive, setup_logger -from csail_semseg.lib.nn import user_scattered_collate, async_copy_to -from csail_semseg.lib.utils import as_numpy +from mit_semseg.dataset import TestDataset +from mit_semseg.models import ModelBuilder, SegmentationModule +from mit_semseg.utils import colorEncode, find_recursive, setup_logger +from mit_semseg.lib.nn import user_scattered_collate, async_copy_to +from mit_semseg.lib.utils import as_numpy from PIL import Image from tqdm import tqdm -from csail_semseg.config import cfg +from mit_semseg.config import cfg colors = loadmat('data/color150.mat')['colors'] names = {} diff --git a/train.py b/train.py index 269f7e93..cfe3b3ee 100644 --- a/train.py +++ b/train.py @@ -9,11 +9,11 @@ import torch import torch.nn as nn # Our libs -from csail_semseg.config import cfg -from csail_semseg.dataset import TrainDataset -from csail_semseg.models import ModelBuilder, SegmentationModule -from csail_semseg.utils import AverageMeter, parse_devices, setup_logger -from csail_semseg.lib.nn import UserScatteredDataParallel, user_scattered_collate, patch_replication_callback +from mit_semseg.config import cfg +from mit_semseg.dataset import TrainDataset +from mit_semseg.models import ModelBuilder, SegmentationModule +from mit_semseg.utils import AverageMeter, parse_devices, setup_logger +from mit_semseg.lib.nn import UserScatteredDataParallel, user_scattered_collate, patch_replication_callback # train one epoch From 10f9af6b4ddd7322fc195dd5197b5b9c6475da81 Mon Sep 17 00:00:00 2001 From: "Devin A. Conley" Date: Tue, 4 Feb 2020 19:47:37 -0600 Subject: [PATCH 3/3] update readme --- README.md | 13 +++++++++++++ mit_semseg/__init__.py | 5 +++++ setup.py | 1 + 3 files changed, 19 insertions(+) diff --git a/README.md b/README.md index 7904b734..2e40d2ee 100644 --- a/README.md +++ b/README.md @@ -228,6 +228,19 @@ python3 eval_multipro.py --gpus GPUS --cfg config/ade20k-resnet50dilated-ppm_dee python3 eval_multipro.py --gpus GPUS --cfg config/ade20k-resnet101-upernet.yaml ``` +## Integration with other projects +This library can be installed via `pip` to easily integrate with another codebase +```bash +pip install git+https://github.com/CSAILVision/semantic-segmentation-pytorch.git@master +``` + +Now this library can easily be consumed programmatically. For example +```python +from mit_semseg.config import cfg +from mit_semseg.dataset import TestDataset +from mit_semseg.models import ModelBuilder, SegmentationModule +``` + ## Reference If you find the code or pre-trained models useful, please cite the following papers: diff --git a/mit_semseg/__init__.py b/mit_semseg/__init__.py index e69de29b..d6ccf2d5 100644 --- a/mit_semseg/__init__.py +++ b/mit_semseg/__init__.py @@ -0,0 +1,5 @@ +""" +MIT CSAIL Semantic Segmentation +""" + +__version__ = '1.0.0' diff --git a/setup.py b/setup.py index 9f1e21f9..06c804d7 100644 --- a/setup.py +++ b/setup.py @@ -23,6 +23,7 @@ 'torchvision', 'opencv-python', 'yacs', + 'scipy', 'tqdm' ] )