Torch implementation of "Enhanced Deep Residual Networks for Single Image Super-Resolution"

Overview

NTIRE2017 Super-resolution Challenge: SNU_CVLab

Introduction

This is our project repository for CVPR 2017 Workshop (2nd NTIRE).

We, Team SNU_CVLab, (Bee Lim, Sanghyun Son, Heewon Kim, Seungjun Nah, and Kyoung Mu Lee of Computer Vision Lab, Seoul National University) are winners of NTIRE2017 Challenge on Single Image Super-Resolution.

Our paper was published in CVPR 2017 workshop (2nd NTIRE), and won the Best Paper Award of the workshop challenge track.

Please refer to our paper for details.

If you find our work useful in your research or publication, please cite our work:

[1] Bee Lim, Sanghyun Son, Heewon Kim, Seungjun Nah, and Kyoung Mu Lee, "Enhanced Deep Residual Networks for Single Image Super-Resolution," 2nd NTIRE: New Trends in Image Restoration and Enhancement workshop and challenge on image super-resolution in conjunction with CVPR 2017. [PDF] [arXiv] [Slide]

@InProceedings{Lim_2017_CVPR_Workshops,
  author = {Lim, Bee and Son, Sanghyun and Kim, Heewon and Nah, Seungjun and Lee, Kyoung Mu},
  title = {Enhanced Deep Residual Networks for Single Image Super-Resolution},
  booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR) Workshops},
  month = {July},
  year = {2017}
}

In this repository, we provide

  • Our model architecture description (EDSR, MDSR)
  • NTIRE2017 Super-resolution Challenge Results
  • Demo & Training code
  • Trained models (EDSR, MDSR)
  • Datasets we used (DIV2K, Flickr2K)
  • Super-resolution examples

The code is based on Facebook's Torch implementation of ResNet (facebook/fb.resnet.torch).

We also provide PyTorch version of EDSR and MDSR. (Until now, only some models are available.)

Model Architecture

EDSR (Single-scale model. We provide scale x2, x3, x4 models).

EDSR

MDSR (Multi-scale model. It can handle x2, x3, x4 super-resolution in a single model).

MDSR

Note that the MDSR architecture for the challenge and for the paper[1] is slightly different. During the challenge, MDSR had variation between two challenge tracks. While we had scale-specific feature extraction modules for track 2:unknown downscaling, we didn't use the scale-specific modules for track 1:bicubic downscaling.

We later unified the MDSR model in our paper[1] by including scale-specific modules for both cases. From now on, unless specified as "challenge", we describe the models described in the paper.

NTIRE2017 Super-resolution Challenge Results

We proposed 2 methods and they won the 1st (EDSR) and 2nd (MDSR) place.

Challenge_result

We have also compared the super-resolution performance of our models with previous state-of-the-art methods.

Paper_result

About our code

Dependencies

  • Torch7
  • cuDNN
  • nccl (Optional, for faster GPU communication)

Our code is tested under Ubuntu 14.04 and 16.04 environment with Titan X GPUs (12GB VRAM).

Code

Clone this repository into any place you want. You may follow the example below.

makeReposit = [/the/directory/as/you/wish]
mkdir -p $makeReposit/; cd $makeReposit/
git clone https://github.com/LimBee/NTIRE2017.git

Quick Start (Demo)

You can test our super-resolution algorithm with your own images.

We assume the images are downsampled by bicubic interpolation.

