TorchOk - The toolkit for fast Deep Learning experiments in Computer Vision

Overview

TorchOk

The toolkit for fast Deep Learning experiments in Computer Vision

What is it?

The toolkit consists of:

  • Popular neural network models and custom modules implementations used in our company
  • Metrics used in CV such that mIoU, mAP, etc.
  • Commonly used datasets and data loaders

The framework is based on PyTorch and utilizes PyTorch Lightning for training pipeline routines.

Installation

Docker

One of the ways to install TorchOk is to use Docker:

" . docker run -d --name _torchok --gpus=all -v :/workdir -p :22 -p :8888 -p :6006 torchok ">
docker build -t torchok --build-arg SSH_PUBLIC_KEY="
         
          "
          .
docker run -d --name <username>_torchok --gpus=all -v <path/to/workdir>:/workdir -p <ssh_port>:22 -p <jupyter_port>:8888 -p <tensorboard_port>:6006 torchok

Conda

To remove previous installation of TorchOk environment, run:

conda remove --name torchok --all

To install TorchOk locally, run:

conda env create -f environment.yml

This will create a new conda environment torchok with all dependencies.

Getting started

Training is configured by YAML configuration files which each forked project should store inside configs folder (see configs/cifar10.yml for example). The configuration supports environment variables substitution, so that you can easily change base directory paths without changing the config file for each environment. The most common environment variables are:
SM_CHANNEL_TRAINING — directory to all training data
SM_OUTPUT_DATA_DIR — directory where logs for all runs will be stored SM_NUM_CPUS - number of used CPUs for dataloader

Start training locally

Download CIFAR10 dataset running all cells in notebooks/Cifar10.ipynb, the dataset will appear in data/cifar10 folder.

docker exec -it torchok bash
cd torchok
SM_NUM_CPUS=8 SM_CHANNEL_TRAINING=./data/cifar10 SM_OUTPUT_DATA_DIR=/tmp python train.py --config config/classification_resnet_example.yml

Start SageMaker Training Jobs

Start the job using one of the AWS SageMaker instances. You have 2 ways to provide data inside your training container:

  • Slow downloaded S3 bucket: s3:// / . Volume size is needed to be set when you use S3 bucket. For other cases it can be omitted.
  • Fast FSx access: fsx:// / / . To create FSx filesystem follow this instructions

Example with S3:

python run_sagemaker.py --config configs/cifar10.yml --input_path s3://sagemaker-mlflow-main/cifar10 --instance_type ml.g4dn.xlarge --volume_size 5

Example with FSx:

python run_sagemaker.py --input_path fsx://fs-0f79df302dcbd29bd/z6duzbmv/tz_jpg --config configs/siloiz_pairwise_xbm_resnet50_512d.yml --instance_type ml.g4dn.xlarge

In case something isn't working inside the Sagemaker container you can debug your model locally. Specify local_gpu instance type when starting the job:

python run_sagemaker.py --config configs/cifar10.yml --instance_type local_gpu --volume_size 5 --input_path file://../data/cifar10

Run tests

docker exec -it torchok bash
cd torchok
python -m unittest discover -s tests/ -p "test_*.py"

Differences in configs sagemaker vs local machine

1. Path to data folder

sagemaker

data:
  dataset_name: ExampleDataset
  common_params:
    data_folder: "${SM_CHANNEL_TRAINING}"

local machine

data:
  dataset_name: ExampleDataset
  common_params:
    data_folder: "/path/to/data"

2. Path to artifacts dir

sagemaker

log_dir: '/opt/ml/checkpoints'

local machine

log_dir: '/tmp/logs'

3. Restore path

do_restore is a special indicator which was designed to be used for SageMaker spot instances training. With this indicator you can debug your model locally and be free to leave the restore_path pointing to some common directory like /opt/ml/checkpoints, where TorchOk will search the checkpoints for.

sagemaker

restore_path: '/opt/ml/checkpoints'
do_restore: '${SM_USER_ENTRY_POINT}'

