diff --git a/.github/workflows/code-lint.yml b/.github/workflows/code-lint.yml index 7317789f..96973e23 100644 --- a/.github/workflows/code-lint.yml +++ b/.github/workflows/code-lint.yml @@ -37,7 +37,7 @@ jobs: - name: setup python uses: actions/setup-python@v5 with: - python-version: '3.8' + python-version: '3.11' cache: 'pip' - name: install dependencies diff --git a/.github/workflows/functional-test.yml b/.github/workflows/functional-test.yml index 36c94cc3..81b909c0 100644 --- a/.github/workflows/functional-test.yml +++ b/.github/workflows/functional-test.yml @@ -49,7 +49,7 @@ jobs: os: - ubuntu-latest python-version: - - '3.8' + - '3.11' task: - classification - detection @@ -67,14 +67,15 @@ jobs: - name: pip install deps run: | - python -m pip install --upgrade pip wheel setuptools + python -m pip install --upgrade pip wheel "setuptools>=65.5,<70" python -m pip install torch==2.0.0+cpu torchvision==0.15.1+cpu torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cpu - python -m pip install -r requirements/pytorch_cpu.txt - python -m pip install -r requirements/base.txt - python -m pip install -r requirements/inference.txt - python -m pip install -r requirements/export.txt - python -m mim install -r requirements/mmlab.txt - python -m mim install -e . + python -m pip install --no-build-isolation -r requirements/pytorch_cpu.txt + python -m pip install --no-build-isolation -r requirements/base.txt + python -m pip install --no-build-isolation -r requirements/inference.txt + python -m pip install --no-build-isolation -r requirements/export.txt + echo "ethos-u-vela>=5.0.0" > /tmp/pip-constraints.txt + PIP_CONSTRAINT=/tmp/pip-constraints.txt python -m mim install -r requirements/mmlab.txt + PIP_CONSTRAINT=/tmp/pip-constraints.txt python -m mim install -e . python --version python -m pip --version python -m pip list diff --git a/.github/workflows/smoke-test.yml b/.github/workflows/smoke-test.yml index 50fdbbe9..7d42fa99 100644 --- a/.github/workflows/smoke-test.yml +++ b/.github/workflows/smoke-test.yml @@ -34,9 +34,9 @@ jobs: - ubuntu-latest - windows-latest python-version: - - '3.8' - - '3.9' - '3.10' + - '3.11' + - '3.12' defaults: run: shell: bash -l {0} @@ -53,11 +53,11 @@ jobs: - name: pip install deps (CPU) run: | - python3 -m pip install --upgrade pip wheel setuptools - python3 -m pip install -r requirements/pytorch_cpu.txt - python3 -m pip install -r requirements/base.txt - python3 -m pip install -r requirements/inference.txt - python3 -m pip install -r requirements/export.txt + python3 -m pip install --upgrade pip wheel "setuptools>=65.5,<70" + python3 -m pip install --no-build-isolation -r requirements/pytorch_cpu.txt + python3 -m pip install --no-build-isolation -r requirements/base.txt + python3 -m pip install --no-build-isolation -r requirements/inference.txt + python3 -m pip install --no-build-isolation -r requirements/export.txt python3 -m mim install -r requirements/mmlab.txt python3 -m mim install -e . python3 --version diff --git a/pyproject.toml b/pyproject.toml index e107eeb1..bc7e1151 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -41,5 +41,9 @@ dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" target-version = "py38" +[tool.ruff.per-file-ignores] +"sscma/models/backbones/MobileNetv4.py" = ["F401", "F821", "F841"] +"sscma/models/layers/nn_blocks.py" = ["F401", "F841"] + [tool.ruff.mccabe] max-complexity = 10 diff --git a/requirements/base.txt b/requirements/base.txt index ce3967e4..3cd9a92b 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -5,11 +5,11 @@ libusb1 # sensor cbor -numpy>=1.23.5 +numpy>=1.23.5,<2.0 # vision -opencv-python>=4.9.0.80 +opencv-python>=4.9.0.80,<4.10 # openmmlab package manager @@ -18,8 +18,8 @@ packaging>=23.1 pandas>=2.0.0 pillow>=9.4.0 pyyaml>=6.0 -scikit-image>=0.20.0 -scikit-learn>=1.2.2 +scikit-image>=0.26.0 +scikit-learn>=1.8.0 # sound @@ -27,8 +27,8 @@ soundfile>=0.12.1 # visualize -tensorboard>=2.12.3 -tqdm>=4.65.0 +tensorboard>=2.20.0 +tqdm>=4.67.3 # data diff --git a/requirements/tests.txt b/requirements/tests.txt index 5a1f15d9..253280ac 100644 --- a/requirements/tests.txt +++ b/requirements/tests.txt @@ -1,4 +1,4 @@ black>=23.3.0 isort>=5.12.0 pre-commit>=3.3.3 -ruff>=0.0.275 +ruff>=0.0.275,<0.1.0 diff --git a/sscma/datasets/mnist.py b/sscma/datasets/mnist.py index f0cad592..c8d1a34d 100644 --- a/sscma/datasets/mnist.py +++ b/sscma/datasets/mnist.py @@ -35,7 +35,7 @@ class MNIST(BaseDataset): **kwargs: Other keyword arguments in :class:`BaseDataset`. """ # noqa: E501 - url_prefix = 'http://yann.lecun.com/exdb/mnist/' + url_prefix = 'https://ossci-datasets.s3.amazonaws.com/mnist/' # train images and labels train_list = [ ['train-images-idx3-ubyte.gz', 'f68b3c2dcbeaaa9fbdd348bbdeb94873'], diff --git a/sscma/datasets/pipelines/albu.py b/sscma/datasets/pipelines/albu.py index 50b1ba2f..14f56935 100644 --- a/sscma/datasets/pipelines/albu.py +++ b/sscma/datasets/pipelines/albu.py @@ -93,10 +93,21 @@ def __init__(self, transforms, p: float = 0.5): super().__init__(transforms, p) +try: + _IAAAdditiveGaussianNoise = A.IAAAdditiveGaussianNoise + _IS_NEW_ALBUMENTATIONS = False +except AttributeError: + _IAAAdditiveGaussianNoise = A.GaussNoise + _IS_NEW_ALBUMENTATIONS = True + + @TRANSFORMS.register_module() -class IAAAdditiveGaussianNoise(A.IAAAdditiveGaussianNoise): +class IAAAdditiveGaussianNoise(_IAAAdditiveGaussianNoise): def __init__(self, loc=0, scale=..., per_channel=False, always_apply=False, p=0.5): - super().__init__(loc, scale, per_channel, always_apply, p) + if _IS_NEW_ALBUMENTATIONS: + super().__init__(mean=loc, per_channel=per_channel, always_apply=always_apply, p=p) + else: + super().__init__(loc, scale, per_channel, always_apply, p) @TRANSFORMS.register_module() diff --git a/tools/export.py b/tools/export.py index 53b5ab48..f94c004f 100644 --- a/tools/export.py +++ b/tools/export.py @@ -287,34 +287,14 @@ def get_exported_file_name_from_precision(args, precision, ext: str = '') -> str def export_pnnx(args, model): - import os.path as osp - import sys - import pnnx - from pnnx.wrapper import convert_inputshape_to_cmd model.eval() - pnnx_bin_path = osp.join(osp.dirname(pnnx.__file__), 'bin') - bin_list = os.listdir(pnnx_bin_path) x = torch.randn(args.input_shape) - cmd = '' - dir_dict = {} - for dir_name in bin_list: - if 'ubuntu' in dir_name: - dir_dict['linux'] = dir_name - elif 'windows' in dir_name: - dir_dict['win'] = dir_name - elif 'macos' in dir_name: - dir_dict['darwin'] = dir_name - if sys.platform.startswith('linux'): - cmd += os.path.join(pnnx_bin_path, dir_dict['linux'], 'pnnx ') - elif sys.platform.startswith('win'): - cmd += os.path.join(pnnx_bin_path, dir_dict['win'], 'pnnx.exe ') - elif sys.platform.startswith('darwin'): - cmd += os.path.join(pnnx_bin_path, dir_dict['darwin'], 'pnnx ') + cmd = pnnx.EXEC_PATH + ' ' cmd += 'model.pt ' - cmd += convert_inputshape_to_cmd(x) + cmd += 'inputshape=' + ','.join(str(d) for d in x.shape) + ' ' cmd += ' pnnxparam=' + get_exported_file_name_from_precision(args, 'float', '.pnnx.param') cmd += ' pnnxbin=' + get_exported_file_name_from_precision(args, 'float', '.pnnx.bin') cmd += ' pnnxpy=' + get_exported_file_name_from_precision(args, 'float', '.pnnx.py')