Model Scale File Name Self Esemble # ResBlocks # Filters # Parameters
EDSR baseline x2 baseline_x2.t7 X 16 64 1.5M
EDSR baseline x3 baseline_x3.t7 X 16 64 1.5M
EDSR baseline x4 baseline_x4.t7 X 16 64 1.5M
MDSR baseline Multi baseline_multiscale.t7 X 16 64 3.2M
EDSR x2 EDSR_x2.t7 X 32 256 43M
EDSR x3 EDSR_x3.t7 X 32 256 43M
EDSR x4 EDSR_x4.t7 X 32 256 43M
MDSR Multi MDSR.t7 X 80 64 8.0M
EDSR+ x2 EDSR_x2.t7 O 32 256 43M
EDSR+ x3 EDSR_x3.t7 O 32 256 43M
EDSR+ x4 EDSR_x4.t7 O 32 256 43M
MDSR+ Multi MDSR.t7 O 80 64 8.0M

  1. Download our models

    cd $makeReposit/NTIRE2017/demo/model/
    
    # Our models for the paper[1]
    wget https://cv.snu.ac.kr/research/EDSR/model_paper.tar

    Or, use the link: model_paper.tar

    (If you would like to run the models we used during the challenge, please contact us.)

    After downloading the .tar files, make sure that the model files are placed in proper locations. For example,

    $makeReposit/NTIRE2017/demo/model/bicubic_x2.t7
    $makeReposit/NTIRE2017/demo/model/bicubic_x3.t7
    ...
  2. Place your low-resolution test images at

    $makeReposit/NTIRE2017/demo/img_input/

    The demo code will read .jpg, .jpeg, .png format images.

  3. Run test.lua

    You can run different models and scales by changing input arguments.

    # To run for scale 2, 3, or 4, set -scale as 2, 3, or 4
    # To run EDSR+ and MDSR+, you need to set -selfEnsemble as true
    
    cd $makeReposit/NTIRE2017/demo
    
    # Test EDSR (scale 2)
    th test.lua -model EDSR_x2 -selfEnsemble false
    
    # Test EDSR+ (scale 2)
    th test.lua -model EDSR_x2 -selfEnsemble true
    
    # Test MDSR (scale 2)
    th test.lua -model MDSR -scale 2 -selfEnsemble false
    
    # Test MDSR+ (scale 2)
    th test.lua -model MDSR -scale 2 -selfEnsemble true

    (Note: To run the MDSR, model name should include multiscale or MDSR. e.g. multiscale_blahblahblah.t7)

    The result images will be located at

    $makeReposit/NTIRE2017/demo/img_output/
    • Here are some optional argument examples you can adjust. Please refer to the following explanation.
    # You can test our model with multiple GPU. (n = 1, 2, 4)
    -nGPU       [n]
    
    # You must specify this directory. Default is /var/tmp/dataset
    -dataDir    [$makeData]
    -dataset    [DIV2K | myData]
    -save       [Folder name]
    
    # Please see our paper[1] if you want to know about self-ensemble.
    -selfEnsemble   [true | false]
    
    # Please reduce the chopSize when you see 'out of memory'.
    # The optimal size of S can be vary depend on your maximum GPU memory.
    -chopSize   [S]   
  4. (Optional) Evaluate PSNR and SSIM if you have ground-truth HR images

    Place the GT images at

    $makeReposit/NTIRE2017/demo/img_target

    Evaluation is done by running the MATLAB script.

    matlab -nodisplay <evaluation.m

    If you don't want to calculate SSIM, please modify evaluation.m file as below. (Calculating SSIM of large image is very slow for 3 channel images.)

    line 6:     psnrOnly = false; -> psnrOnly = true;
    

You can reproduce our final results by running makeFinal.sh in NTIRE2017/demo directory. Please uncomment the command you want to execute in the file.

sh makeFinal.sh

Dataset

If you want to train or evaluate our models with DIV2K or Flickr2K dataset, please download the dataset from here. Place the tar file to the location you want. (We recommend /var/tmp/dataset/) If the dataset is located otherwise, you have to change the optional argument -dataset for training and test.

  • DIV2K from NTIRE2017

    makeData = /var/tmp/dataset/ # We recommend this path, but you can freely change it.
    mkdir -p $makeData/; cd $makedata/
    tar -xvf DIV2K.tar

    You should have the following directory structure:

    /var/tmp/dataset/DIV2K/DIV2K_train_HR/0???.png
    /var/tmp/dataset/DIV2K/DIV2K_train_LR_bicubic/X?/0???.png
    /var/tmp/dataset/DIV2K/DIV2K_train_LR_unknown/X?/0???.png

  • Flickr2K dataset collected by ourselves using Flickr API

    makeData = /var/tmp/dataset/
    mkdir -p $makeData/; cd $makedata/
    wget https://cv.snu.ac.kr/research/EDSR/Flickr2K.tar
    tar -xvf Flickr2K.tar

    You should have the following directory structure:

    /var/tmp/dataset/Flickr2K/Flickr2K_HR/00????.png
    /var/tmp/dataset/Flickr2K/Flickr2K_train_LR_bicubic/X?/00????x?.png
    /var/tmp/dataset/Flickr2K/Flickr2K_train_LR_unknown/X?/00????x?.png

    We also provide the code we used for collecting the Flickr2K images at

    $makeReposit/NTIRE2017/code/tools/Flickr2K/

    Use your own flickr API keys to use the script.

    During the challenge, we additionally generated training data by learning simple downsampler networks from DIV2K dataset track 2.
    You can download the downsampler models from here.

