From 8154d79885b3649dcd1d644caa03c78c3ddab6ea Mon Sep 17 00:00:00 2001 From: Heegreis Date: Wed, 21 Sep 2022 11:54:50 +0800 Subject: [PATCH 1/4] add setup.py and import use imageclassification --- DeepLearningTemplate | 2 +- {src => imageclassification}/__init__.py | 0 {src => imageclassification}/data_preparation.py | 4 ++-- {src => imageclassification}/model.py | 4 ++-- {src => imageclassification}/predict.py | 8 ++++---- {src => imageclassification}/predict_gui.py | 8 ++++---- {src => imageclassification}/project_parameters.py | 3 +-- {src => imageclassification}/train.py | 8 ++++---- {src => imageclassification}/tuning.py | 6 +++--- {src => imageclassification}/utils.py | 0 main.py | 10 +++++----- setup.py | 7 +++++++ 12 files changed, 33 insertions(+), 27 deletions(-) rename {src => imageclassification}/__init__.py (100%) rename {src => imageclassification}/data_preparation.py (92%) rename {src => imageclassification}/model.py (98%) rename {src => imageclassification}/predict.py (91%) rename {src => imageclassification}/predict_gui.py (93%) rename {src => imageclassification}/project_parameters.py (69%) rename {src => imageclassification}/train.py (88%) rename {src => imageclassification}/tuning.py (96%) rename {src => imageclassification}/utils.py (100%) create mode 100644 setup.py diff --git a/DeepLearningTemplate b/DeepLearningTemplate index e4d1854..5fd4909 160000 --- a/DeepLearningTemplate +++ b/DeepLearningTemplate @@ -1 +1 @@ -Subproject commit e4d1854366dbb0205ce35d200324cc679ee6437d +Subproject commit 5fd4909934da2d3abb95f79417ce65d30220f917 diff --git a/src/__init__.py b/imageclassification/__init__.py similarity index 100% rename from src/__init__.py rename to imageclassification/__init__.py diff --git a/src/data_preparation.py b/imageclassification/data_preparation.py similarity index 92% rename from src/data_preparation.py rename to imageclassification/data_preparation.py index 344dc61..e18fb2b 100644 --- a/src/data_preparation.py +++ b/imageclassification/data_preparation.py @@ -1,6 +1,6 @@ # import -from src.project_parameters import ProjectParameters -from DeepLearningTemplate.data_preparation import MyMNIST, MyCIFAR10, MyImageFolder, ImageLightningDataModule +from imageclassification.project_parameters import ProjectParameters +from deeplearningtemplate.data_preparation import MyMNIST, MyCIFAR10, MyImageFolder, ImageLightningDataModule # def diff --git a/src/model.py b/imageclassification/model.py similarity index 98% rename from src/model.py rename to imageclassification/model.py index 86c8a01..dd700b7 100644 --- a/src/model.py +++ b/imageclassification/model.py @@ -1,6 +1,6 @@ # import -from src.project_parameters import ProjectParameters -from DeepLearningTemplate.model import BaseModel, load_from_checkpoint_for_supervised_model +from imageclassification.project_parameters import ProjectParameters +from deeplearningtemplate.model import BaseModel, load_from_checkpoint_for_supervised_model import timm from os.path import isfile import torch.nn as nn diff --git a/src/predict.py b/imageclassification/predict.py similarity index 91% rename from src/predict.py rename to imageclassification/predict.py index 9c224b7..7b749a9 100644 --- a/src/predict.py +++ b/imageclassification/predict.py @@ -1,9 +1,9 @@ # import -from src.project_parameters import ProjectParameters -from DeepLearningTemplate.predict import ImagePredictDataset -from src.model import create_model +from imageclassification.project_parameters import ProjectParameters +from deeplearningtemplate.predict import ImagePredictDataset +from imageclassification.model import create_model import torch -from DeepLearningTemplate.data_preparation import parse_transforms +from deeplearningtemplate.data_preparation import parse_transforms from typing import Any from os.path import isfile from PIL import Image diff --git a/src/predict_gui.py b/imageclassification/predict_gui.py similarity index 93% rename from src/predict_gui.py rename to imageclassification/predict_gui.py index 97e6e2e..42aebfb 100644 --- a/src/predict_gui.py +++ b/imageclassification/predict_gui.py @@ -1,9 +1,9 @@ # import -from src.project_parameters import ProjectParameters -from DeepLearningTemplate.predict_gui import BasePredictGUI -from src.predict import Predict +from imageclassification.project_parameters import ProjectParameters +from deeplearningtemplate.predict_gui import BasePredictGUI +from imageclassification.predict import Predict from PIL import Image, ImageTk -from DeepLearningTemplate.data_preparation import parse_transforms +from deeplearningtemplate.data_preparation import parse_transforms from tkinter import Label, messagebox import tkinter as tk import gradio as gr diff --git a/src/project_parameters.py b/imageclassification/project_parameters.py similarity index 69% rename from src/project_parameters.py rename to imageclassification/project_parameters.py index 4909bc9..f1f403b 100644 --- a/src/project_parameters.py +++ b/imageclassification/project_parameters.py @@ -1,8 +1,7 @@ # import import os import sys -sys.path.append(os.path.realpath('DeepLearningTemplate/')) -from DeepLearningTemplate.project_parameters import ProjectParameters +from deeplearningtemplate.project_parameters import ProjectParameters if __name__ == '__main__': # project parameters diff --git a/src/train.py b/imageclassification/train.py similarity index 88% rename from src/train.py rename to imageclassification/train.py index fed5352..c156a25 100644 --- a/src/train.py +++ b/imageclassification/train.py @@ -1,8 +1,8 @@ # import -from src.project_parameters import ProjectParameters -from DeepLearningTemplate.train import BaseTrain -from src.data_preparation import create_datamodule -from src.model import create_model +from imageclassification.project_parameters import ProjectParameters +from deeplearningtemplate.train import BaseTrain +from imageclassification.data_preparation import create_datamodule +from imageclassification.model import create_model from typing import Any from shutil import copy2 diff --git a/src/tuning.py b/imageclassification/tuning.py similarity index 96% rename from src/tuning.py rename to imageclassification/tuning.py index 9d32a42..4dea503 100644 --- a/src/tuning.py +++ b/imageclassification/tuning.py @@ -1,6 +1,6 @@ # import -from src.project_parameters import ProjectParameters -from DeepLearningTemplate.tuning import BaseTuning +from imageclassification.project_parameters import ProjectParameters +from deeplearningtemplate.tuning import BaseTuning from ray import tune from copy import deepcopy from typing import Any @@ -10,7 +10,7 @@ import ray from functools import partial from os.path import join -from src.train import Train +from imageclassification.train import Train # class diff --git a/src/utils.py b/imageclassification/utils.py similarity index 100% rename from src/utils.py rename to imageclassification/utils.py diff --git a/main.py b/main.py index 13f8870..d5a5e8f 100644 --- a/main.py +++ b/main.py @@ -1,8 +1,8 @@ # import -from src.project_parameters import ProjectParameters -from src.train import Train -from src.predict import Predict -from src.tuning import Tuning +from imageclassification.project_parameters import ProjectParameters +from imageclassification.train import Train +from imageclassification.predict import Predict +from imageclassification.tuning import Tuning # def @@ -21,7 +21,7 @@ def main(): result = Predict(project_parameters=project_parameters).predict( inputs=project_parameters.root) elif project_parameters.mode == 'predict_gui': - from src.predict_gui import PredictGUI + from imageclassification.predict_gui import PredictGUI result = PredictGUI(project_parameters=project_parameters).run() elif project_parameters.mode == 'tuning': result = Tuning(project_parameters=project_parameters, diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..fa417e6 --- /dev/null +++ b/setup.py @@ -0,0 +1,7 @@ +from setuptools import setup, find_packages + +setup( + name='ImageClassification', + version='0.0.1', + packages=find_packages(), +) From e65ad5af5f74896e0bf87aa14c5e9d3740651bd8 Mon Sep 17 00:00:00 2001 From: liuth Date: Fri, 23 Sep 2022 22:34:41 +0800 Subject: [PATCH 2/4] recover code of directly predict Image, update DeepLearningTemplate --- DeepLearningTemplate | 2 +- README.md | 1 + imageclassification/predict.py | 9 ++++++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/DeepLearningTemplate b/DeepLearningTemplate index 5fd4909..834f15e 160000 --- a/DeepLearningTemplate +++ b/DeepLearningTemplate @@ -1 +1 @@ -Subproject commit 5fd4909934da2d3abb95f79417ce65d30220f917 +Subproject commit 834f15eb1c30e051a667b41f824b877033165034 diff --git a/README.md b/README.md index c29d961..704460e 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ This repository is used for image classification task and provides training, pre ```bash pip install -r requirements.txt +pip install -e . ``` ## Prepare dataset diff --git a/imageclassification/predict.py b/imageclassification/predict.py index 7b749a9..c6be8bc 100644 --- a/imageclassification/predict.py +++ b/imageclassification/predict.py @@ -29,7 +29,14 @@ def __init__(self, project_parameters) -> None: def predict(self, inputs) -> Any: result = [] - if isfile(path=inputs): + if type(inputs) == Image.Image: + # the transformed sample dimension is (1, in_chans, width, height) + sample = self.transform(inputs)[None] + if self.device == 'cuda' and torch.cuda.is_available(): + sample = sample.cuda() + with torch.no_grad(): + result.append(self.model(sample).tolist()[0]) + elif isfile(path=inputs): # predict the file sample = self.loader(inputs).convert(self.color_space) # the transformed sample dimension is (1, in_chans, width, height) From a27c73470860784dde98835705be2221e2e7f7f7 Mon Sep 17 00:00:00 2001 From: liuth Date: Tue, 25 Oct 2022 09:56:45 +0800 Subject: [PATCH 3/4] fix requirements.txt, useless code --- DeepLearningTemplate | 2 +- imageclassification/predict.py | 2 -- requirements.txt | 2 ++ 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DeepLearningTemplate b/DeepLearningTemplate index 834f15e..c3123cc 160000 --- a/DeepLearningTemplate +++ b/DeepLearningTemplate @@ -1 +1 @@ -Subproject commit 834f15eb1c30e051a667b41f824b877033165034 +Subproject commit c3123ccd42a0cbda7796fca98a7b99814b79b02d diff --git a/imageclassification/predict.py b/imageclassification/predict.py index c6be8bc..efed561 100644 --- a/imageclassification/predict.py +++ b/imageclassification/predict.py @@ -64,8 +64,6 @@ def predict(self, inputs) -> Any: sample = sample.cuda() result.append(self.model(sample).tolist()) result = np.concatenate(result, 0) - print(', '.join(self.classes)) - print(result) return result diff --git a/requirements.txt b/requirements.txt index a455f4f..79f91f8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,6 +7,7 @@ pytorch_lightning==1.4.9 ray[tune]==1.9.1 ruamel.yaml==0.17.17 scikit_learn==1.0.2 +scipy==1.8.0 seaborn==0.11.2 timm==0.4.12 torch==1.10.1 @@ -15,3 +16,4 @@ torchmetrics==0.7.1 torchsummary==1.5.1 torchvision==0.11.2 tqdm==4.62.3 +albumentations==1.3.0 From 3f8c0e1071b2cb5965b88bf62194b7acddc6bbdd Mon Sep 17 00:00:00 2001 From: liuth Date: Wed, 12 Apr 2023 15:29:14 +0800 Subject: [PATCH 4/4] fix git submodule remote url --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index 0f25bb3..4053238 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "DeepLearningTemplate"] path = DeepLearningTemplate - url = https://github.com/fastyangmh/DeepLearningTemplate + url = https://github.com/Heegreis/DeepLearningTemplate