Semantic Segmentation Architectures Implemented in PyTorch

Overview

pytorch-semseg

license pypi DOI

Semantic Segmentation Algorithms Implemented in PyTorch

This repository aims at mirroring popular semantic segmentation architectures in PyTorch.

Networks implemented

  • PSPNet - With support for loading pretrained models w/o caffe dependency
  • ICNet - With optional batchnorm and pretrained models
  • FRRN - Model A and B
  • FCN - All 1 (FCN32s), 2 (FCN16s) and 3 (FCN8s) stream variants
  • U-Net - With optional deconvolution and batchnorm
  • Link-Net - With multiple resnet backends
  • Segnet - With Unpooling using Maxpool indices

Upcoming

DataLoaders implemented

Requirements

  • pytorch >=0.4.0
  • torchvision ==0.2.0
  • scipy
  • tqdm
  • tensorboardX

One-line installation

pip install -r requirements.txt

Data

  • Download data for desired dataset(s) from list of URLs here.
  • Extract the zip / tar and modify the path appropriately in your config.yaml

Usage

Setup config file

# Model Configuration
model:
    arch: 
   
   
    
     [options: 'fcn[8,16,32]s, unet, segnet, pspnet, icnet, icnetBN, linknet, frrn[A,B]'
   
   
    
   
   
    
    :
    
    
   
   

# Data Configuration
data:
    dataset: 
   
   
    
     [options: 'pascal, camvid, ade20k, mit_sceneparsing_benchmark, cityscapes, nyuv2, sunrgbd, vistas'] 
   
   
    train_split: 
   
   
    val_split: 
   
   
    img_rows: 512
    img_cols: 1024
    path: 
   
   
    
   
   
    
    :
    
    
   
   

# Training Configuration
training:
    n_workers: 64
    train_iters: 35000
    batch_size: 16
    val_interval: 500
    print_interval: 25
    loss:
        name: 
   
   
    
     [options: 'cross_entropy, bootstrapped_cross_entropy, multi_scale_crossentropy']
   
   
        
   
   
    
    :
    
    
   
   

    # Optmizer Configuration
    optimizer:
        name: 
   
   
    
     [options: 'sgd, adam, adamax, asgd, adadelta, adagrad, rmsprop']
   
   
        lr: 1.0e-3
        
   
   
    
    :
    
    
   
   

        # Warmup LR Configuration
        warmup_iters: 
   
   
        mode: <'constant' or 'linear' for warmup'>
        gamma: 
   
   
       
    # Augmentations Configuration
    augmentations:
        gamma: x                                     #[gamma varied in 1 to 1+x]
        hue: x                                       #[hue varied in -x to x]
        brightness: x                                #[brightness varied in 1-x to 1+x]
        saturation: x                                #[saturation varied in 1-x to 1+x]
        contrast: x                                  #[contrast varied in 1-x to 1+x]
        rcrop: [h, w]                                #[crop of size (h,w)]
        translate: [dh, dw]                          #[reflective translation by (dh, dw)]
        rotate: d                                    #[rotate -d to d degrees]
        scale: [h,w]                                 #[scale to size (h,w)]
        ccrop: [h,w]                                 #[center crop of (h,w)]
        hflip: p                                     #[flip horizontally with chance p]
        vflip: p                                     #[flip vertically with chance p]

    # LR Schedule Configuration
    lr_schedule:
        name: 
   
   
    
     [options: 'constant_lr, poly_lr, multi_step, cosine_annealing, exp_lr']
   
   
        
   
   
    
    :
    
    
   
   

    # Resume from checkpoint  
    resume: 
   
   

To train the model :

python train.py [-h] [--config [CONFIG]] 

--config                Configuration file to use

To validate the model :

usage: validate.py [-h] [--config [CONFIG]] [--model_path [MODEL_PATH]]
                       [--eval_flip] [--measure_time]

  --config              Config file to be used
  --model_path          Path to the saved model
  --eval_flip           Enable evaluation with flipped image | True by default
  --measure_time        Enable evaluation with time (fps) measurement | True
                        by default

To test the model w.r.t. a dataset on custom images(s):

python test.py [-h] [--model_path [MODEL_PATH]] [--dataset [DATASET]]
               [--dcrf [DCRF]] [--img_path [IMG_PATH]] [--out_path [OUT_PATH]]
 
  --model_path          Path to the saved model
  --dataset             Dataset to use ['pascal, camvid, ade20k etc']
  --dcrf                Enable DenseCRF based post-processing
  --img_path            Path of the input image
  --out_path            Path of the output segmap

If you find this code useful in your research, please consider citing:

@article{mshahsemseg,
    Author = {Meet P Shah},
    Title = {Semantic Segmentation Architectures Implemented in PyTorch.},
    Journal = {https://github.com/meetshah1995/pytorch-semseg},
    Year = {2017}
}
Comments
  • LinkNet implementation working?

    LinkNet implementation working?

    Hello, was excited to see you reimplemented LinkNet in PyTorch.

    Can you verify whether the model has been tested? I ran into a few issues, including that linknet is not included in the get_model() function in models/init.py and also this line in model/utils.py is broken. I seem to have fixed these two but am running into Cuda bad params world. I wanted to ask first whether or not it's been tested (and if you could put me to a script that works with it) before diving in deeper. Thanks!

    opened by peteflorence 17
  • Update PSPNet and ICNet

    Update PSPNet and ICNet

    Modifications:

    1. In cityscapes_loader.py, add args for mean version and img_norm, and input type for scipy.misc.imresize needs to be uint8 with RGB mode (since original pretrained model uses pascal mean image, and image doesn't normalize to [0,1])
    2. Fix wrong number n_blocks for bottoleNeckIdentityPSP in residualBlockPSP function (n_blocks -> n_blocks-1)
    3. Add auxiliary training layers for training PSPNet
    4. Modify tile_predict with flip arg and support for batch with tensor type
    5. Add PSPNet support for training and testing (extra args: img_norm, eval_flip, measure_time)

    Validation results on cityscapes validation set (mIoU/pAcc): Without flip: 78.65/96.31 With flip: 78.80/96.34 I feed images into network input size: 1025x2049 and single scale (since model input is odd numbers (713x713)) Run on single GTX 1080TI, time is about 1.2~1.3 fps python validate.py --model_path checkpoints/pspnet_101_cityscapes.pth --dataset cityscapes --img_rows 1025 --img_cols 2049 --no-img_norm --eval_flip --measure_time --batch_size 2 --split val

    Pretrained models in pytorch: pspnet_50_ade20k.pth pspnet_101_cityscapes.pth pspnet_101_pascalvoc.pth

    opened by adam9500370 13
  • Has someone trained successfully?  The loss converges to 0.X  , but the segmentation effect is poor

    Has someone trained successfully? The loss converges to 0.X , but the segmentation effect is poor

    model: fcn8s default parameter, n_epoch=50

    when epoch=2,mean IoU=0.19 epoch=5,meanIoU=0.425 epoch=6,7,8....49,mean IoU acc and other metrics unchanged

    Has someone trained successfully?

    opened by jetxa 11
  • All data nan

    All data nan

    I've installed all requirement package, but as I run train.py --arch fcn8s ( I set ade20k as default), there are some warning and all result are nan like this:

    /home/zqk/work/pytorch_seg/pytorch-semseg/ptsemseg/metrics.py:31:RuntimeWarning: invalid value encountered in double_scalars acc = np.diag(hist).sum() / hist.sum() /home/zqk/work/pytorch_seg/pytorch-semseg/ptsemseg/metrics.py:32: RuntimeWarning: invalid value encountered in divide acc_cls = np.diag(hist) / hist.sum(axis=1) /home/zqk/work/pytorch_seg/pytorch-semseg/ptsemseg/metrics.py:33: RuntimeWarning: Mean of empty slice acc_cls = np.nanmean(acc_cls) /home/zqk/work/pytorch_seg/pytorch-semseg/ptsemseg/metrics.py:34: RuntimeWarning: invalid value encountered in divide iu = np.diag(hist) / (hist.sum(axis=1) + hist.sum(axis=0) - np.diag(hist)) /home/zqk/work/pytorch_seg/pytorch-semseg/ptsemseg/metrics.py:35: RuntimeWarning: Mean of empty slice mean_iu = np.nanmean(iu) /home/zqk/work/pytorch_seg/pytorch-semseg/ptsemseg/metrics.py:36: RuntimeWarning: invalid value encountered in divide freq = hist.sum(axis=1) / hist.sum() /home/zqk/work/pytorch_seg/pytorch-semseg/ptsemseg/metrics.py:37: RuntimeWarning: invalid value encountered in greater fwavacc = (freq[freq > 0] * iu[freq > 0]).sum() ('FreqW Acc : \t', 0.0) ('Overall Acc: \t', nan) ('Mean Acc : \t', nan) ('Mean IoU : \t', nan) 0it [00:00, ?it/s] ('FreqW Acc : \t', 0.0) ('Overall Acc: \t', nan) ('Mean Acc : \t', nan) ('Mean IoU : \t', nan) 0it [00:00, ?it/s] ('FreqW Acc : \t', 0.0) ('Overall Acc: \t', nan) ('Mean Acc : \t', nan) ('Mean IoU : \t', nan) 0it [00:00, ?it/s] ('FreqW Acc : \t', 0.0) ('Overall Acc: \t', nan) ('Mean Acc : \t', nan) ('Mean IoU : \t', nan)

    what's wrong with this? and how to fix it,thanks for your help

    opened by 3bobo 10
  • RuntimeError: can't convert a given np.ndarray to a tensor

    RuntimeError: can't convert a given np.ndarray to a tensor

    @meetshah1995 @josephreisinger The first epoch is normal: Epoch [1/100] Loss: 3.4047 Epoch [1/100] Loss: 2.2006 Epoch [1/100] Loss: 1.7521 Epoch [1/100] Loss: 1.9977 Epoch [1/100] Loss: 1.9035 Epoch [1/100] Loss: 1.6435 Epoch [1/100] Loss: 1.4620 Epoch [1/100] Loss: 1.9718 Epoch [1/100] Loss: 0.9839 Epoch [1/100] Loss: 1.4327 Epoch [1/100] Loss: 1.5200 Epoch [1/100] Loss: 0.9417 Epoch [1/100] Loss: 1.3892 Epoch [1/100] Loss: 1.5654 Epoch [1/100] Loss: 1.4325 Epoch [1/100] Loss: 1.0973 Epoch [1/100] Loss: 1.2371 Epoch [1/100] Loss: 1.5081

    But second epoch is wrong:

    RuntimeError: Traceback (most recent call last): File "/home/hpl/anaconda2/envs/hpl36/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 55, in _worker_loop samples = collate_fn([dataset[i] for i in batch_indices]) File "/home/hpl/anaconda2/envs/hpl36/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 55, in samples = collate_fn([dataset[i] for i in batch_indices]) File "/home/hpl/code/2018/Face_parsing/pytorch-semseg-master/ptsemseg/loader/camvid_loader.py", line 47, in getitem img, lbl = self.transform(img, lbl) File "/home/hpl/code/2018/Face_parsing/pytorch-semseg-master/ptsemseg/loader/camvid_loader.py", line 64, in transform lbl = torch.from_numpy(lbl).long() RuntimeError: can't convert a given np.ndarray to a tensor - it has an invalid type. The only supported types are: double, float, int64, int32, and uint8.

    opened by HPL123 9
  • Doesn't train actually.

    Doesn't train actually.

    Many thanks for great opensource implementation of the semantic segmentation in pytorch ever!

    I'm trying to proceed through training 'segnet' model on 'pascal' dataset. What I've done:

    1. installed pytorch: 0.2.0_4 and python: 2.7.13
    2. downloaded VOCtrainval_11-May-2012.tar from http://host.robots.ox.ac.uk/pascal/VOC/voc2012/#Development%20Kit
    3. downloaded "Semantic Boundaries Dataset and Benchmark" from http://home.bharathh.info/pubs/codes/SBD/download.html
    4. as stated in Readme, extracted and pointed to them in config.json file
    5. started training process
    • started visdom server
    python -m visdom.server
    

    started training as:

    python train.py --arch segnet --dataset pascal
    

    training successfully started and going looks well: alt text

    after completion, generated 100 segnet_pascal_1_%2d.pkl files

    1. So, after that I'm trying to test newly trained model on the simple pictures:
    python test.py --model_path segnet_pascal_1_99.pkl --dataset pascal --img_path 2007_000033.jpg --out_path result_33.jpg
    

    alt text

    But result is quite wrong: alt text

    alt text

    for some reasons, output resolution differ and segmentation was not produced correctly.

    Could you please give me some advises what I'm doing wrong?

    alt text

    Many thanks, Ivan

    opened by chichivica 9
  • Error when running ICNet with PascalVOC

    Error when running ICNet with PascalVOC

    Hello,

    When I run python train.py --arch icnet --dataset pascal --n_epoch 500 I get the following output (checked on Windows and Linux, with PyTorch 0.3.1 and 0.4.1) The dataset is the one here.

    Using custom loss
    Traceback (most recent call last):
      File "train.py", line 160, in <module>
        train(args)
      File "train.py", line 86, in train
        outputs = model(images)
      File "C:\ProgramData\Anaconda3\lib\site-packages\torch\nn\modules\module.py", line 357, in __call__
        result = self.forward(*input, **kwargs)
      File "C:\ProgramData\Anaconda3\lib\site-packages\torch\nn\parallel\data_parallel.py", line 68, in forward
        return self.module(*inputs, **kwargs)
      File "C:\ProgramData\Anaconda3\lib\site-packages\torch\nn\modules\module.py", line 357, in __call__
        result = self.forward(*input, **kwargs)
      File "D:\nn\github\pytorch-semseg\ptsemseg\models\icnet.py", line 120, in forward
        x_sub24, sub4_cls = self.cff_sub24(x_sub4, x_sub2)
      File "C:\ProgramData\Anaconda3\lib\site-packages\torch\nn\modules\module.py", line 357, in __call__
        result = self.forward(*input, **kwargs)
      File "D:\nn\github\pytorch-semseg\ptsemseg\models\utils.py", line 500, in forward
        high_fused_fm = F.relu(low_fm+high_fm, inplace=True)
    RuntimeError: The size of tensor a (15) must match the size of tensor b (16) at non-singleton dimension 3
    

    Am I doing something wrong? Please let me know if you need more info.

    opened by flriancu 8
  • inplace operation

    inplace operation

    i run the pspnet in pytorch0.2.0, but I met the error RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation. thanks

    opened by zyfsa 8
  • Raise ValueError

    Raise ValueError

    When I run the code, it raise ValueError("Too many dimensions: %d > %d." % (ndim, ndmax)). It show that too many dimensions: 3 > 2. who can help me? Thank you!

    opened by bjchen666 8
  • no config.json file

    no config.json file

    Hello, when I run train.py with pascal dataset, filenofounderror 'no such file or directory config.json' is shown. The error is located in get_data_path function in pascal_voc_loader.py. So how to fix it? Thx!

    opened by renlikun1988 7
  • Using with images having varying number of segments

    Using with images having varying number of segments

    I have a dataset of images containing varying number of segments. I also have pixel wise labels for each of them. How can I use this dataset with this library?

    opened by somnathrakshit 7
  • Poly learning rate scheduler not doing anything

    Poly learning rate scheduler not doing anything

    The poly learning rate doesn't work as intended. The current implementation is as follows:

    def get_lr(self):
            if self.last_epoch % self.decay_iter or self.last_epoch % self.max_iter:
                return [base_lr for base_lr in self.base_lrs]
            else:
                factor = (1 - self.last_epoch / float(self.max_iter)) ** self.gamma
                return [base_lr * factor for base_lr in self.base_lrs]
    

    Notice that the else condition will never get hit since self.last_epoch % self.max_iter will almost always return a non-zero number.

    opened by connorlee77 1
  • python-cdo

    python-cdo

    When I run cdo = cdo(), it appears TypeError . How can you solve it?

    # In
    from cdo import Cdo
    import os
    import numpy as np
    import re
    
    cdo = Cdo()
    

    # Out
    TypeError                                 Traceback (most recent call last)
    Input In [19], in <cell line: 6>()
          3 import numpy as np
          4 import re
    ----> 6 cdo = Cdo()
    
    File ~\anaconda3\envs\CMIP6\lib\site-packages\cdo.py:187, in Cdo.__init__(self, cdo, returnNoneOnError, forceOutput, env, debug, tempdir, logging, logFile, cmd, options)
        184 self._cmd = cmd
        185 self._options = options
    --> 187 self.operators         = self.__getOperators()
        188 self.noOutputOperators = [op for op in self.operators.keys() if 0 == self.operators[op]]
        189 self.returnNoneOnError = returnNoneOnError
    
    File ~\anaconda3\envs\CMIP6\lib\site-packages\cdo.py:278, in Cdo.__getOperators(self)
        275 def __getOperators(self):  # {{{
        276   operators = {}
    --> 278   version = parse_version(getCdoVersion(self.CDO))
        279   if (version < parse_version('1.7.2')):
        280     proc = subprocess.Popen([self.CDO, '-h'], stderr=subprocess.PIPE, stdout=subprocess.PIPE)
    
    File ~\anaconda3\envs\CMIP6\lib\site-packages\cdo.py:78, in getCdoVersion(path2cdo, verbose)
         77 def getCdoVersion(path2cdo, verbose=False):
    ---> 78   proc = subprocess.Popen([path2cdo, '-V'], stderr=subprocess.PIPE, stdout=subprocess.PIPE)
         79   ret = proc.communicate()
         81   cdo_help_stdout = ret[0].decode("utf-8")
    
    File ~\anaconda3\envs\CMIP6\lib\subprocess.py:951, in Popen.__init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask)
        947         if self.text_mode:
        948             self.stderr = io.TextIOWrapper(self.stderr,
        949                     encoding=encoding, errors=errors)
    --> 951     self._execute_child(args, executable, preexec_fn, close_fds,
        952                         pass_fds, cwd, env,
        953                         startupinfo, creationflags, shell,
        954                         p2cread, p2cwrite,
        955                         c2pread, c2pwrite,
        956                         errread, errwrite,
        957                         restore_signals,
        958                         gid, gids, uid, umask,
        959                         start_new_session)
        960 except:
        961     # Cleanup if the child failed starting.
        962     for f in filter(None, (self.stdin, self.stdout, self.stderr)):
    
    File ~\anaconda3\envs\CMIP6\lib\subprocess.py:1360, in Popen._execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, unused_restore_signals, unused_gid, unused_gids, unused_uid, unused_umask, unused_start_new_session)
       1358     args = list2cmdline([args])
       1359 else:
    -> 1360     args = list2cmdline(args)
       1362 if executable is not None:
       1363     executable = os.fsdecode(executable)
    
    File ~\anaconda3\envs\CMIP6\lib\subprocess.py:565, in list2cmdline(seq)
        563 result = []
        564 needquote = False
    --> 565 for arg in map(os.fsdecode, seq):
        566     bs_buf = []
        568     # Add a space to separate this argument from the others
    
    File ~\anaconda3\envs\CMIP6\lib\os.py:822, in _fscodec.<locals>.fsdecode(filename)
        816 def fsdecode(filename):
        817     """Decode filename (an os.PathLike, bytes, or str) from the filesystem
        818     encoding with 'surrogateescape' error handler, return str unchanged. On
        819     Windows, use 'strict' error handler if the file system encoding is
        820     'mbcs' (which is the default encoding).
        821     """
    --> 822     filename = fspath(filename)  # Does type-checking of `filename`.
        823     if isinstance(filename, bytes):
        824         return filename.decode(encoding, errors)
    
    TypeError: expected str, bytes or os.PathLike object, not NoneType
    
    
    opened by xfry-lixuan 1
  • Where is model being saved after training?

    Where is model being saved after training?

    For the validation, we need to pass the path of saved model after training, but i am unable to find the path. Though in config file, i have added resume: saved_model.pt but i am unable to find the location of the saved model.

    opened by talhaanwarch 0
  • KeyError: 'name'

    KeyError: 'name'

    Traceback (most recent call last): File "E:/Semantic Segmentation/pytorch-semseg-master/train.py", line 229, in train(cfg, writer, logger) File "E:/Semantic Segmentation/pytorch-semseg-master/train.py", line 80, in train optimizer_cls = get_optimizer(cfg) File "E:\Semantic Segmentation\pytorch-semseg-master\ptsemseg\optimizers_init_.py", line 24, in get_optimizer opt_name = cfg["training"]["optimizer"]["name"] KeyError: 'name'

    opened by lewisxiaoxu 2
  •  Problem while trying to train HardNet on CamVid dataset

    Problem while trying to train HardNet on CamVid dataset

    I'm currently trying to train HardNet on CamVid but I always get the below error :

    Traceback (most recent call last): File "train.py", line 267, in train(cfg, writer, logger) File "train.py", line 138, in train for (images, labels, _) in trainloader: ValueError: not enough values to unpack (expected 3, got 2) Did anyone encounter this issue or succeed in finding the problem ?

    Any help is appreciated.

    opened by MBKS1 0
Releases(v0.1.2)
Natural Posterior Network: Deep Bayesian Predictive Uncertainty for Exponential Family Distributions

Natural Posterior Network This repository provides the official implementation o

Oliver Borchert 54 Dec 06, 2022
a morph transfer UGATIT for image translation.

Morph-UGATIT a morph transfer UGATIT for image translation. Introduction 中文技术文档 This is Pytorch implementation of UGATIT, paper "U-GAT-IT: Unsupervise

55 Nov 14, 2022
A Domain-Agnostic Benchmark for Self-Supervised Learning

DABS: A Domain Agnostic Benchmark for Self-Supervised Learning This repository contains the code for DABS, a benchmark for domain-agnostic self-superv

Alex Tamkin 81 Dec 09, 2022
Official project repository for 'Normality-Calibrated Autoencoder for Unsupervised Anomaly Detection on Data Contamination'

NCAE_UAD Official project repository of 'Normality-Calibrated Autoencoder for Unsupervised Anomaly Detection on Data Contamination' Abstract In this p

Jongmin Andrew Yu 2 Feb 10, 2022
Official implementations of PSENet, PAN and PAN++.

News (2021/11/03) Paddle implementation of PAN, see Paddle-PANet. Thanks @simplify23. (2021/04/08) PSENet and PAN are included in MMOCR. Introduction

395 Dec 14, 2022
Accompanying code for the paper "A Kernel Test for Causal Association via Noise Contrastive Backdoor Adjustment".

#backdoor-HSIC (bd_HSIC) Accompanying code for the paper "A Kernel Test for Causal Association via Noise Contrastive Backdoor Adjustment". To generate

Robert Hu 0 Nov 25, 2021
Some simple programs built in Python: webcam with cv2 that detects eyes and face, with grayscale filter

Programas en Python Algunos programas simples creados en Python: 📹 Webcam con c

Madirex 1 Feb 15, 2022
Face Transformer for Recognition

Face-Transformer This is the code of Face Transformer for Recognition (https://arxiv.org/abs/2103.14803v2). Recently there has been great interests of

Zhong Yaoyao 153 Nov 30, 2022
Compressed Video Action Recognition

Compressed Video Action Recognition Chao-Yuan Wu, Manzil Zaheer, Hexiang Hu, R. Manmatha, Alexander J. Smola, Philipp Krähenbühl. In CVPR, 2018. [Proj

Chao-Yuan Wu 479 Dec 26, 2022
Code for the Interspeech 2021 paper "AST: Audio Spectrogram Transformer".

AST: Audio Spectrogram Transformer Introduction Citing Getting Started ESC-50 Recipe Speechcommands Recipe AudioSet Recipe Pretrained Models Contact I

Yuan Gong 603 Jan 07, 2023
banditml is a lightweight contextual bandit & reinforcement learning library designed to be used in production Python services.

banditml is a lightweight contextual bandit & reinforcement learning library designed to be used in production Python services. This library is developed by Bandit ML and ex-authors of Facebook's app

Bandit ML 51 Dec 22, 2022
A gesture recognition system powered by OpenPose, k-nearest neighbours, and local outlier factor.

OpenHands OpenHands is a gesture recognition system powered by OpenPose, k-nearest neighbours, and local outlier factor. Currently the system can iden

Paul Treanor 12 Jan 10, 2022
Wider-Yolo Kütüphanesi ile Yüz Tespit Uygulamanı Yap

WIDER-YOLO : Yüz Tespit Uygulaması Yap Wider-Yolo Kütüphanesinin Kullanımı 1. Wider Face Veri Setini İndir Train Dataset Val Dataset Test Dataset Not:

Kadir Nar 6 Aug 22, 2022
Official repository of the paper 'Essentials for Class Incremental Learning'

Essentials for Class Incremental Learning Official repository of the paper 'Essentials for Class Incremental Learning' This Pytorch repository contain

33 Nov 27, 2022
Highway networks implemented in PyTorch.

PyTorch Highway Networks Highway networks implemented in PyTorch. Just the MNIST example from PyTorch hacked to work with Highway layers. Todo Make th

Conner Vercellino 56 Dec 14, 2022
UMEC: Unified Model and Embedding Compression for Efficient Recommendation Systems

[ICLR 2021] "UMEC: Unified Model and Embedding Compression for Efficient Recommendation Systems" by Jiayi Shen, Haotao Wang*, Shupeng Gui*, Jianchao Tan, Zhangyang Wang, and Ji Liu

VITA 39 Dec 03, 2022
Attentive Implicit Representation Networks (AIR-Nets)

Attentive Implicit Representation Networks (AIR-Nets) Preprint | Supplementary | Accepted at the International Conference on 3D Vision (3DV) teaser.mo

29 Dec 07, 2022
The fastest way to visualize GradCAM with your Keras models.

VizGradCAM VizGradCam is the fastest way to visualize GradCAM in Keras models. GradCAM helps with providing visual explainability of trained models an

58 Nov 19, 2022
Implementation of light baking system for ray tracing based on Activision's UberBake

Vulkan Light Bakary MSU Graphics Group Student's Diploma Project Treefonov Andrey [GitHub] [LinkedIn] Project Goal The goal of the project is to imple

Andrey Treefonov 7 Dec 27, 2022
Machine Learning Platform for Kubernetes

Reproduce, Automate, Scale your data science. Welcome to Polyaxon, a platform for building, training, and monitoring large scale deep learning applica

polyaxon 3.2k Dec 23, 2022