To make data loading faster, you can convert the dataset into binary .t7 files

  • Convert DIV2K dataset from .png to into .t7 files
    cd $makeReposit/NTIRE2017/code/tools
    
    # Choose one among below
    
    # This command generates multiple t7 files for
    # each image in DIV2K_train_HR folder (Requires ~2GB RAM for training)
    th png_to_t7.lua -apath $makeData -dataset DIV2K -split true
    
    # This command generates a single t7 file that contains
    # every image in DIV2K_train_HR folder (Requires ~16GB RAM for training)
    th png_to_t7.lua -apath $makeData -dataset DIV2K -split false
  • Convert Flickr2K dataset into .t7 files
    cd $makeReposit/NTIRE2017/code/tools
    
    # This command generates multiple t7 files for
    # each image in Flickr2K_HR folder
    th png_to_t7.lua -apath $makeData -dataset Flickr2K -split true

You can also use .png files too. Please see below Training section for the details.

Training

  1. To train our baseline model, please run the following command:

    th main.lua         # This model is not our final model!
    • Here are some optional arguments you can adjust. If you have any problem, please refer following lines. You can check out details in NTIRE2017/code/opts.lua.
      # You can train the model with multiple GPU. (Not multi-scale model.)
      -nGPU       [n]
      
      # Number of threads for data loading.
      -nThreads   [n]   
      
      # Please specify this directory. Default is /var/tmp/dataset
      -datadir    [$makeData]  
      
      # You can make an experiment folder with the name you want.
      -save       [Folder name]
      
      # You can resume your experiment from the last checkpoint.
      # Please do not set -save and -load at the same time.
      -load       [Folder name]     
      
      # png < t7 < t7pack - requires larger memory
      # png > t7 > t7pack - requires faster CPU & Storage
      -datatype   [png | t7 | t7pack]     
      
      # Please increase the splitBatch when you see 'out of memory' during training.
      # S should be the power of 2. (1, 2, 4, ...)
      -splitBatch [S]
      
      # Please reduce the chopSize when you see 'out of memory' during test.
      # The optimal size of S can be vary depend on your maximum GPU memory.
      -chopSize   [S]
  2. To train our EDSR and MDSR, please use the training.sh in NTIRE2017/code directory. You have to uncomment the line you want to execute.

    cd $makeReposit/NTIRE2017/code
    sh training.sh

    Some model may require pre-trained bicubic scale 2 or bicubic multiscale model. Here, we assume that you already downloaded bicubic_x2.t7 and bicubic_multiscale.t7 in the NTIRE2017/demo/model directory. Otherwise, you can create them yourself. It is also possible to start the traning from scratch by removing -preTrained option in training.sh.


Results

result_1

result_2

result_3

result_4

result_5

result_6

result_7

result_8

result_9

result_10

result_11

result_12

result_13

result_14

result_15

result_16

result_17

result_18

result_19

result_20

NTIRE2017 SR Challenge: Unknown Down-sampling Track

unknown_1

unknown_2

