Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "DeepLearningTemplate"]
path = DeepLearningTemplate
url = https://github.com/fastyangmh/DeepLearningTemplate
url = https://github.com/Heegreis/DeepLearningTemplate
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -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
Expand Down
4 changes: 2 additions & 2 deletions src/model.py → imageclassification/model.py
Original file line number Diff line number Diff line change
@@ -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
Expand Down
19 changes: 12 additions & 7 deletions src/predict.py → imageclassification/predict.py
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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)
Expand Down Expand Up @@ -57,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


Expand Down
8 changes: 4 additions & 4 deletions src/predict_gui.py → imageclassification/predict_gui.py
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
8 changes: 4 additions & 4 deletions src/train.py → imageclassification/train.py
Original file line number Diff line number Diff line change
@@ -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

Expand Down
6 changes: 3 additions & 3 deletions src/tuning.py → imageclassification/tuning.py
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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
Expand Down
File renamed without changes.
10 changes: 5 additions & 5 deletions main.py
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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,
Expand Down
2 changes: 2 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -15,3 +16,4 @@ torchmetrics==0.7.1
torchsummary==1.5.1
torchvision==0.11.2
tqdm==4.62.3
albumentations==1.3.0
7 changes: 7 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from setuptools import setup, find_packages

setup(
name='ImageClassification',
version='0.0.1',
packages=find_packages(),
)