diff --git a/.github/workflows/check-code-format.yml b/.github/workflows/check-code-format.yml index 217c7304..b6cd42e4 100644 --- a/.github/workflows/check-code-format.yml +++ b/.github/workflows/check-code-format.yml @@ -20,5 +20,5 @@ jobs: repository: ${{ github.event.pull_request.head.repo.full_name }} - uses: chartboost/ruff-action@v1 with: - src: "./netspresso" + src: "./src/netspresso" version: 0.0.259 diff --git a/.github/workflows/pypi-package.yml b/.github/workflows/pypi-package.yml index 65650d27..d7c7016c 100644 --- a/.github/workflows/pypi-package.yml +++ b/.github/workflows/pypi-package.yml @@ -27,7 +27,7 @@ jobs: - name: Extract version in package run: | - VERSION_PKG=$(cat netspresso/VERSION) + VERSION_PKG=$(cat src/netspresso/VERSION) echo "VERSION_PKG=$VERSION_PKG" >> $GITHUB_ENV - name: Build a binary wheel if tag is valid diff --git a/pyproject.toml b/pyproject.toml index a88b0ed4..912405a7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,6 +21,6 @@ ignore = [ [tool.ruff.per-file-ignores] -"netspresso/__init__.py" = [ +"src/netspresso/__init__.py" = [ "F401", # "Imported but unused" ] diff --git a/setup.py b/setup.py index 54bcb653..5f5d8fb1 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import find_packages, setup -version = (Path("netspresso") / "VERSION").read_text().strip() +version = (Path("src/netspresso") / "VERSION").read_text().strip() long_description = Path("README.md").read_text(encoding="UTF8") @@ -18,8 +18,9 @@ long_description_content_type="text/markdown", url="https://github.com/Nota-NetsPresso/PyNetsPresso", install_requires=install_requires, - packages=find_packages(exclude=("tests",)), - package_data={"netspresso.clients": ["configs/*.ini"], "netspresso": ["VERSION"]}, + package_dir={"": "src"}, + packages=find_packages("src", exclude=("tests",)), + package_data={"clients": ["configs/*.ini"], "": ["VERSION"]}, python_requires=">=3.8", classifiers=[ "Intended Audience :: Developers", diff --git a/netspresso/benchmarker/v2/__init__.py b/src/__init__.py similarity index 100% rename from netspresso/benchmarker/v2/__init__.py rename to src/__init__.py diff --git a/netspresso/VERSION b/src/netspresso/VERSION similarity index 100% rename from netspresso/VERSION rename to src/netspresso/VERSION diff --git a/netspresso/__init__.py b/src/netspresso/__init__.py similarity index 100% rename from netspresso/__init__.py rename to src/netspresso/__init__.py diff --git a/netspresso/base.py b/src/netspresso/base.py similarity index 100% rename from netspresso/base.py rename to src/netspresso/base.py diff --git a/netspresso/benchmarker/__init__.py b/src/netspresso/benchmarker/__init__.py similarity index 100% rename from netspresso/benchmarker/__init__.py rename to src/netspresso/benchmarker/__init__.py diff --git a/netspresso/clients/__init__.py b/src/netspresso/benchmarker/v2/__init__.py similarity index 100% rename from netspresso/clients/__init__.py rename to src/netspresso/benchmarker/v2/__init__.py diff --git a/netspresso/benchmarker/v2/benchmarker.py b/src/netspresso/benchmarker/v2/benchmarker.py similarity index 100% rename from netspresso/benchmarker/v2/benchmarker.py rename to src/netspresso/benchmarker/v2/benchmarker.py diff --git a/netspresso/clients/auth/v2/__init__.py b/src/netspresso/clients/__init__.py similarity index 100% rename from netspresso/clients/auth/v2/__init__.py rename to src/netspresso/clients/__init__.py diff --git a/netspresso/clients/auth/__init__.py b/src/netspresso/clients/auth/__init__.py similarity index 100% rename from netspresso/clients/auth/__init__.py rename to src/netspresso/clients/auth/__init__.py diff --git a/netspresso/clients/auth/client.py b/src/netspresso/clients/auth/client.py similarity index 100% rename from netspresso/clients/auth/client.py rename to src/netspresso/clients/auth/client.py diff --git a/netspresso/clients/auth/request_body.py b/src/netspresso/clients/auth/request_body.py similarity index 100% rename from netspresso/clients/auth/request_body.py rename to src/netspresso/clients/auth/request_body.py diff --git a/netspresso/clients/auth/response_body.py b/src/netspresso/clients/auth/response_body.py similarity index 100% rename from netspresso/clients/auth/response_body.py rename to src/netspresso/clients/auth/response_body.py diff --git a/netspresso/clients/auth/v2/schemas/__init__.py b/src/netspresso/clients/auth/v2/__init__.py similarity index 100% rename from netspresso/clients/auth/v2/schemas/__init__.py rename to src/netspresso/clients/auth/v2/__init__.py diff --git a/netspresso/clients/auth/v2/client.py b/src/netspresso/clients/auth/v2/client.py similarity index 100% rename from netspresso/clients/auth/v2/client.py rename to src/netspresso/clients/auth/v2/client.py diff --git a/netspresso/clients/compressor/v2/__init__.py b/src/netspresso/clients/auth/v2/schemas/__init__.py similarity index 100% rename from netspresso/clients/compressor/v2/__init__.py rename to src/netspresso/clients/auth/v2/schemas/__init__.py diff --git a/netspresso/clients/auth/v2/schemas/auth.py b/src/netspresso/clients/auth/v2/schemas/auth.py similarity index 100% rename from netspresso/clients/auth/v2/schemas/auth.py rename to src/netspresso/clients/auth/v2/schemas/auth.py diff --git a/netspresso/clients/auth/v2/schemas/common.py b/src/netspresso/clients/auth/v2/schemas/common.py similarity index 100% rename from netspresso/clients/auth/v2/schemas/common.py rename to src/netspresso/clients/auth/v2/schemas/common.py diff --git a/netspresso/clients/auth/v2/schemas/credit.py b/src/netspresso/clients/auth/v2/schemas/credit.py similarity index 100% rename from netspresso/clients/auth/v2/schemas/credit.py rename to src/netspresso/clients/auth/v2/schemas/credit.py diff --git a/netspresso/clients/auth/v2/schemas/token.py b/src/netspresso/clients/auth/v2/schemas/token.py similarity index 100% rename from netspresso/clients/auth/v2/schemas/token.py rename to src/netspresso/clients/auth/v2/schemas/token.py diff --git a/netspresso/clients/auth/v2/schemas/user.py b/src/netspresso/clients/auth/v2/schemas/user.py similarity index 100% rename from netspresso/clients/auth/v2/schemas/user.py rename to src/netspresso/clients/auth/v2/schemas/user.py diff --git a/netspresso/clients/auth/v2/schemas/user_agreement.py b/src/netspresso/clients/auth/v2/schemas/user_agreement.py similarity index 100% rename from netspresso/clients/auth/v2/schemas/user_agreement.py rename to src/netspresso/clients/auth/v2/schemas/user_agreement.py diff --git a/netspresso/clients/compressor/__init__.py b/src/netspresso/clients/compressor/__init__.py similarity index 100% rename from netspresso/clients/compressor/__init__.py rename to src/netspresso/clients/compressor/__init__.py diff --git a/netspresso/compressor/utils/__init__.py b/src/netspresso/clients/compressor/v2/__init__.py similarity index 100% rename from netspresso/compressor/utils/__init__.py rename to src/netspresso/clients/compressor/v2/__init__.py diff --git a/netspresso/clients/compressor/v2/main.py b/src/netspresso/clients/compressor/v2/main.py similarity index 100% rename from netspresso/clients/compressor/v2/main.py rename to src/netspresso/clients/compressor/v2/main.py diff --git a/netspresso/clients/compressor/v2/schemas/__init__.py b/src/netspresso/clients/compressor/v2/schemas/__init__.py similarity index 100% rename from netspresso/clients/compressor/v2/schemas/__init__.py rename to src/netspresso/clients/compressor/v2/schemas/__init__.py diff --git a/netspresso/clients/compressor/v2/schemas/common.py b/src/netspresso/clients/compressor/v2/schemas/common.py similarity index 100% rename from netspresso/clients/compressor/v2/schemas/common.py rename to src/netspresso/clients/compressor/v2/schemas/common.py diff --git a/netspresso/clients/compressor/v2/schemas/compression/__init__.py b/src/netspresso/clients/compressor/v2/schemas/compression/__init__.py similarity index 100% rename from netspresso/clients/compressor/v2/schemas/compression/__init__.py rename to src/netspresso/clients/compressor/v2/schemas/compression/__init__.py diff --git a/netspresso/clients/compressor/v2/schemas/compression/base.py b/src/netspresso/clients/compressor/v2/schemas/compression/base.py similarity index 100% rename from netspresso/clients/compressor/v2/schemas/compression/base.py rename to src/netspresso/clients/compressor/v2/schemas/compression/base.py diff --git a/netspresso/clients/compressor/v2/schemas/compression/request_body.py b/src/netspresso/clients/compressor/v2/schemas/compression/request_body.py similarity index 100% rename from netspresso/clients/compressor/v2/schemas/compression/request_body.py rename to src/netspresso/clients/compressor/v2/schemas/compression/request_body.py diff --git a/netspresso/clients/compressor/v2/schemas/compression/response_body.py b/src/netspresso/clients/compressor/v2/schemas/compression/response_body.py similarity index 100% rename from netspresso/clients/compressor/v2/schemas/compression/response_body.py rename to src/netspresso/clients/compressor/v2/schemas/compression/response_body.py diff --git a/netspresso/clients/compressor/v2/schemas/model/__init__.py b/src/netspresso/clients/compressor/v2/schemas/model/__init__.py similarity index 100% rename from netspresso/clients/compressor/v2/schemas/model/__init__.py rename to src/netspresso/clients/compressor/v2/schemas/model/__init__.py diff --git a/netspresso/clients/compressor/v2/schemas/model/base.py b/src/netspresso/clients/compressor/v2/schemas/model/base.py similarity index 100% rename from netspresso/clients/compressor/v2/schemas/model/base.py rename to src/netspresso/clients/compressor/v2/schemas/model/base.py diff --git a/netspresso/clients/compressor/v2/schemas/model/request_body.py b/src/netspresso/clients/compressor/v2/schemas/model/request_body.py similarity index 100% rename from netspresso/clients/compressor/v2/schemas/model/request_body.py rename to src/netspresso/clients/compressor/v2/schemas/model/request_body.py diff --git a/netspresso/clients/compressor/v2/schemas/model/response_body.py b/src/netspresso/clients/compressor/v2/schemas/model/response_body.py similarity index 100% rename from netspresso/clients/compressor/v2/schemas/model/response_body.py rename to src/netspresso/clients/compressor/v2/schemas/model/response_body.py diff --git a/netspresso/clients/config.py b/src/netspresso/clients/config.py similarity index 100% rename from netspresso/clients/config.py rename to src/netspresso/clients/config.py diff --git a/netspresso/clients/configs/config-v2-prod-cloud.ini b/src/netspresso/clients/configs/config-v2-prod-cloud.ini similarity index 100% rename from netspresso/clients/configs/config-v2-prod-cloud.ini rename to src/netspresso/clients/configs/config-v2-prod-cloud.ini diff --git a/netspresso/clients/launcher/__init__.py b/src/netspresso/clients/launcher/__init__.py similarity index 100% rename from netspresso/clients/launcher/__init__.py rename to src/netspresso/clients/launcher/__init__.py diff --git a/netspresso/clients/launcher/v2/__init__.py b/src/netspresso/clients/launcher/v2/__init__.py similarity index 100% rename from netspresso/clients/launcher/v2/__init__.py rename to src/netspresso/clients/launcher/v2/__init__.py diff --git a/netspresso/clients/launcher/v2/benchmarker.py b/src/netspresso/clients/launcher/v2/benchmarker.py similarity index 100% rename from netspresso/clients/launcher/v2/benchmarker.py rename to src/netspresso/clients/launcher/v2/benchmarker.py diff --git a/netspresso/clients/launcher/v2/converter.py b/src/netspresso/clients/launcher/v2/converter.py similarity index 100% rename from netspresso/clients/launcher/v2/converter.py rename to src/netspresso/clients/launcher/v2/converter.py diff --git a/netspresso/clients/launcher/v2/implements/__init__.py b/src/netspresso/clients/launcher/v2/implements/__init__.py similarity index 100% rename from netspresso/clients/launcher/v2/implements/__init__.py rename to src/netspresso/clients/launcher/v2/implements/__init__.py diff --git a/netspresso/clients/launcher/v2/implements/model/__init__.py b/src/netspresso/clients/launcher/v2/implements/model/__init__.py similarity index 100% rename from netspresso/clients/launcher/v2/implements/model/__init__.py rename to src/netspresso/clients/launcher/v2/implements/model/__init__.py diff --git a/netspresso/clients/launcher/v2/implements/model/model.py b/src/netspresso/clients/launcher/v2/implements/model/model.py similarity index 100% rename from netspresso/clients/launcher/v2/implements/model/model.py rename to src/netspresso/clients/launcher/v2/implements/model/model.py diff --git a/netspresso/clients/launcher/v2/implements/task/__init__.py b/src/netspresso/clients/launcher/v2/implements/task/__init__.py similarity index 100% rename from netspresso/clients/launcher/v2/implements/task/__init__.py rename to src/netspresso/clients/launcher/v2/implements/task/__init__.py diff --git a/netspresso/clients/launcher/v2/implements/task/benchmark_task.py b/src/netspresso/clients/launcher/v2/implements/task/benchmark_task.py similarity index 100% rename from netspresso/clients/launcher/v2/implements/task/benchmark_task.py rename to src/netspresso/clients/launcher/v2/implements/task/benchmark_task.py diff --git a/netspresso/clients/launcher/v2/implements/task/convert_task.py b/src/netspresso/clients/launcher/v2/implements/task/convert_task.py similarity index 100% rename from netspresso/clients/launcher/v2/implements/task/convert_task.py rename to src/netspresso/clients/launcher/v2/implements/task/convert_task.py diff --git a/netspresso/clients/launcher/v2/implements/task/quantize_task.py b/src/netspresso/clients/launcher/v2/implements/task/quantize_task.py similarity index 100% rename from netspresso/clients/launcher/v2/implements/task/quantize_task.py rename to src/netspresso/clients/launcher/v2/implements/task/quantize_task.py diff --git a/netspresso/clients/launcher/v2/interfaces/__init__.py b/src/netspresso/clients/launcher/v2/interfaces/__init__.py similarity index 100% rename from netspresso/clients/launcher/v2/interfaces/__init__.py rename to src/netspresso/clients/launcher/v2/interfaces/__init__.py diff --git a/netspresso/clients/launcher/v2/interfaces/model.py b/src/netspresso/clients/launcher/v2/interfaces/model.py similarity index 100% rename from netspresso/clients/launcher/v2/interfaces/model.py rename to src/netspresso/clients/launcher/v2/interfaces/model.py diff --git a/netspresso/clients/launcher/v2/interfaces/task.py b/src/netspresso/clients/launcher/v2/interfaces/task.py similarity index 100% rename from netspresso/clients/launcher/v2/interfaces/task.py rename to src/netspresso/clients/launcher/v2/interfaces/task.py diff --git a/netspresso/clients/launcher/v2/main.py b/src/netspresso/clients/launcher/v2/main.py similarity index 100% rename from netspresso/clients/launcher/v2/main.py rename to src/netspresso/clients/launcher/v2/main.py diff --git a/netspresso/clients/launcher/v2/quantizer.py b/src/netspresso/clients/launcher/v2/quantizer.py similarity index 100% rename from netspresso/clients/launcher/v2/quantizer.py rename to src/netspresso/clients/launcher/v2/quantizer.py diff --git a/netspresso/clients/launcher/v2/schemas/__init__.py b/src/netspresso/clients/launcher/v2/schemas/__init__.py similarity index 100% rename from netspresso/clients/launcher/v2/schemas/__init__.py rename to src/netspresso/clients/launcher/v2/schemas/__init__.py diff --git a/netspresso/clients/launcher/v2/schemas/common.py b/src/netspresso/clients/launcher/v2/schemas/common.py similarity index 100% rename from netspresso/clients/launcher/v2/schemas/common.py rename to src/netspresso/clients/launcher/v2/schemas/common.py diff --git a/netspresso/clients/launcher/v2/schemas/model/__init__.py b/src/netspresso/clients/launcher/v2/schemas/model/__init__.py similarity index 100% rename from netspresso/clients/launcher/v2/schemas/model/__init__.py rename to src/netspresso/clients/launcher/v2/schemas/model/__init__.py diff --git a/netspresso/clients/launcher/v2/schemas/model/base.py b/src/netspresso/clients/launcher/v2/schemas/model/base.py similarity index 100% rename from netspresso/clients/launcher/v2/schemas/model/base.py rename to src/netspresso/clients/launcher/v2/schemas/model/base.py diff --git a/netspresso/clients/launcher/v2/schemas/model/request_body.py b/src/netspresso/clients/launcher/v2/schemas/model/request_body.py similarity index 100% rename from netspresso/clients/launcher/v2/schemas/model/request_body.py rename to src/netspresso/clients/launcher/v2/schemas/model/request_body.py diff --git a/netspresso/clients/launcher/v2/schemas/model/response_body.py b/src/netspresso/clients/launcher/v2/schemas/model/response_body.py similarity index 100% rename from netspresso/clients/launcher/v2/schemas/model/response_body.py rename to src/netspresso/clients/launcher/v2/schemas/model/response_body.py diff --git a/netspresso/clients/launcher/v2/schemas/task/__init__.py b/src/netspresso/clients/launcher/v2/schemas/task/__init__.py similarity index 100% rename from netspresso/clients/launcher/v2/schemas/task/__init__.py rename to src/netspresso/clients/launcher/v2/schemas/task/__init__.py diff --git a/netspresso/clients/launcher/v2/schemas/task/benchmark/__init__.py b/src/netspresso/clients/launcher/v2/schemas/task/benchmark/__init__.py similarity index 100% rename from netspresso/clients/launcher/v2/schemas/task/benchmark/__init__.py rename to src/netspresso/clients/launcher/v2/schemas/task/benchmark/__init__.py diff --git a/netspresso/clients/launcher/v2/schemas/task/benchmark/request_body.py b/src/netspresso/clients/launcher/v2/schemas/task/benchmark/request_body.py similarity index 100% rename from netspresso/clients/launcher/v2/schemas/task/benchmark/request_body.py rename to src/netspresso/clients/launcher/v2/schemas/task/benchmark/request_body.py diff --git a/netspresso/clients/launcher/v2/schemas/task/benchmark/response_body.py b/src/netspresso/clients/launcher/v2/schemas/task/benchmark/response_body.py similarity index 100% rename from netspresso/clients/launcher/v2/schemas/task/benchmark/response_body.py rename to src/netspresso/clients/launcher/v2/schemas/task/benchmark/response_body.py diff --git a/netspresso/clients/launcher/v2/schemas/task/common.py b/src/netspresso/clients/launcher/v2/schemas/task/common.py similarity index 100% rename from netspresso/clients/launcher/v2/schemas/task/common.py rename to src/netspresso/clients/launcher/v2/schemas/task/common.py diff --git a/netspresso/clients/launcher/v2/schemas/task/convert/__init__.py b/src/netspresso/clients/launcher/v2/schemas/task/convert/__init__.py similarity index 100% rename from netspresso/clients/launcher/v2/schemas/task/convert/__init__.py rename to src/netspresso/clients/launcher/v2/schemas/task/convert/__init__.py diff --git a/netspresso/clients/launcher/v2/schemas/task/convert/request_body.py b/src/netspresso/clients/launcher/v2/schemas/task/convert/request_body.py similarity index 100% rename from netspresso/clients/launcher/v2/schemas/task/convert/request_body.py rename to src/netspresso/clients/launcher/v2/schemas/task/convert/request_body.py diff --git a/netspresso/clients/launcher/v2/schemas/task/convert/response_body.py b/src/netspresso/clients/launcher/v2/schemas/task/convert/response_body.py similarity index 100% rename from netspresso/clients/launcher/v2/schemas/task/convert/response_body.py rename to src/netspresso/clients/launcher/v2/schemas/task/convert/response_body.py diff --git a/netspresso/clients/launcher/v2/schemas/task/quantize/__init__.py b/src/netspresso/clients/launcher/v2/schemas/task/quantize/__init__.py similarity index 100% rename from netspresso/clients/launcher/v2/schemas/task/quantize/__init__.py rename to src/netspresso/clients/launcher/v2/schemas/task/quantize/__init__.py diff --git a/netspresso/clients/launcher/v2/schemas/task/quantize/request_body.py b/src/netspresso/clients/launcher/v2/schemas/task/quantize/request_body.py similarity index 100% rename from netspresso/clients/launcher/v2/schemas/task/quantize/request_body.py rename to src/netspresso/clients/launcher/v2/schemas/task/quantize/request_body.py diff --git a/netspresso/clients/launcher/v2/schemas/task/quantize/response_body.py b/src/netspresso/clients/launcher/v2/schemas/task/quantize/response_body.py similarity index 100% rename from netspresso/clients/launcher/v2/schemas/task/quantize/response_body.py rename to src/netspresso/clients/launcher/v2/schemas/task/quantize/response_body.py diff --git a/netspresso/clients/launcher/v2/utils.py b/src/netspresso/clients/launcher/v2/utils.py similarity index 100% rename from netspresso/clients/launcher/v2/utils.py rename to src/netspresso/clients/launcher/v2/utils.py diff --git a/netspresso/clients/tao/__init__.py b/src/netspresso/clients/tao/__init__.py similarity index 100% rename from netspresso/clients/tao/__init__.py rename to src/netspresso/clients/tao/__init__.py diff --git a/netspresso/clients/tao/auth.py b/src/netspresso/clients/tao/auth.py similarity index 100% rename from netspresso/clients/tao/auth.py rename to src/netspresso/clients/tao/auth.py diff --git a/netspresso/clients/tao/dataset.py b/src/netspresso/clients/tao/dataset.py similarity index 100% rename from netspresso/clients/tao/dataset.py rename to src/netspresso/clients/tao/dataset.py diff --git a/netspresso/clients/tao/experiment.py b/src/netspresso/clients/tao/experiment.py similarity index 100% rename from netspresso/clients/tao/experiment.py rename to src/netspresso/clients/tao/experiment.py diff --git a/netspresso/clients/tao/main.py b/src/netspresso/clients/tao/main.py similarity index 100% rename from netspresso/clients/tao/main.py rename to src/netspresso/clients/tao/main.py diff --git a/netspresso/clients/utils/__init__.py b/src/netspresso/clients/utils/__init__.py similarity index 100% rename from netspresso/clients/utils/__init__.py rename to src/netspresso/clients/utils/__init__.py diff --git a/netspresso/clients/utils/common.py b/src/netspresso/clients/utils/common.py similarity index 100% rename from netspresso/clients/utils/common.py rename to src/netspresso/clients/utils/common.py diff --git a/netspresso/clients/utils/requester.py b/src/netspresso/clients/utils/requester.py similarity index 100% rename from netspresso/clients/utils/requester.py rename to src/netspresso/clients/utils/requester.py diff --git a/netspresso/clients/utils/system.py b/src/netspresso/clients/utils/system.py similarity index 100% rename from netspresso/clients/utils/system.py rename to src/netspresso/clients/utils/system.py diff --git a/netspresso/compressor/__init__.py b/src/netspresso/compressor/__init__.py similarity index 100% rename from netspresso/compressor/__init__.py rename to src/netspresso/compressor/__init__.py diff --git a/netspresso/compressor/v2/__init__.py b/src/netspresso/compressor/utils/__init__.py similarity index 100% rename from netspresso/compressor/v2/__init__.py rename to src/netspresso/compressor/utils/__init__.py diff --git a/netspresso/compressor/utils/onnx.py b/src/netspresso/compressor/utils/onnx.py similarity index 100% rename from netspresso/compressor/utils/onnx.py rename to src/netspresso/compressor/utils/onnx.py diff --git a/netspresso/converter/v2/__init__.py b/src/netspresso/compressor/v2/__init__.py similarity index 100% rename from netspresso/converter/v2/__init__.py rename to src/netspresso/compressor/v2/__init__.py diff --git a/netspresso/compressor/v2/compressor.py b/src/netspresso/compressor/v2/compressor.py similarity index 100% rename from netspresso/compressor/v2/compressor.py rename to src/netspresso/compressor/v2/compressor.py diff --git a/netspresso/converter/__init__.py b/src/netspresso/converter/__init__.py similarity index 100% rename from netspresso/converter/__init__.py rename to src/netspresso/converter/__init__.py diff --git a/netspresso/exceptions/__init__.py b/src/netspresso/converter/v2/__init__.py similarity index 100% rename from netspresso/exceptions/__init__.py rename to src/netspresso/converter/v2/__init__.py diff --git a/netspresso/converter/v2/converter.py b/src/netspresso/converter/v2/converter.py similarity index 100% rename from netspresso/converter/v2/converter.py rename to src/netspresso/converter/v2/converter.py diff --git a/netspresso/enums/__init__.py b/src/netspresso/enums/__init__.py similarity index 100% rename from netspresso/enums/__init__.py rename to src/netspresso/enums/__init__.py diff --git a/netspresso/enums/compression.py b/src/netspresso/enums/compression.py similarity index 100% rename from netspresso/enums/compression.py rename to src/netspresso/enums/compression.py diff --git a/netspresso/enums/config.py b/src/netspresso/enums/config.py similarity index 100% rename from netspresso/enums/config.py rename to src/netspresso/enums/config.py diff --git a/netspresso/enums/credit.py b/src/netspresso/enums/credit.py similarity index 100% rename from netspresso/enums/credit.py rename to src/netspresso/enums/credit.py diff --git a/netspresso/enums/data.py b/src/netspresso/enums/data.py similarity index 100% rename from netspresso/enums/data.py rename to src/netspresso/enums/data.py diff --git a/netspresso/enums/device.py b/src/netspresso/enums/device.py similarity index 100% rename from netspresso/enums/device.py rename to src/netspresso/enums/device.py diff --git a/netspresso/enums/inference.py b/src/netspresso/enums/inference.py similarity index 100% rename from netspresso/enums/inference.py rename to src/netspresso/enums/inference.py diff --git a/netspresso/enums/metadata.py b/src/netspresso/enums/metadata.py similarity index 100% rename from netspresso/enums/metadata.py rename to src/netspresso/enums/metadata.py diff --git a/netspresso/enums/model.py b/src/netspresso/enums/model.py similarity index 100% rename from netspresso/enums/model.py rename to src/netspresso/enums/model.py diff --git a/netspresso/enums/module.py b/src/netspresso/enums/module.py similarity index 100% rename from netspresso/enums/module.py rename to src/netspresso/enums/module.py diff --git a/netspresso/enums/quantize.py b/src/netspresso/enums/quantize.py similarity index 100% rename from netspresso/enums/quantize.py rename to src/netspresso/enums/quantize.py diff --git a/netspresso/enums/tao/__init__.py b/src/netspresso/enums/tao/__init__.py similarity index 100% rename from netspresso/enums/tao/__init__.py rename to src/netspresso/enums/tao/__init__.py diff --git a/netspresso/enums/tao/action.py b/src/netspresso/enums/tao/action.py similarity index 100% rename from netspresso/enums/tao/action.py rename to src/netspresso/enums/tao/action.py diff --git a/netspresso/enums/tao/experiment.py b/src/netspresso/enums/tao/experiment.py similarity index 100% rename from netspresso/enums/tao/experiment.py rename to src/netspresso/enums/tao/experiment.py diff --git a/netspresso/enums/task.py b/src/netspresso/enums/task.py similarity index 100% rename from netspresso/enums/task.py rename to src/netspresso/enums/task.py diff --git a/netspresso/enums/train.py b/src/netspresso/enums/train.py similarity index 100% rename from netspresso/enums/train.py rename to src/netspresso/enums/train.py diff --git a/netspresso/inferencer/postprocessors/__init__.py b/src/netspresso/exceptions/__init__.py similarity index 100% rename from netspresso/inferencer/postprocessors/__init__.py rename to src/netspresso/exceptions/__init__.py diff --git a/netspresso/exceptions/common.py b/src/netspresso/exceptions/common.py similarity index 100% rename from netspresso/exceptions/common.py rename to src/netspresso/exceptions/common.py diff --git a/netspresso/exceptions/compressor.py b/src/netspresso/exceptions/compressor.py similarity index 100% rename from netspresso/exceptions/compressor.py rename to src/netspresso/exceptions/compressor.py diff --git a/netspresso/exceptions/inferencer.py b/src/netspresso/exceptions/inferencer.py similarity index 100% rename from netspresso/exceptions/inferencer.py rename to src/netspresso/exceptions/inferencer.py diff --git a/netspresso/exceptions/trainer.py b/src/netspresso/exceptions/trainer.py similarity index 100% rename from netspresso/exceptions/trainer.py rename to src/netspresso/exceptions/trainer.py diff --git a/netspresso/inferencer/__init__.py b/src/netspresso/inferencer/__init__.py similarity index 100% rename from netspresso/inferencer/__init__.py rename to src/netspresso/inferencer/__init__.py diff --git a/netspresso/inferencer/inferencer.py b/src/netspresso/inferencer/inferencer.py similarity index 100% rename from netspresso/inferencer/inferencer.py rename to src/netspresso/inferencer/inferencer.py diff --git a/netspresso/inferencer/preprocessors/__init__.py b/src/netspresso/inferencer/postprocessors/__init__.py similarity index 100% rename from netspresso/inferencer/preprocessors/__init__.py rename to src/netspresso/inferencer/postprocessors/__init__.py diff --git a/netspresso/inferencer/postprocessors/classification.py b/src/netspresso/inferencer/postprocessors/classification.py similarity index 100% rename from netspresso/inferencer/postprocessors/classification.py rename to src/netspresso/inferencer/postprocessors/classification.py diff --git a/netspresso/inferencer/postprocessors/detection.py b/src/netspresso/inferencer/postprocessors/detection.py similarity index 97% rename from netspresso/inferencer/postprocessors/detection.py rename to src/netspresso/inferencer/postprocessors/detection.py index f5ea8a75..66efe97c 100644 --- a/netspresso/inferencer/postprocessors/detection.py +++ b/src/netspresso/inferencer/postprocessors/detection.py @@ -1,124 +1,124 @@ -from functools import partial - -import numpy as np - - -def anchor_free_decoupled_head_decode(pred, original_shape, score_thresh=0.7): - pred = pred['pred'] - stage_strides= [original_shape[-1] // o.shape[-1] for o in pred] - - hw = [x.shape[-2:] for x in pred] - dim_len = pred[0].shape[1] - - pred = np.concatenate([x.reshape(1, dim_len, -1) for x in pred], axis=2).transpose(0, 2, 1) - pred[..., 4:] = 1 / (1 + (np.exp(-pred[..., 4:]))) - - grids = [] - strides = [] - for (hsize, wsize), stride in zip(hw, stage_strides): - yv, xv = np.meshgrid(np.arange(hsize, dtype='float32'), np.arange(wsize, dtype='float32'), indexing='ij') - grid = np.stack((xv, yv), 2).reshape(1, -1, 2) - grids.append(grid) - shape = grid.shape[:2] - strides.append(np.full((*shape, 1), stride, dtype='float32')) - - grids = np.concatenate(grids, axis=1) - strides = np.concatenate(strides, axis=1) - - pred = np.concatenate([ - (pred[..., 0:2] + grids) * strides, - np.exp(pred[..., 2:4]) * strides, - pred[..., 4:] - ], axis=-1) - - box_corner = np.empty(pred.shape) - box_corner[:, :, 0] = pred[:, :, 0] - pred[:, :, 2] / 2 - box_corner[:, :, 1] = pred[:, :, 1] - pred[:, :, 3] / 2 - box_corner[:, :, 2] = pred[:, :, 0] + pred[:, :, 2] / 2 - box_corner[:, :, 3] = pred[:, :, 1] + pred[:, :, 3] / 2 - pred[:, :, :4] = box_corner[:, :, :4] - - # Discard boxes with low score - detections = [] - for p in pred: - class_pred = np.argmax(p[:, 5:], 1, keepdims=True) - class_conf = p[np.arange(p.shape[0]), 5+class_pred.squeeze()][:, np.newaxis] - - conf_mask = (p[:, 4] * class_conf.squeeze() >= score_thresh).squeeze() - - # x1, y1, x2, y2, obj_conf, pred_score, pred_label - detections.append( - np.concatenate((p[:, :5], class_conf, class_pred), axis=1)[conf_mask] - ) - - return detections - -def nms_fast_rcnn(dets, scores, thresh): - ''' - dets is a numpy array : num_dets, 4 - scores ia nump array : num_dets, - ''' - x1 = dets[:, 0] - y1 = dets[:, 1] - x2 = dets[:, 2] - y2 = dets[:, 3] - - areas = (x2 - x1 + 1) * (y2 - y1 + 1) - order = scores.argsort()[::-1] # get boxes with more ious first - - keep = [] - while order.size > 0: - i = order[0] # pick maxmum iou box - keep.append(i) - xx1 = np.maximum(x1[i], x1[order[1:]]) - yy1 = np.maximum(y1[i], y1[order[1:]]) - xx2 = np.minimum(x2[i], x2[order[1:]]) - yy2 = np.minimum(y2[i], y2[order[1:]]) - - w = np.maximum(0.0, xx2 - xx1 + 1) # maximum width - h = np.maximum(0.0, yy2 - yy1 + 1) # maxiumum height - inter = w * h - ovr = inter / (areas[i] + areas[order[1:]] - inter) - - inds = np.where(ovr <= thresh)[0] - order = order[inds + 1] - - return keep - -def nms(prediction, nms_thresh=0.45): - output = [np.zeros((0, 7)) for _ in range(len(prediction))] - for i, image_pred in enumerate(prediction): - - # If none are remaining => process next image - if not image_pred.shape[0]: - continue - - nms_out_index = nms_fast_rcnn( - image_pred[:, :4], - image_pred[:, 4] * image_pred[:, 5], - nms_thresh, - ) - - image_pred = image_pred[nms_out_index] - output[i] = np.concatenate((output[i], image_pred)) - - return output - - -class DetectionPostprocessor: - def __init__(self, score_thresh, nms_thresh): - self.decode_outputs = partial(anchor_free_decoupled_head_decode, score_thresh=score_thresh) - self.postprocess = partial(nms, nms_thresh=nms_thresh) - - def __call__(self, outputs, original_shape): - pred = outputs - - if self.decode_outputs: - pred = self.decode_outputs(pred, original_shape) - if self.postprocess: - pred = self.postprocess(pred) - - pred = [(np.concatenate([p[:, :4], p[:, 4:5] * p[:, 5:6]], axis=-1), - p[:, 6].astype('int')) - for p in pred] - return pred +from functools import partial + +import numpy as np + + +def anchor_free_decoupled_head_decode(pred, original_shape, score_thresh=0.7): + pred = pred['pred'] + stage_strides= [original_shape[-1] // o.shape[-1] for o in pred] + + hw = [x.shape[-2:] for x in pred] + dim_len = pred[0].shape[1] + + pred = np.concatenate([x.reshape(1, dim_len, -1) for x in pred], axis=2).transpose(0, 2, 1) + pred[..., 4:] = 1 / (1 + (np.exp(-pred[..., 4:]))) + + grids = [] + strides = [] + for (hsize, wsize), stride in zip(hw, stage_strides): + yv, xv = np.meshgrid(np.arange(hsize, dtype='float32'), np.arange(wsize, dtype='float32'), indexing='ij') + grid = np.stack((xv, yv), 2).reshape(1, -1, 2) + grids.append(grid) + shape = grid.shape[:2] + strides.append(np.full((*shape, 1), stride, dtype='float32')) + + grids = np.concatenate(grids, axis=1) + strides = np.concatenate(strides, axis=1) + + pred = np.concatenate([ + (pred[..., 0:2] + grids) * strides, + np.exp(pred[..., 2:4]) * strides, + pred[..., 4:] + ], axis=-1) + + box_corner = np.empty(pred.shape) + box_corner[:, :, 0] = pred[:, :, 0] - pred[:, :, 2] / 2 + box_corner[:, :, 1] = pred[:, :, 1] - pred[:, :, 3] / 2 + box_corner[:, :, 2] = pred[:, :, 0] + pred[:, :, 2] / 2 + box_corner[:, :, 3] = pred[:, :, 1] + pred[:, :, 3] / 2 + pred[:, :, :4] = box_corner[:, :, :4] + + # Discard boxes with low score + detections = [] + for p in pred: + class_pred = np.argmax(p[:, 5:], 1, keepdims=True) + class_conf = p[np.arange(p.shape[0]), 5+class_pred.squeeze()][:, np.newaxis] + + conf_mask = (p[:, 4] * class_conf.squeeze() >= score_thresh).squeeze() + + # x1, y1, x2, y2, obj_conf, pred_score, pred_label + detections.append( + np.concatenate((p[:, :5], class_conf, class_pred), axis=1)[conf_mask] + ) + + return detections + +def nms_fast_rcnn(dets, scores, thresh): + ''' + dets is a numpy array : num_dets, 4 + scores ia nump array : num_dets, + ''' + x1 = dets[:, 0] + y1 = dets[:, 1] + x2 = dets[:, 2] + y2 = dets[:, 3] + + areas = (x2 - x1 + 1) * (y2 - y1 + 1) + order = scores.argsort()[::-1] # get boxes with more ious first + + keep = [] + while order.size > 0: + i = order[0] # pick maxmum iou box + keep.append(i) + xx1 = np.maximum(x1[i], x1[order[1:]]) + yy1 = np.maximum(y1[i], y1[order[1:]]) + xx2 = np.minimum(x2[i], x2[order[1:]]) + yy2 = np.minimum(y2[i], y2[order[1:]]) + + w = np.maximum(0.0, xx2 - xx1 + 1) # maximum width + h = np.maximum(0.0, yy2 - yy1 + 1) # maxiumum height + inter = w * h + ovr = inter / (areas[i] + areas[order[1:]] - inter) + + inds = np.where(ovr <= thresh)[0] + order = order[inds + 1] + + return keep + +def nms(prediction, nms_thresh=0.45): + output = [np.zeros((0, 7)) for _ in range(len(prediction))] + for i, image_pred in enumerate(prediction): + + # If none are remaining => process next image + if not image_pred.shape[0]: + continue + + nms_out_index = nms_fast_rcnn( + image_pred[:, :4], + image_pred[:, 4] * image_pred[:, 5], + nms_thresh, + ) + + image_pred = image_pred[nms_out_index] + output[i] = np.concatenate((output[i], image_pred)) + + return output + + +class DetectionPostprocessor: + def __init__(self, score_thresh, nms_thresh): + self.decode_outputs = partial(anchor_free_decoupled_head_decode, score_thresh=score_thresh) + self.postprocess = partial(nms, nms_thresh=nms_thresh) + + def __call__(self, outputs, original_shape): + pred = outputs + + if self.decode_outputs: + pred = self.decode_outputs(pred, original_shape) + if self.postprocess: + pred = self.postprocess(pred) + + pred = [(np.concatenate([p[:, :4], p[:, 4:5] * p[:, 5:6]], axis=-1), + p[:, 6].astype('int')) + for p in pred] + return pred diff --git a/netspresso/inferencer/postprocessors/segmentation.py b/src/netspresso/inferencer/postprocessors/segmentation.py similarity index 100% rename from netspresso/inferencer/postprocessors/segmentation.py rename to src/netspresso/inferencer/postprocessors/segmentation.py diff --git a/netspresso/inferencer/visualizers/__init__.py b/src/netspresso/inferencer/preprocessors/__init__.py similarity index 100% rename from netspresso/inferencer/visualizers/__init__.py rename to src/netspresso/inferencer/preprocessors/__init__.py diff --git a/netspresso/inferencer/preprocessors/base.py b/src/netspresso/inferencer/preprocessors/base.py similarity index 97% rename from netspresso/inferencer/preprocessors/base.py rename to src/netspresso/inferencer/preprocessors/base.py index cf5f83dd..eaf15865 100644 --- a/netspresso/inferencer/preprocessors/base.py +++ b/src/netspresso/inferencer/preprocessors/base.py @@ -1,61 +1,61 @@ -from functools import partial - -import cv2 -import numpy as np - -IMAGENET_DEFAULT_MEAN = (0.485, 0.456, 0.406) -IMAGENET_DEFAULT_STD = (0.229, 0.224, 0.225) -INVERSE_MODES_MAPPING = { - 'bilinear': cv2.INTER_LINEAR, - 'bicubic': cv2.INTER_CUBIC, -} - - -def resize_img(img, size, interpolation, max_size, resize_criteria): - assert isinstance(size, int), "Only support int type ``size`` now." - assert resize_criteria == 'long', "Only support ``long`` type ``resize_criteria`` now." - h, w = img.shape[:2] - long_side, short_side = max(h, w), min(h, w) - resize_factor = size / long_side - target_size = [size, round(resize_factor * short_side)] if h < w else [round(resize_factor * short_side), size] - img = cv2.resize(img, dsize=target_size, interpolation=cv2.INTER_LINEAR) - return img - - -def pad_img(img, size, fill): - assert isinstance(size, int), "Only support int type ``size`` now." - h, w = img.shape[:2] - padded = np.full((size, size, 3), fill, dtype='uint8') - padded[:h, :w] = img - return padded - - -def normalize(img): - img = img.astype('float32') / 255.0 - img = img - np.array(IMAGENET_DEFAULT_MEAN).reshape(1, 1, -1).astype('float32') - img = img / np.array(IMAGENET_DEFAULT_STD).reshape(1, 1, -1).astype('float32') - img = img[np.newaxis, ...] - return img - - -class Preprocessor: - DEVICE_TRANSFORM_DICT = { - 'resize': resize_img, - 'pad': pad_img, - } - - def __init__(self, preprocess_list): - self.transforms = [] - for transform in preprocess_list: - name = transform["name"] - augment_kwargs = list(transform.keys()) - augment_kwargs.remove('name') - augment_kwargs = {k:transform[k] for k in augment_kwargs} - transform = partial(self.DEVICE_TRANSFORM_DICT[name], **augment_kwargs) - self.transforms.append(transform) - - def __call__(self, img): - for transform in self.transforms: - img = transform(img) - img = normalize(img) - return img +from functools import partial + +import cv2 +import numpy as np + +IMAGENET_DEFAULT_MEAN = (0.485, 0.456, 0.406) +IMAGENET_DEFAULT_STD = (0.229, 0.224, 0.225) +INVERSE_MODES_MAPPING = { + 'bilinear': cv2.INTER_LINEAR, + 'bicubic': cv2.INTER_CUBIC, +} + + +def resize_img(img, size, interpolation, max_size, resize_criteria): + assert isinstance(size, int), "Only support int type ``size`` now." + assert resize_criteria == 'long', "Only support ``long`` type ``resize_criteria`` now." + h, w = img.shape[:2] + long_side, short_side = max(h, w), min(h, w) + resize_factor = size / long_side + target_size = [size, round(resize_factor * short_side)] if h < w else [round(resize_factor * short_side), size] + img = cv2.resize(img, dsize=target_size, interpolation=cv2.INTER_LINEAR) + return img + + +def pad_img(img, size, fill): + assert isinstance(size, int), "Only support int type ``size`` now." + h, w = img.shape[:2] + padded = np.full((size, size, 3), fill, dtype='uint8') + padded[:h, :w] = img + return padded + + +def normalize(img): + img = img.astype('float32') / 255.0 + img = img - np.array(IMAGENET_DEFAULT_MEAN).reshape(1, 1, -1).astype('float32') + img = img / np.array(IMAGENET_DEFAULT_STD).reshape(1, 1, -1).astype('float32') + img = img[np.newaxis, ...] + return img + + +class Preprocessor: + DEVICE_TRANSFORM_DICT = { + 'resize': resize_img, + 'pad': pad_img, + } + + def __init__(self, preprocess_list): + self.transforms = [] + for transform in preprocess_list: + name = transform["name"] + augment_kwargs = list(transform.keys()) + augment_kwargs.remove('name') + augment_kwargs = {k:transform[k] for k in augment_kwargs} + transform = partial(self.DEVICE_TRANSFORM_DICT[name], **augment_kwargs) + self.transforms.append(transform) + + def __call__(self, img): + for transform in self.transforms: + img = transform(img) + img = normalize(img) + return img diff --git a/netspresso/metadata/__init__.py b/src/netspresso/inferencer/visualizers/__init__.py similarity index 100% rename from netspresso/metadata/__init__.py rename to src/netspresso/inferencer/visualizers/__init__.py diff --git a/netspresso/inferencer/visualizers/classification.py b/src/netspresso/inferencer/visualizers/classification.py similarity index 100% rename from netspresso/inferencer/visualizers/classification.py rename to src/netspresso/inferencer/visualizers/classification.py diff --git a/netspresso/inferencer/visualizers/detection.py b/src/netspresso/inferencer/visualizers/detection.py similarity index 97% rename from netspresso/inferencer/visualizers/detection.py rename to src/netspresso/inferencer/visualizers/detection.py index 80dc7208..72517e14 100644 --- a/netspresso/inferencer/visualizers/detection.py +++ b/src/netspresso/inferencer/visualizers/detection.py @@ -1,45 +1,45 @@ -import cv2 -import numpy as np -from matplotlib import pyplot as plt - -from netspresso.inferencer.visualizers.utils import voc_color_map - - -class DetectionVisualizer: - def __init__(self, class_map=None, normalized=False, brightness_factor=1.5): - self.cmap = voc_color_map(N=256, normalized=normalized, brightness_factor=brightness_factor) - self.class_map = class_map - - def draw(self, image, pred, model_input_shape=None, text_scale=0.7, text_thickness=2, bbox_thickness=2): - resize_factor = max((image.shape[0] / model_input_shape[0]), (image.shape[1] / model_input_shape[1])) - pred[0][:, 1::2] *= resize_factor - pred[0][:, :4:2] *= resize_factor - - visualize_image = image.copy() - for bbox_label, class_label in zip(pred[0], pred[1]): - # Get bbox coordinates - x1 = int(bbox_label[0]) - y1 = int(bbox_label[1]) - x2 = int(bbox_label[2]) - y2 = int(bbox_label[3]) - - # Get bbox color - color = self.cmap[class_label].tolist() - - # Draw bbox - visualize_image = cv2.rectangle(visualize_image, (x1, y1), (x2, y2), color=color, thickness=bbox_thickness) - - # Get class name - class_name = self.class_map[int(class_label)] if self.class_map else str(class_label) - - # Draw class info - text_size, _ = cv2.getTextSize(str(class_name), cv2.FONT_HERSHEY_SIMPLEX, text_scale, text_thickness) - text_w, text_h = text_size - visualize_image = cv2.rectangle(visualize_image, (x1, y1-5-text_h), (x1+text_w, y1), color=color, thickness=-1) - visualize_image = cv2.putText(visualize_image, str(class_name), (x1, y1-5), cv2.FONT_HERSHEY_SIMPLEX, text_scale, (255, 255, 255), text_thickness) - - return visualize_image - - def visualize_by_plt(self, image): - plt.imshow(image) - plt.show() +import cv2 +import numpy as np +from matplotlib import pyplot as plt + +from netspresso.inferencer.visualizers.utils import voc_color_map + + +class DetectionVisualizer: + def __init__(self, class_map=None, normalized=False, brightness_factor=1.5): + self.cmap = voc_color_map(N=256, normalized=normalized, brightness_factor=brightness_factor) + self.class_map = class_map + + def draw(self, image, pred, model_input_shape=None, text_scale=0.7, text_thickness=2, bbox_thickness=2): + resize_factor = max((image.shape[0] / model_input_shape[0]), (image.shape[1] / model_input_shape[1])) + pred[0][:, 1::2] *= resize_factor + pred[0][:, :4:2] *= resize_factor + + visualize_image = image.copy() + for bbox_label, class_label in zip(pred[0], pred[1]): + # Get bbox coordinates + x1 = int(bbox_label[0]) + y1 = int(bbox_label[1]) + x2 = int(bbox_label[2]) + y2 = int(bbox_label[3]) + + # Get bbox color + color = self.cmap[class_label].tolist() + + # Draw bbox + visualize_image = cv2.rectangle(visualize_image, (x1, y1), (x2, y2), color=color, thickness=bbox_thickness) + + # Get class name + class_name = self.class_map[int(class_label)] if self.class_map else str(class_label) + + # Draw class info + text_size, _ = cv2.getTextSize(str(class_name), cv2.FONT_HERSHEY_SIMPLEX, text_scale, text_thickness) + text_w, text_h = text_size + visualize_image = cv2.rectangle(visualize_image, (x1, y1-5-text_h), (x1+text_w, y1), color=color, thickness=-1) + visualize_image = cv2.putText(visualize_image, str(class_name), (x1, y1-5), cv2.FONT_HERSHEY_SIMPLEX, text_scale, (255, 255, 255), text_thickness) + + return visualize_image + + def visualize_by_plt(self, image): + plt.imshow(image) + plt.show() diff --git a/netspresso/inferencer/visualizers/segmentation.py b/src/netspresso/inferencer/visualizers/segmentation.py similarity index 100% rename from netspresso/inferencer/visualizers/segmentation.py rename to src/netspresso/inferencer/visualizers/segmentation.py diff --git a/netspresso/inferencer/visualizers/utils.py b/src/netspresso/inferencer/visualizers/utils.py similarity index 100% rename from netspresso/inferencer/visualizers/utils.py rename to src/netspresso/inferencer/visualizers/utils.py diff --git a/netspresso/tao/utils/__init__.py b/src/netspresso/metadata/__init__.py similarity index 100% rename from netspresso/tao/utils/__init__.py rename to src/netspresso/metadata/__init__.py diff --git a/netspresso/metadata/benchmarker.py b/src/netspresso/metadata/benchmarker.py similarity index 100% rename from netspresso/metadata/benchmarker.py rename to src/netspresso/metadata/benchmarker.py diff --git a/netspresso/metadata/common.py b/src/netspresso/metadata/common.py similarity index 100% rename from netspresso/metadata/common.py rename to src/netspresso/metadata/common.py diff --git a/netspresso/metadata/compressor.py b/src/netspresso/metadata/compressor.py similarity index 100% rename from netspresso/metadata/compressor.py rename to src/netspresso/metadata/compressor.py diff --git a/netspresso/metadata/converter.py b/src/netspresso/metadata/converter.py similarity index 100% rename from netspresso/metadata/converter.py rename to src/netspresso/metadata/converter.py diff --git a/netspresso/metadata/quantizer.py b/src/netspresso/metadata/quantizer.py similarity index 100% rename from netspresso/metadata/quantizer.py rename to src/netspresso/metadata/quantizer.py diff --git a/netspresso/metadata/trainer.py b/src/netspresso/metadata/trainer.py similarity index 100% rename from netspresso/metadata/trainer.py rename to src/netspresso/metadata/trainer.py diff --git a/netspresso/netspresso.py b/src/netspresso/netspresso.py similarity index 100% rename from netspresso/netspresso.py rename to src/netspresso/netspresso.py diff --git a/netspresso/quantizer/__init__.py b/src/netspresso/quantizer/__init__.py similarity index 100% rename from netspresso/quantizer/__init__.py rename to src/netspresso/quantizer/__init__.py diff --git a/netspresso/quantizer/quantizer.py b/src/netspresso/quantizer/quantizer.py similarity index 100% rename from netspresso/quantizer/quantizer.py rename to src/netspresso/quantizer/quantizer.py diff --git a/netspresso/quantizer/schema.py b/src/netspresso/quantizer/schema.py similarity index 100% rename from netspresso/quantizer/schema.py rename to src/netspresso/quantizer/schema.py diff --git a/netspresso/tao/__init__.py b/src/netspresso/tao/__init__.py similarity index 100% rename from netspresso/tao/__init__.py rename to src/netspresso/tao/__init__.py diff --git a/netspresso/tao/dataset.py b/src/netspresso/tao/dataset.py similarity index 100% rename from netspresso/tao/dataset.py rename to src/netspresso/tao/dataset.py diff --git a/netspresso/tao/experiment.py b/src/netspresso/tao/experiment.py similarity index 100% rename from netspresso/tao/experiment.py rename to src/netspresso/tao/experiment.py diff --git a/netspresso/tao/tao.py b/src/netspresso/tao/tao.py similarity index 100% rename from netspresso/tao/tao.py rename to src/netspresso/tao/tao.py diff --git a/src/netspresso/tao/utils/__init__.py b/src/netspresso/tao/utils/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/netspresso/tao/utils/file.py b/src/netspresso/tao/utils/file.py similarity index 100% rename from netspresso/tao/utils/file.py rename to src/netspresso/tao/utils/file.py diff --git a/netspresso/trainer/__init__.py b/src/netspresso/trainer/__init__.py similarity index 100% rename from netspresso/trainer/__init__.py rename to src/netspresso/trainer/__init__.py diff --git a/netspresso/trainer/augmentations/__init__.py b/src/netspresso/trainer/augmentations/__init__.py similarity index 100% rename from netspresso/trainer/augmentations/__init__.py rename to src/netspresso/trainer/augmentations/__init__.py diff --git a/netspresso/trainer/augmentations/augmentation.py b/src/netspresso/trainer/augmentations/augmentation.py similarity index 100% rename from netspresso/trainer/augmentations/augmentation.py rename to src/netspresso/trainer/augmentations/augmentation.py diff --git a/netspresso/trainer/data/__init__.py b/src/netspresso/trainer/data/__init__.py similarity index 100% rename from netspresso/trainer/data/__init__.py rename to src/netspresso/trainer/data/__init__.py diff --git a/netspresso/trainer/data/data.py b/src/netspresso/trainer/data/data.py similarity index 100% rename from netspresso/trainer/data/data.py rename to src/netspresso/trainer/data/data.py diff --git a/netspresso/trainer/models/__init__.py b/src/netspresso/trainer/models/__init__.py similarity index 100% rename from netspresso/trainer/models/__init__.py rename to src/netspresso/trainer/models/__init__.py diff --git a/netspresso/trainer/models/base.py b/src/netspresso/trainer/models/base.py similarity index 100% rename from netspresso/trainer/models/base.py rename to src/netspresso/trainer/models/base.py diff --git a/netspresso/trainer/models/efficientformer.py b/src/netspresso/trainer/models/efficientformer.py similarity index 100% rename from netspresso/trainer/models/efficientformer.py rename to src/netspresso/trainer/models/efficientformer.py diff --git a/netspresso/trainer/models/mixnet.py b/src/netspresso/trainer/models/mixnet.py similarity index 100% rename from netspresso/trainer/models/mixnet.py rename to src/netspresso/trainer/models/mixnet.py diff --git a/netspresso/trainer/models/mobilenetv3.py b/src/netspresso/trainer/models/mobilenetv3.py similarity index 100% rename from netspresso/trainer/models/mobilenetv3.py rename to src/netspresso/trainer/models/mobilenetv3.py diff --git a/netspresso/trainer/models/mobilevit.py b/src/netspresso/trainer/models/mobilevit.py similarity index 100% rename from netspresso/trainer/models/mobilevit.py rename to src/netspresso/trainer/models/mobilevit.py diff --git a/netspresso/trainer/models/pidnet.py b/src/netspresso/trainer/models/pidnet.py similarity index 100% rename from netspresso/trainer/models/pidnet.py rename to src/netspresso/trainer/models/pidnet.py diff --git a/netspresso/trainer/models/resnet.py b/src/netspresso/trainer/models/resnet.py similarity index 100% rename from netspresso/trainer/models/resnet.py rename to src/netspresso/trainer/models/resnet.py diff --git a/netspresso/trainer/models/rtmpose.py b/src/netspresso/trainer/models/rtmpose.py similarity index 100% rename from netspresso/trainer/models/rtmpose.py rename to src/netspresso/trainer/models/rtmpose.py diff --git a/netspresso/trainer/models/segformer.py b/src/netspresso/trainer/models/segformer.py similarity index 100% rename from netspresso/trainer/models/segformer.py rename to src/netspresso/trainer/models/segformer.py diff --git a/netspresso/trainer/models/vit.py b/src/netspresso/trainer/models/vit.py similarity index 100% rename from netspresso/trainer/models/vit.py rename to src/netspresso/trainer/models/vit.py diff --git a/netspresso/trainer/models/yolo.py b/src/netspresso/trainer/models/yolo.py similarity index 100% rename from netspresso/trainer/models/yolo.py rename to src/netspresso/trainer/models/yolo.py diff --git a/netspresso/trainer/models/yolox.py b/src/netspresso/trainer/models/yolox.py similarity index 100% rename from netspresso/trainer/models/yolox.py rename to src/netspresso/trainer/models/yolox.py diff --git a/netspresso/trainer/optimizers/__init__.py b/src/netspresso/trainer/optimizers/__init__.py similarity index 100% rename from netspresso/trainer/optimizers/__init__.py rename to src/netspresso/trainer/optimizers/__init__.py diff --git a/netspresso/trainer/optimizers/optimizers.py b/src/netspresso/trainer/optimizers/optimizers.py similarity index 100% rename from netspresso/trainer/optimizers/optimizers.py rename to src/netspresso/trainer/optimizers/optimizers.py diff --git a/netspresso/trainer/schedulers/__init__.py b/src/netspresso/trainer/schedulers/__init__.py similarity index 100% rename from netspresso/trainer/schedulers/__init__.py rename to src/netspresso/trainer/schedulers/__init__.py diff --git a/netspresso/trainer/schedulers/schedulers.py b/src/netspresso/trainer/schedulers/schedulers.py similarity index 100% rename from netspresso/trainer/schedulers/schedulers.py rename to src/netspresso/trainer/schedulers/schedulers.py diff --git a/netspresso/trainer/trainer.py b/src/netspresso/trainer/trainer.py similarity index 100% rename from netspresso/trainer/trainer.py rename to src/netspresso/trainer/trainer.py diff --git a/netspresso/trainer/trainer_configs.py b/src/netspresso/trainer/trainer_configs.py similarity index 100% rename from netspresso/trainer/trainer_configs.py rename to src/netspresso/trainer/trainer_configs.py diff --git a/netspresso/trainer/training/__init__.py b/src/netspresso/trainer/training/__init__.py similarity index 100% rename from netspresso/trainer/training/__init__.py rename to src/netspresso/trainer/training/__init__.py diff --git a/netspresso/trainer/training/environment.py b/src/netspresso/trainer/training/environment.py similarity index 100% rename from netspresso/trainer/training/environment.py rename to src/netspresso/trainer/training/environment.py diff --git a/netspresso/trainer/training/logging.py b/src/netspresso/trainer/training/logging.py similarity index 100% rename from netspresso/trainer/training/logging.py rename to src/netspresso/trainer/training/logging.py diff --git a/netspresso/trainer/training/training.py b/src/netspresso/trainer/training/training.py similarity index 100% rename from netspresso/trainer/training/training.py rename to src/netspresso/trainer/training/training.py diff --git a/netspresso/utils/__init__.py b/src/netspresso/utils/__init__.py similarity index 100% rename from netspresso/utils/__init__.py rename to src/netspresso/utils/__init__.py diff --git a/netspresso/utils/credit.py b/src/netspresso/utils/credit.py similarity index 100% rename from netspresso/utils/credit.py rename to src/netspresso/utils/credit.py diff --git a/netspresso/utils/file.py b/src/netspresso/utils/file.py similarity index 100% rename from netspresso/utils/file.py rename to src/netspresso/utils/file.py diff --git a/netspresso/utils/metadata/__init__.py b/src/netspresso/utils/metadata/__init__.py similarity index 100% rename from netspresso/utils/metadata/__init__.py rename to src/netspresso/utils/metadata/__init__.py diff --git a/netspresso/utils/metadata/default/__init__.py b/src/netspresso/utils/metadata/default/__init__.py similarity index 100% rename from netspresso/utils/metadata/default/__init__.py rename to src/netspresso/utils/metadata/default/__init__.py diff --git a/netspresso/utils/metadata/default/benchmarker.py b/src/netspresso/utils/metadata/default/benchmarker.py similarity index 100% rename from netspresso/utils/metadata/default/benchmarker.py rename to src/netspresso/utils/metadata/default/benchmarker.py diff --git a/netspresso/utils/metadata/default/common.py b/src/netspresso/utils/metadata/default/common.py similarity index 100% rename from netspresso/utils/metadata/default/common.py rename to src/netspresso/utils/metadata/default/common.py diff --git a/netspresso/utils/metadata/default/compressor.py b/src/netspresso/utils/metadata/default/compressor.py similarity index 100% rename from netspresso/utils/metadata/default/compressor.py rename to src/netspresso/utils/metadata/default/compressor.py diff --git a/netspresso/utils/metadata/default/converter.py b/src/netspresso/utils/metadata/default/converter.py similarity index 100% rename from netspresso/utils/metadata/default/converter.py rename to src/netspresso/utils/metadata/default/converter.py diff --git a/netspresso/utils/metadata/default/trainer.py b/src/netspresso/utils/metadata/default/trainer.py similarity index 100% rename from netspresso/utils/metadata/default/trainer.py rename to src/netspresso/utils/metadata/default/trainer.py diff --git a/netspresso/utils/metadata/handler.py b/src/netspresso/utils/metadata/handler.py similarity index 100% rename from netspresso/utils/metadata/handler.py rename to src/netspresso/utils/metadata/handler.py diff --git a/netspresso/utils/plotter.py b/src/netspresso/utils/plotter.py similarity index 100% rename from netspresso/utils/plotter.py rename to src/netspresso/utils/plotter.py