Comments
  • Preprocessing in this work

    Preprocessing in this work

    In the paper, you mentioned the only preprocessing you did was subtracting the mean RGB value from entire dataset. But did you also preprocess your label(high resolution image) in the same way, subtracting the mean RGB value from all the label images? Another thing I noticed was the constant 255 was used to scale the input in you code. Is it because the dynamic range of input is [0,1]?

    Could you show more details about your image preprocessing?

    Thanks,

    opened by zhiyang-fu 8
  • Error when converting DIV2K dataset to t7 files

    Error when converting DIV2K dataset to t7 files

    I've placed the DIV2K dataset in a custom location, changed the cmd to convert png -> t7 accordingly but before any conversion happens i get this error:

    th png_to_t7.lua -apath /mycustomfolder/div2k -dataset DIV2K
    
    Converting /mycustomfolder/div2k/DIV2K_train_HR
    /Users/me/torch/install/bin/luajit: png_to_t7.lua:113: bad argument #1 to 'sort' (table expected, got nil)
    stack traceback:
    	[C]: in function 'sort'
    	png_to_t7.lua:113: in main chunk
    	[C]: in function 'dofile'
    	...me/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:150: in main chunk
    	[C]: at 0x0100b54360
    

    I've got the following folders of the DIV2K dataset:

    DIV2K_train_HR
    DIV2K_train_LR_bicubic
    DIV2K_train_LR_unknown
    DIV2K_valid_HR
    DIV2K_valid_LR_bicubic
    

    PS: The link to your server isn't working anymore: http://cv.snu.ac.kr/research/EDSR/DIV2K.tar Could you please explain how to download the images from https://competitions.codalab.org/competitions/16303? There is no direct download link or data site.

    opened by subzerofun 8
  • Pixel mean substraction

    Pixel mean substraction

    Hi,

    I was wondering how did you compute the dataset mean that you substract/add at the start/end of the training. Did you add all red/green/blue components in all pixels, in all images?

    opened by csolorio 6
  • Number of training patches

    Number of training patches

    Hi,

    Please can you confirm how many patches are generated from 800 DIV2K train images .

    I mean the stride you use for extracting patches.

    One more thing, in one of your presentation, you are saying that the size is 96x96 while in paper you are using 48x48. Please can you confirm which is the correct size you use.

    opened by saeed-anwar 5
  • Recurrence the model using pytorch

    Recurrence the model using pytorch

    Hi, I am trying to recurrence baseline model x2 in pytorch. I think I create my model totally the same to the paper and baseline.lua. I convert your model baseline.x2.t7 to baseline.x2.pth and found that the parameters are different to my pytorch model's. Did you add 2 more conv() in your training?Or is there someting wrong in my steps?

    my baseline params | size | baseline origin params | size -- | -- | -- | -- conv_in.weight | 64x3x3x3 | 0.weight | 64x3x3x3 xxx | xxx | 1.weight | 64x64x3x3 residual.layer.0.conv1.weight | 64x64x3x3 | 2.0.0.0.0.0.0.weight | 64x64x3x3 residual.layer.0.conv2.weight | 64x64x3x3 | 2.0.0.0.0.0.2.weight | 64x64x3x3 esidual.layer.1.conv1.weight | 64x64x3x3 | 2.0.0.1.0.0.0.weight | 64x64x3x3 residual.layer.1.conv2.weight | 64x64x3x3 | 2.0.0.1.0.0.2.weight | 64x64x3x3 …… | …… | …… | …… residual.layer.15.conv2.weight | 64x64x3x3 | 2.0.0.15.0.0.2.weight | 64x64x3x3 conv_mid.weight | 64x64x3x3 | 2.0.0.16.weight | 64x64x3x3 conv3.weight | 256x64x3x3 | 3.0.weight | 256x64x3x3 conv_out.weight | 3x64x3x3 | 4.weight | 3x64x3x3 xxx | xxx | 5.weight | 3x3x1x1

    opened by luomomo 5
  • GPU RAM required for 'test'

    GPU RAM required for 'test'

    Greetings. Thanks for writing this paper and making your code repo available.

    I've been attempting to reproduce the DIV2K results. I was able to generate t7 files without issue, and am able to run the 'train' code for the X2 bilinear model (training from scratch).

    However, after the first 1000 iterations or so, when the code attempts to do a "test" cycle, it runs out of GPU ram. How much GPU ram is required to run the "test" section? Is there any way to reduce the RAM requirements for "test"? I tried dropping the mini-batch size but this only seems to affect RAM usage in "train".

    For now I've disabled the "test" section and am creating a dummy PSNR array to enable training to run, but this makes it impossible to track PSNR during training (all I can see is loss going down).

    opened by eturner303 5
  • MDSR not working

    MDSR not working

    Hi, I am having some trouble running the demos. if I run

    th test.lua -model EDSR_x2 -selfEnsemble false

    it works fine, but then when I run

    th test.lua -model MDSR -scale 2 -selfEnsemble false

    I get this error:

    Model: [MDSR]
    This is a multi-scale model! Swap the model
    /opt/torch/install/bin/luajit: test.lua:64: attempt to index a nil value
    stack traceback:
    	test.lua:64: in function 'swap'
    	test.lua:222: in main chunk
    	[C]: in function 'dofile'
    	/opt/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:150: in main chunk
    	[C]: at 0x00406670
    

    or if I run

    th test.lua -model EDSR_x4 -selfEnsemble false

    I get this error:

    Model: [EDSR_x4]
    >> [1/3]	2276523950_e06e9065b2_z.jpg	/opt/torch/install/bin/luajit: /NTIRE2017/code/utils.lua:313: bad argument #1 to 'copy' (sizes do not match at /opt/torch/extra/cutorch/lib/THC/THCTensorCopy.cu:31)
    stack traceback:
    	[C]: in function 'copy'
    	/NTIRE2017/code/utils.lua:313: in function 'chopForward'
    	/NTIRE2017/code/utils.lua:320: in function 'chopForward'
    	test.lua:252: in main chunk
    	[C]: in function 'dofile'
    	/opt/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:150: in main chunk
    	[C]: at 0x00406670
    

    Any idea what I am doing wrong? Thanks!

    opened by owang 3
  • Can I combine it with GAN?

    Can I combine it with GAN?

    Hello,LimBee,I just read your paper,the result is really cool,and EDSR gets the highest score in PSNR,but it seems it still has a sense of blurr in vision.I noted that you changed the loss function from l2 to l1,(though I don't know why it's better) As the "SRGAN" paper said:With a high PSNR,the results are often over smoothed,lack high-frequency detail,making them perceptually unsatisfying. And I want to change the l1 loss into perceptually loss, (combine EDSR with GAN),or using EDSR instead of SRResNet in SRGAN,will it be better ?

    opened by Jean332 2
  • About  Training Time and Gpu

    About Training Time and Gpu

    Hi LimBee, I already learned that you have been trained several days. Can you tell me which type of Gpu are you using and how many of them? Cause I have only one single Nvidia 1080.

    opened by allen-ash 2
  • Issues when training with my own image

    Issues when training with my own image

    Hi, @LimBee , Thank you for sharing your work. I have a problem need you help, thank you! I use part images of DIV2K dataset. In every folders of DIV2K dataset, i choose 30 images, and the number is 0001-0030. I occur a error when training with these choose images, error information as follows: loading model and criterion... Creating model from file: models/baseline.lua Creating data loader... loading data... Initializing data loader for train set... Initializing data loader for val set... Train start [Iter: 0.1k / lr: 1.00e-4] Time: 98.73 (Data: 93.01) Err: 13.301673 [Iter: 0.2k / lr: 1.00e-4] Time: 96.38 (Data: 91.71) Err: 7.238939 [Iter: 0.3k / lr: 1.00e-4] Time: 96.18 (Data: 91.42) Err: 6.127012 [Iter: 0.4k / lr: 1.00e-4] Time: 100.27 (Data: 95.47) Err: 5.501482 [Iter: 0.5k / lr: 1.00e-4] Time: 95.15 (Data: 90.37) Err: 5.155260 [Iter: 0.6k / lr: 1.00e-4] Time: 97.84 (Data: 93.15) Err: 5.166865 [Iter: 0.7k / lr: 1.00e-4] Time: 97.32 (Data: 92.40) Err: 5.002103 [Iter: 0.8k / lr: 1.00e-4] Time: 98.88 (Data: 94.14) Err: 4.949536 [Iter: 0.9k / lr: 1.00e-4] Time: 98.07 (Data: 93.16) Err: 4.653362 [Iter: 1.0k / lr: 1.00e-4] Time: 98.70 (Data: 93.79) Err: 4.809450 /home/halo_op/torch/install/bin/luajit: .../halo_op/torch/install/share/lua/5.1/threads/threads.lua:183: [thread 1 callback] /home/halo_op/torch/install/share/lua/5.1/image/init.lua:367: /data/csfu/dataset/DIV2K_part/DIV2K/DIV2K_train_LR_bicubic/X2/0801x2.png: No such file or directory stack traceback: [C]: in function 'error' /home/halo_op/torch/install/share/lua/5.1/image/init.lua:367: in function 'load' ./data/div2k.lua:122: in function 'get'

    ps: I use the command begin training as follows: th main.lua -datadir /data/dataset/DIV2K_part -nTrain_DIV2K 30 -datatype png

    Looking forward to your reply, thank you!

    opened by feiyun1265 2
  • Asking for the model(challenge&paper)(Links seem to be broken)

    Asking for the model(challenge&paper)(Links seem to be broken)

    It sames that the two links1 and links2 of downloading trained models given in the repo have broken down, I can't download them. Could anybody provide me a backup version?

    Thanks a lot :).

    Edit: And if possible, could you please also provide the DIV2K datasets download links, i can't download it too. Thank you very much!

    opened by babaozhouy5 2
  • Does the use of Flickr2k dataset obey the CC-BY 4.0 license?

    Does the use of Flickr2k dataset obey the CC-BY 4.0 license?

    Hello, thank you for sharing the codes and datasets. I plan to use the flickr2k dataset in a CVF open-source paper, thus I would like to know the term of use of this dataset, whether it obey the CC-BY 4.0 license, and is it ok to be used in the CVF open-source papers.

    opened by SystemErrorWang 0
  • problem about training own dataset

    problem about training own dataset

    hello, I find some problems when I train the model with my own dataset. Below are some description about my issue, hoping you can give me some suggestion about this problem, thank you very much ! 2019-02-20_20-27-28

    loading model and criterion... Loading pre-trained model from: ../demo/model/EDSR_x4.t7 Creating data loader... loading data... Initializing data loader for train set... Initializing data loader for val set... Train start /home/luomeilu/torch/install/bin/luajit: ...luomeilu/torch/install/share/lua/5.1/threads/threads.lua:183: [thread 1 callback] /home/luomeilu/torch/install/share/lua/5.1/image/init.lua:367: /var/tmp/dataset/DIV2K/DIV2K_train_LR_bicubic/X4/0045x4.png: No such file or directory stack traceback: [C]: in function 'error' /home/luomeilu/torch/install/share/lua/5.1/image/init.lua:367: in function 'load' ./data/div2k.lua:122: in function 'get' ./dataloader.lua:89: in function <./dataloader.lua:76> [C]: in function 'xpcall' ...luomeilu/torch/install/share/lua/5.1/threads/threads.lua:234: in function 'callback' ...e/luomeilu/torch/install/share/lua/5.1/threads/queue.lua:65: in function <...e/luomeilu/torch/install/share/lua/5.1/threads/queue.lua:41> [C]: in function 'pcall' ...e/luomeilu/torch/install/share/lua/5.1/threads/queue.lua:40: in function 'dojob' [string " local Queue = require 'threads.queue'..."]:15: in main chunk stack traceback: [C]: in function 'error' ...luomeilu/torch/install/share/lua/5.1/threads/threads.lua:183: in function 'dojob' ./dataloader.lua:158: in function '(for generator)' ./train.lua:69: in function 'train' main.lua:33: in main chunk [C]: in function 'dofile' ...eilu/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:150: in main chunk [C]: at 0x00406670

    opened by meroluo 4
  • result

    result

    Due to time, I have no time to run the experiment of EDSR, so could you please send me the result of the test with div2k? I want to compare the results of my experiment when I write my paper。

    opened by taniaCHY 0
  •  SR images of SRResnet

    SR images of SRResnet

    Thank you for your wonderful work. We all know that SRGAN and SRResnet do not provide any code. For the SR image of the test set, I can only find the SR images of set5 and set14. But there are other SR images of the test set in your paper (BSD100, Urban100). I also need these SR images. How do you get these images?

    opened by qingchuanhuajuan 1
  • cannot load incompatible bytecodeWarning

    cannot load incompatible bytecodeWarning

    Hello..

    I download the code and run on my own image. The code and produce the result but i got one warning. A little bit worry about it if the proper code not load than may the result is not ok. The screen shot is attached. Please guide me. warning

    opened by msiraj83 1