local machine

restore_path: '/opt/ml/checkpoints'
do_restore: '${SM_USER_ENTRY_POINT}'

Mlflow

To have more convenient logs it is recommended to name your experiment as project_name-developer_name, so that all your experiments related to this project will be under one tag in mlflow

experiment_name: &experiment_name fips-roman

State all the model parameters in mlflow.runName in logger params

logger:
  logger: mlflow
  experiment_name: *experiment_name
  tags:
      mlflow.runName: "siloiz_contrastive_xbm_resnet50_512d"
  save_dir: "s3://sagemaker-mlflow-main/mlruns"
  secrets_manager:
      region: "eu-west-1"
      mlflow_secret: "acme/mlflow"
Comments
  • Flake8 not pass if 3.7 python version

    Flake8 not pass if 3.7 python version

    Describe the bug When i run github action with python version 3.7. Flake8 raise SyntaxError on 179 line. https://github.com/eora-ai/torchok/blob/dev/torchok/models/backbones/beit.py

    To Reproduce Replace .github/workflows/flake8_checks.yaml below code snippet.

    
    on:
      push:
        branches: [dev]
      pull_request: 
        branches: [dev]
    
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/[email protected]
          - name: Install python
            uses: actions/[email protected]
            with:
              python-version: 3.7
          - name: Install deps
            run: |
              python -m pip install --upgrade pip
              pip install flake8
          - name: Run flake8
            run: flake8 .```
    bug 
    opened by VladislavPatrushev 1
  • SwinV2 not export to onnx.

    SwinV2 not export to onnx.

    Describe the bug When i set export_to_onnx true in yaml config, process crash on epoch end (in ModelCheckpointWithOnnx).

    To Reproduce run python -m torchok -cp ../examples/configs -cn representation_arcface_sop (before set export_to_onnx as true).

    Actual behavior Traceback (most recent call last): File "/workdir/vpatrushev/torchOKsmall2/torchok/torchok/main.py", line 38, in entrypoint trainer.fit(model, ckpt_path=config.resume_path) File "/opt/conda/envs/torchok/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 770, in fit self._call_and_handle_interrupt( File "/opt/conda/envs/torchok/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 723, in _call_and_handle_interrupt return trainer_fn(*args, **kwargs) File "/opt/conda/envs/torchok/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 811, in _fit_impl results = self._run(model, ckpt_path=self.ckpt_path) File "/opt/conda/envs/torchok/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 1236, in _run results = self._run_stage() File "/opt/conda/envs/torchok/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 1323, in _run_stage return self._run_train() File "/opt/conda/envs/torchok/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 1353, in _run_train self.fit_loop.run() File "/opt/conda/envs/torchok/lib/python3.9/site-packages/pytorch_lightning/loops/base.py", line 205, in run self.on_advance_end() File "/opt/conda/envs/torchok/lib/python3.9/site-packages/pytorch_lightning/loops/fit_loop.py", line 297, in on_advance_end self.trainer._call_callback_hooks("on_train_epoch_end") File "/opt/conda/envs/torchok/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 1636, in _call_callback_hooks fn(self, self.lightning_module, *args, **kwargs) File "/opt/conda/envs/torchok/lib/python3.9/site-packages/pytorch_lightning/callbacks/model_checkpoint.py", line 309, in on_train_epoch_end self._save_last_checkpoint(trainer, monitor_candidates) File "/opt/conda/envs/torchok/lib/python3.9/site-packages/pytorch_lightning/callbacks/model_checkpoint.py", line 644, in _save_last_checkpoint self._save_checkpoint(trainer, filepath) File "/workdir/vpatrushev/torchOKsmall2/torchok/torchok/callbacks/model_checkpoint_with_onnx.py", line 43, in _save_checkpoint model.to_onnx(filepath + self.ONNX_EXTENSION, (*input_tensors,), **self.onnx_params) File "/opt/conda/envs/torchok/lib/python3.9/site-packages/torch/autograd/grad_mode.py", line 27, in decorate_context return func(*args, **kwargs) File "/opt/conda/envs/torchok/lib/python3.9/site-packages/pytorch_lightning/core/lightning.py", line 1888, in to_onnx torch.onnx.export(self, input_sample, file_path, **kwargs) File "/opt/conda/envs/torchok/lib/python3.9/site-packages/torch/onnx/init.py", line 350, in export return utils.export( File "/opt/conda/envs/torchok/lib/python3.9/site-packages/torch/onnx/utils.py", line 163, in export _export( File "/opt/conda/envs/torchok/lib/python3.9/site-packages/torch/onnx/utils.py", line 1074, in _export graph, params_dict, torch_out = _model_to_graph( File "/opt/conda/envs/torchok/lib/python3.9/site-packages/torch/onnx/utils.py", line 727, in _model_to_graph graph, params, torch_out, module = _create_jit_graph(model, args) File "/opt/conda/envs/torchok/lib/python3.9/site-packages/torch/onnx/utils.py", line 602, in _create_jit_graph graph, torch_out = _trace_and_get_graph_from_model(model, args) File "/opt/conda/envs/torchok/lib/python3.9/site-packages/torch/onnx/utils.py", line 517, in _trace_and_get_graph_from_model trace_graph, torch_out, inputs_states = torch.jit._get_trace_graph( File "/opt/conda/envs/torchok/lib/python3.9/site-packages/torch/jit/_trace.py", line 1175, in _get_trace_graph outs = ONNXTracedModule(f, strict, _force_outplace, return_inputs, _return_inputs_states)(*args, **kwargs) File "/opt/conda/envs/torchok/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl return forward_call(*input, **kwargs) File "/opt/conda/envs/torchok/lib/python3.9/site-packages/torch/jit/_trace.py", line 127, in forward graph, out = torch._C._create_graph_by_tracing( File "/opt/conda/envs/torchok/lib/python3.9/site-packages/torch/jit/_trace.py", line 118, in wrapper outs.append(self.inner(*trace_inputs)) File "/opt/conda/envs/torchok/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl return forward_call(*input, **kwargs) File "/opt/conda/envs/torchok/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1118, in _slow_forward result = self.forward(*input, **kwargs) File "/workdir/vpatrushev/torchOKsmall2/torchok/torchok/tasks/classification.py", line 51, in forward x = self.backbone(x) File "/opt/conda/envs/torchok/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl return forward_call(*input, **kwargs) File "/opt/conda/envs/torchok/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1118, in _slow_forward result = self.forward(*input, **kwargs) File "/workdir/vpatrushev/torchOKsmall2/torchok/torchok/models/backbones/swin.py", line 250, in forward x = self._forward_patch_emb(x) File "/workdir/vpatrushev/torchOKsmall2/torchok/torchok/models/backbones/swin.py", line 211, in _forward_patch_emb x = self.patch_embed(x) File "/opt/conda/envs/torchok/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl return forward_call(*input, **kwargs) File "/opt/conda/envs/torchok/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1118, in _slow_forward result = self.forward(*input, **kwargs) File "/opt/conda/envs/torchok/lib/python3.9/site-packages/timm/models/layers/patch_embed.py", line 32, in forward B, C, H, W = x.shape ValueError: not enough values to unpack (expected 4, got 3)

    Environment:

    • OS: [e.g. Ubuntu 22.04]
    • CUDA: [e.g. 11.6]
    • PyTorch: [e.g. 12.0]
    • PyTorch Lightning: [e.g. 1.6.5]
    bug 
    opened by VladislavPatrushev 1
  • Add seed everything by default

    Add seed everything by default

    Is your feature request related to a problem? Please describe. We now cannot reproduce the experiments because of the seeds not being set.

    Describe the solution you'd like Lightning has a function that allows users to seed everything: https://pytorch-lightning.readthedocs.io/en/stable/common/trainer.html#reproducibility. It should be enabled by default and be configured from the training configuration.

    Describe alternatives you've considered

    Additional context

    enhancement 
    opened by VladVin 1
  • Weight decay per group from config

    Weight decay per group from config

    Is your feature request related to a problem? Please describe. A user can specify model layers with their own weight decay parameters being set in the training configuration.

    Describe the solution you'd like In the config file it might be a dict like this:

    weight_decays:
      'head.layer1': 0.00001
      'head.layer2': 0.00005
    

    Describe alternatives you've considered

    Additional context

    enhancement 
    opened by VladVin 1
  • Remove ability to specify multiple training dataloaders

    Remove ability to specify multiple training dataloaders

    Is your feature request related to a problem? Please describe. It is impossible to use multiple training datasets according to Lightning's interface (there is no dataloader_idx parameter for training_step). But TorchOk supports a list of training datasets though it won't work - the user has to specify only one training dataloader to make it work.

    Describe the solution you'd like Remove the ability to pass multiple training dataloaders

    Describe alternatives you've considered We can also create our own wrapper around a list of datasets, but it will be confusing for a user

    Additional context

    invalid 
    opened by VladVin 0
  • Dependencies installation didn't happen in CI/CD on a multi-commit PR

    Dependencies installation didn't happen in CI/CD on a multi-commit PR

    Describe the bug Dependencies in pyproject.toml were changed in a multi-commit PR, but the CI/CD process didn't catch them, resulting to broken dependencies in main branch.

    To Reproduce

    Expected behavior Dependencies installation needs to be ran in CI/CD when one of the commits in a PR changes pyproject.toml

    Actual behavior The broken dependencies workflow in main

    Environment: See CI/CD workflow

    bug 
    opened by VladVin 0
  • Representation Metrics in DDP mode

    Representation Metrics in DDP mode

    Describe the bug In DDP mode representation metrics doesn't work. Due to in update function gpu embedding convert to cpu embedding and after that in compute method in DDP mode called all_gather() which work only with gpu tensors.

    bug 
    opened by PososikTeam 0
  • Tests for BEiT

    Tests for BEiT

    Is your feature request related to a problem? Please describe. There are no tests for BEiT backbone. The main reason is BEiT can't convert to Jit CPU model, because of BEiT has SyncBatchNorm layer which has no implementation for CPU.

    enhancement 
    opened by PososikTeam 0
  • No examples configs inside TorchOk package

    No examples configs inside TorchOk package

    Describe the bug There's a command in README for running basic example training but it doesn't work:

    python -m torchok -cn classification_cifar10 trainer.accelerator='cpu'
    

    To Reproduce

    pip install --upgrade torchok
    python -m torchok -cn classification_cifar10 trainer.accelerator='cpu'
    

    Expected behavior The example should run

    Actual behavior Error is raised:

    /usr/local/lib/python3.7/dist-packages/statsmodels/tools/_testing.py:19: FutureWarning: pandas.util.testing is deprecated. Use the functions in the public API at pandas.testing instead.
      import pandas.util.testing as tm
    Primary config directory not found.
    Check that the config directory '/usr/local/lib/python3.7/dist-packages/torchok/examples/configs' exists and readable
    
    Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.
    

    Environment:

    Additional context

    opened by VladVin 1
Releases(v0.4.12)
  • v0.4.12(Dec 23, 2022)

    What's Changed

    • Feature add new features by @Animatory in https://github.com/eora-ai/torchok/pull/152
    • Fix freeze unfreez for batch norms by @PososikTeam in https://github.com/eora-ai/torchok/pull/151
    • Feature_onnx_check_backbone by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/148
    • Update freeze_unfreeze callback by @Animatory in https://github.com/eora-ai/torchok/pull/155
    • Fix FreezeUnfreeze callback by @Animatory in https://github.com/eora-ai/torchok/pull/158
    • Feature resnets no downsample stages by @azakhtyamov in https://github.com/eora-ai/torchok/pull/144
    • Fix failure on single module at unfreeze stage by @Animatory in https://github.com/eora-ai/torchok/pull/159
    • Bug Fix checkpoint with onnx top k by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/154
    • Feature Object detection by @Animatory in https://github.com/eora-ai/torchok/pull/147
    • Fix imports for absence of mmdet by @Animatory in https://github.com/eora-ai/torchok/pull/160
    • Feature fix mlflow logger by @kristinarakova in https://github.com/eora-ai/torchok/pull/161
    • Torchmetrics retrieval metrics by @PososikTeam in https://github.com/eora-ai/torchok/pull/156
    • Update environment and configs by @Animatory in https://github.com/eora-ai/torchok/pull/163
    • Fix bag with metric and add ability to choice if use batch searching or no by @PososikTeam in https://github.com/eora-ai/torchok/pull/164
    • fix constructor attribute in base task by @kristinarakova in https://github.com/eora-ai/torchok/pull/165
    • fix memory leak by @PososikTeam in https://github.com/eora-ai/torchok/pull/166
    • Refactor Tasks by @Animatory in https://github.com/eora-ai/torchok/pull/167
    • Update environment by @Animatory in https://github.com/eora-ai/torchok/pull/170
    • Getting started docs by @VladVin in https://github.com/eora-ai/torchok/pull/157
    • Docs pairwise task by @PososikTeam in https://github.com/eora-ai/torchok/pull/171
    • Update documentation in classification and detection by @Animatory in https://github.com/eora-ai/torchok/pull/172
    • Update Detection by @Animatory in https://github.com/eora-ai/torchok/pull/168
    • Project version increment by @VladVin in https://github.com/eora-ai/torchok/pull/173

    New Contributors

    • @azakhtyamov made their first contribution in https://github.com/eora-ai/torchok/pull/144
    • @kristinarakova made their first contribution in https://github.com/eora-ai/torchok/pull/161

    Full Changelog: https://github.com/eora-ai/torchok/compare/v0.4.11...v0.4.12

    Source code(tar.gz)
    Source code(zip)
  • v0.4.11(Sep 14, 2022)

    What's Changed

    • Add CaiT and XCiT models by @Animatory in https://github.com/eora-ai/torchok/pull/1
    • Fixes & Improvements from EORA team by @VladVin in https://github.com/eora-ai/torchok/pull/6
    • Re-engineered basic folders structure by @VladVin in https://github.com/eora-ai/torchok/pull/10
    • create feature-classification_dataset by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/12
    • feature_unsupervised_contrastive_dataset by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/13
    • registry write by @PososikTeam in https://github.com/eora-ai/torchok/pull/14
    • Feature retrieval dataset by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/15
    • add flake8 by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/17
    • change api base dataset by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/27
    • Feature metric manager by @PososikTeam in https://github.com/eora-ai/torchok/pull/11
    • Constructor by @VladVin in https://github.com/eora-ai/torchok/pull/22
    • create feature hooks base model by @PososikTeam in https://github.com/eora-ai/torchok/pull/19
    • Fixed order names of tests for JointLoss by @VladVin in https://github.com/eora-ai/torchok/pull/29
    • feature-representation_metric by @PososikTeam in https://github.com/eora-ai/torchok/pull/16
    • add base task by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/18
    • Feature ResNet, SEResNet by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/26
    • Feature dataset cifar10 by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/32
    • Feature ResNet add urls by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/34
    • Config structure by @PososikTeam in https://github.com/eora-ai/torchok/pull/25
    • Hot FIX Metric test by @PososikTeam in https://github.com/eora-ai/torchok/pull/30
    • Feature arc face head by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/21
    • Feature base task bug-fix by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/33
    • SOP run by @PososikTeam in https://github.com/eora-ai/torchok/pull/36
    • Added new requierements by @VladVin in https://github.com/eora-ai/torchok/pull/37
    • CIFAR-10 run by @VladVin in https://github.com/eora-ai/torchok/pull/38
    • Updated README for the new concept by @VladVin in https://github.com/eora-ai/torchok/pull/40
    • Feature HRNet by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/41
    • Feature Segmentation Dataset by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/35
    • Sphinx documentation by @VladVin in https://github.com/eora-ai/torchok/pull/43
    • Set joint loss and optimizer as optional by @PososikTeam in https://github.com/eora-ai/torchok/pull/50
    • featue save_onnx_ckpt by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/49
    • Updated all dependencies and Dockerfile by @VladVin in https://github.com/eora-ai/torchok/pull/55
    • Fixed logging steps in test configs by @VladVin in https://github.com/eora-ai/torchok/pull/58
    • SOP training by @PososikTeam in https://github.com/eora-ai/torchok/pull/53
    • Load checkpoint by @PososikTeam in https://github.com/eora-ai/torchok/pull/39
    • hotfix-classification_task by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/66
    • BaseModel class by @PososikTeam in https://github.com/eora-ai/torchok/pull/57
    • MLFlow Logger by @PososikTeam in https://github.com/eora-ai/torchok/pull/54
    • MLFlow config by @PososikTeam in https://github.com/eora-ai/torchok/pull/67
    • Config MLFlow by @PososikTeam in https://github.com/eora-ai/torchok/pull/68
    • hotfix-onnx_save_checkpoint_callback by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/70
    • TorchOk packaging by @VladVin in https://github.com/eora-ai/torchok/pull/73
    • SwinV2 by @PososikTeam in https://github.com/eora-ai/torchok/pull/47
    • Segmentation by @PososikTeam in https://github.com/eora-ai/torchok/pull/71
    • Adapt models from TIMM by @Animatory in https://github.com/eora-ai/torchok/pull/76
    • Add efficientnet architecture by @Animatory in https://github.com/eora-ai/torchok/pull/87
    • Add mobilenetv3 backbone by @Animatory in https://github.com/eora-ai/torchok/pull/88
    • feature-onnxtask by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/48
    • Add notebooks by @PososikTeam in https://github.com/eora-ai/torchok/pull/89
    • Entrypoints by @PososikTeam in https://github.com/eora-ai/torchok/pull/77
    • hotfix_multilog_dir by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/90
    • Feature DaViT by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/56
    • Freeze by @PososikTeam in https://github.com/eora-ai/torchok/pull/75
    • feature-Unet by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/52
    • Merge Hydra and PytorchLightning logging by @Animatory in https://github.com/eora-ai/torchok/pull/104
    • Feature-forward_onnx by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/100
    • Fixed deps for Python 3.7 by @VladVin in https://github.com/eora-ai/torchok/pull/105
    • Global refactor by @Animatory in https://github.com/eora-ai/torchok/pull/107
    • Fix Hydra logging timestamp by @Animatory in https://github.com/eora-ai/torchok/pull/108
    • Add Beit backbone by @Animatory in https://github.com/eora-ai/torchok/pull/109
    • Hotfix warnings by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/113
    • Hotfix flake8 by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/111
    • Feature github actions by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/112
    • Refactor datasets by @Animatory in https://github.com/eora-ai/torchok/pull/115
    • Hot fix for run all configs without errors by @PososikTeam in https://github.com/eora-ai/torchok/pull/116
    • Feature_metric_with_utils by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/117
    • Feature detection dataset by @PososikTeam in https://github.com/eora-ai/torchok/pull/118
    • Hotfix python3.7 maintain by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/119
    • Feature Pairwise Task by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/110
    • Fix flake8 action by @VladislavPatrushev in https://github.com/eora-ai/torchok/pull/120
    • fixed metric tests by @PososikTeam in https://github.com/eora-ai/torchok/pull/125
    • Update for new lightning version by @Animatory in https://github.com/eora-ai/torchok/pull/127
    • Fixed pandas version by @VladVin in https://github.com/eora-ai/torchok/pull/128
    • Fixed numpy version by @VladVin in https://github.com/eora-ai/torchok/pull/129
    • support many validation dataloaders by @PososikTeam in https://github.com/eora-ai/torchok/pull/130
    • Fix COCO by @PososikTeam in https://github.com/eora-ai/torchok/pull/133
    • implement bce loss by @PososikTeam in https://github.com/eora-ai/torchok/pull/131
    • Dict support in MetricManager by @PososikTeam in https://github.com/eora-ai/torchok/pull/123
    • Fix bugs by @PososikTeam in https://github.com/eora-ai/torchok/pull/126
    • Fix dependencies in pyproject.toml by @VladVin in https://github.com/eora-ai/torchok/pull/134
    • tests fix by @PososikTeam in https://github.com/eora-ai/torchok/pull/136
    • Fix library versions by @PososikTeam in https://github.com/eora-ai/torchok/pull/137
    • Full CI/CD: lint, test, publish by @VladVin in https://github.com/eora-ai/torchok/pull/135
    • Fix additional tests by @PososikTeam in https://github.com/eora-ai/torchok/pull/138
    • CI/CD tests fix and package version update by @VladVin in https://github.com/eora-ai/torchok/pull/139
    • Fixed PyPI publishing trigger in CI/CD by @VladVin in https://github.com/eora-ai/torchok/pull/140
    • Split CI/CD workflows by @VladVin in https://github.com/eora-ai/torchok/pull/141
    • Update prerelease version by @VladVin in https://github.com/eora-ai/torchok/pull/142
    • Remove uploading to TestPyPI from CD process & package update by @VladVin in https://github.com/eora-ai/torchok/pull/143

    New Contributors

    • @Animatory made their first contribution in https://github.com/eora-ai/torchok/pull/1
    • @VladislavPatrushev made their first contribution in https://github.com/eora-ai/torchok/pull/12
    • @PososikTeam made their first contribution in https://github.com/eora-ai/torchok/pull/14

    Full Changelog: https://github.com/eora-ai/torchok/commits/v0.4.11

    Source code(tar.gz)
    Source code(zip)
A PyTorch-Based Framework for Deep Learning in Computer Vision

TorchCV: A PyTorch-Based Framework for Deep Learning in Computer Vision @misc{you2019torchcv, author = {Ansheng You and Xiangtai Li and Zhen Zhu a

Donny You 2.2k Jan 09, 2023
ExCon: Explanation-driven Supervised Contrastive Learning

ExCon: Explanation-driven Supervised Contrastive Learning Link to the paper: https://arxiv.org/pdf/2111.14271.pdf Contributors of this repo: Zhibo Zha

Zhibo (Darren) Zhang 18 Nov 01, 2022
Implementation of NÜWA, state of the art attention network for text to video synthesis, in Pytorch

NÜWA - Pytorch (wip) Implementation of NÜWA, state of the art attention network for text to video synthesis, in Pytorch. This repository will be popul

Phil Wang 463 Dec 28, 2022
Code for the paper "TadGAN: Time Series Anomaly Detection Using Generative Adversarial Networks"

TadGAN: Time Series Anomaly Detection Using Generative Adversarial Networks This is a Python3 / Pytorch implementation of TadGAN paper. The associated

Arun 92 Dec 03, 2022
Discover hidden deepweb pages

DeepWeb Scapper Att: Demo version An simple script to scrappe deepweb to find pages. Will return if any of those exists and will save on a file. You s

Héber Júlio 77 Oct 02, 2022
[AI6101] Introduction to AI & AI Ethics is a core course of MSAI, SCSE, NTU, Singapore

[AI6101] Introduction to AI & AI Ethics is a core course of MSAI, SCSE, NTU, Singapore. The repository corresponds to the AI6101 of Semester 1, AY2021-2022, starting from 08/2021. The instructors of

AccSrd 1 Sep 22, 2022
converts nominal survey data into a numerical value based on a dictionary lookup.

SWAP RATE Converts nominal survey data into a numerical values based on a dictionary lookup. It allows the user to switch nominal scale data from text

Jake Rhodes 1 Jan 18, 2022
Qt-GUI implementation of the YOLOv5 algorithm (ver.6 and ver.5)

YOLOv5-GUI 🎉 YOLOv5算法(ver.6及ver.5)的Qt-GUI实现 🎉 Qt-GUI implementation of the YOLOv5 algorithm (ver.6 and ver.5). 基于YOLOv5的v5版本和v6版本及Javacr大佬的UI逻辑进行编写

EricFang 12 Dec 28, 2022
Iterative Normalization: Beyond Standardization towards Efficient Whitening

IterNorm Code for reproducing the results in the following paper: Iterative Normalization: Beyond Standardization towards Efficient Whitening Lei Huan

Lei Huang 21 Dec 27, 2022
Tensorflow port of a full NetVLAD network

netvlad_tf The main intention of this repo is deployment of a full NetVLAD network, which was originally implemented in Matlab, in Python. We provide

Robotics and Perception Group 225 Nov 08, 2022
PyTorch implementation of Federated Learning with Non-IID Data, and federated learning algorithms, including FedAvg, FedProx.

Federated Learning with Non-IID Data This is an implementation of the following paper: Yue Zhao, Meng Li, Liangzhen Lai, Naveen Suda, Damon Civin, Vik

Youngjoon Lee 48 Dec 29, 2022
Generic U-Net Tensorflow implementation for image segmentation

Tensorflow Unet Warning This project is discontinued in favour of a Tensorflow 2 compatible reimplementation of this project found under https://githu

Joel Akeret 1.8k Dec 10, 2022
A simple implementation of Kalman filter in single object tracking

kalman-filter-in-single-object-tracking A simple implementation of Kalman filter in single object tracking https://www.bilibili.com/video/BV1Qf4y1J7D4

130 Dec 26, 2022
Introduction to Statistics and Basics of Mathematics for Data Science - The Hacker's Way

HackerMath for Machine Learning “Study hard what interests you the most in the most undisciplined, irreverent and original manner possible.” ― Richard

Amit Kapoor 1.4k Dec 22, 2022
PyTorch implementation of Trust Region Policy Optimization

PyTorch implementation of TRPO Try my implementation of PPO (aka newer better variant of TRPO), unless you need to you TRPO for some specific reasons.

Ilya Kostrikov 366 Nov 15, 2022
Sample Code for "Pessimism Meets Invariance: Provably Efficient Offline Mean-Field Multi-Agent RL"

Sample Code for "Pessimism Meets Invariance: Provably Efficient Offline Mean-Field Multi-Agent RL" This is the official codebase for Pessimism Meets I

3 Sep 19, 2022
Graph Transformer Architecture. Source code for

Graph Transformer Architecture Source code for the paper "A Generalization of Transformer Networks to Graphs" by Vijay Prakash Dwivedi and Xavier Bres

NTU Graph Deep Learning Lab 561 Jan 08, 2023
Codes of paper "Unseen Object Amodal Instance Segmentation via Hierarchical Occlusion Modeling"

Unseen Object Amodal Instance Segmentation (UOAIS) Seunghyeok Back, Joosoon Lee, Taewon Kim, Sangjun Noh, Raeyoung Kang, Seongho Bak, Kyoobin Lee This

GIST-AILAB 92 Dec 13, 2022
Resilience from Diversity: Population-based approach to harden models against adversarial attacks

Resilience from Diversity: Population-based approach to harden models against adversarial attacks Requirements To install requirements: pip install -r

0 Nov 23, 2021
Multi-Scale Progressive Fusion Network for Single Image Deraining

Multi-Scale Progressive Fusion Network for Single Image Deraining (MSPFN) This is an implementation of the MSPFN model proposed in the paper (Multi-Sc

Kuijiang 128 Nov 21, 2022