Owner
Bee Lim
Bee Lim
Simple torch.nn.module implementation of Alias-Free-GAN style filter and resample

Alias-Free-Torch Simple torch module implementation of Alias-Free GAN. This repository including Alias-Free GAN style lowpass sinc filter @filter.py A

이준혁(Junhyeok Lee) 64 Dec 22, 2022
Torch-ngp - A pytorch implementation of the hash encoder proposed in instant-ngp

HashGrid Encoder (WIP) A pytorch implementation of the HashGrid Encoder from ins

hawkey 1k Jan 1, 2023
Bayesian-Torch is a library of neural network layers and utilities extending the core of PyTorch to enable the user to perform stochastic variational inference in Bayesian deep neural networks

Bayesian-Torch is a library of neural network layers and utilities extending the core of PyTorch to enable the user to perform stochastic variational inference in Bayesian deep neural networks. Bayesian-Torch is designed to be flexible and seamless in extending a deterministic deep neural network architecture to corresponding Bayesian form by simply replacing the deterministic layers with Bayesian layers.

Intel Labs 210 Jan 4, 2023
A machine learning library for spiking neural networks. Supports training with both torch and jax pipelines, and deployment to neuromorphic hardware.

Rockpool Rockpool is a Python package for developing signal processing applications with spiking neural networks. Rockpool allows you to build network

SynSense 21 Dec 14, 2022
A torch.Tensor-like DataFrame library supporting multiple execution runtimes and Arrow as a common memory format

TorchArrow (Warning: Unstable Prototype) This is a prototype library currently under heavy development. It does not currently have stable releases, an

Facebook Research 536 Jan 6, 2023
Pytorch and Torch testing code of CartoonGAN

CartoonGAN-Test-Pytorch-Torch Pytorch and Torch testing code of CartoonGAN [Chen et al., CVPR18]. With the released pretrained models by the authors,

Yijun Li 642 Dec 27, 2022
Implements Stacked-RNN in numpy and torch with manual forward and backward functions

Recurrent Neural Networks Implements simple recurrent network and a stacked recurrent network in numpy and torch respectively. Both flavours implement

Vishal R 1 Nov 16, 2021
Torch-based tool for quantizing high-dimensional vectors using additive codebooks

Trainable multi-codebook quantization This repository implements a utility for use with PyTorch, and ideally GPUs, for training an efficient quantizer

Daniel Povey 41 Jan 7, 2023
Pytorch Implementations of large number classical backbone CNNs, data enhancement, torch loss, attention, visualization and some common algorithms.

Torch-template-for-deep-learning Pytorch implementations of some **classical backbone CNNs, data enhancement, torch loss, attention, visualization and

Li Shengyan 270 Dec 31, 2022
Torch-mutable-modules - Use in-place and assignment operations on PyTorch module parameters with support for autograd

Torch Mutable Modules Use in-place and assignment operations on PyTorch module p

Kento Nishi 7 Jun 6, 2022
Sharpened cosine similarity torch - A Sharpened Cosine Similarity layer for PyTorch

Sharpened Cosine Similarity A layer implementation for PyTorch Install At your c

Brandon Rohrer 203 Nov 30, 2022
Automatic number plate recognition using tech: Yolo, OCR, Scene text detection, scene text recognation, flask, torch

Automatic Number Plate Recognition Automatic Number Plate Recognition (ANPR) is the process of reading the characters on the plate with various optica

Meftun AKARSU 52 Dec 22, 2022
A forwarding MPI implementation that can use any other MPI implementation via an MPI ABI

MPItrampoline MPI wrapper library: MPI trampoline library: MPI integration tests: MPI is the de-facto standard for inter-node communication on HPC sys

Erik Schnetter 31 Dec 22, 2022
ALBERT-pytorch-implementation - ALBERT pytorch implementation

ALBERT-pytorch-implementation developing... 모델의 개념이해를 돕기 위한 구현물로 현재 변수명을 상세히 적었고

BG Kim 3 Oct 6, 2022
Numenta Platform for Intelligent Computing is an implementation of Hierarchical Temporal Memory (HTM), a theory of intelligence based strictly on the neuroscience of the neocortex.

NuPIC Numenta Platform for Intelligent Computing The Numenta Platform for Intelligent Computing (NuPIC) is a machine intelligence platform that implem

Numenta 6.3k Dec 30, 2022
PyTorch implementation of neural style transfer algorithm

neural-style-pt This is a PyTorch implementation of the paper A Neural Algorithm of Artistic Style by Leon A. Gatys, Alexander S. Ecker, and Matthias

null 770 Jan 2, 2023
PyTorch implementation of DeepDream algorithm

neural-dream This is a PyTorch implementation of DeepDream. The code is based on neural-style-pt. Here we DeepDream a photograph of the Golden Gate Br

null 121 Nov 5, 2022
The project is an official implementation of our CVPR2019 paper "Deep High-Resolution Representation Learning for Human Pose Estimation"

Deep High-Resolution Representation Learning for Human Pose Estimation (CVPR 2019) News [2020/07/05] A very nice blog from Towards Data Science introd

Leo Xiao 3.9k Jan 5, 2023
Image-to-Image Translation with Conditional Adversarial Networks (Pix2pix) implementation in keras

pix2pix-keras Pix2pix implementation in keras. Original paper: Image-to-Image Translation with Conditional Adversarial Networks (pix2pix) Paper Author

William Falcon 141 Dec 30, 2022