A PyTorch Implementation of FaceBoxes

Overview

FaceBoxes in PyTorch

License

By Zisian Wong, Shifeng Zhang

A PyTorch implementation of FaceBoxes: A CPU Real-time Face Detector with High Accuracy. The official code in Caffe can be found here.

Performance

Dataset Original Caffe PyTorch Implementation
AFW 98.98 % 98.55%
PASCAL 96.77 % 97.05%
FDDB 95.90 % 96.00%

Citation

Please cite the paper in your publications if it helps your research:

@inproceedings{zhang2017faceboxes,
  title = {Faceboxes: A CPU Real-time Face Detector with High Accuracy},
  author = {Zhang, Shifeng and Zhu, Xiangyu and Lei, Zhen and Shi, Hailin and Wang, Xiaobo and Li, Stan Z.},
  booktitle = {IJCB},
  year = {2017}
}

Contents

Installation

  1. Install PyTorch >= v1.0.0 following official instruction.

  2. Clone this repository. We will call the cloned directory as $FaceBoxes_ROOT.

git clone https://github.com/zisianw/FaceBoxes.PyTorch.git
  1. Compile the nms:
./make.sh

Note: Codes are based on Python 3+.

Training

  1. Download WIDER FACE dataset, place the images under this directory:
$FaceBoxes_ROOT/data/WIDER_FACE/images
  1. Convert WIDER FACE annotations to VOC format or download our converted annotations, place them under this directory:
$FaceBoxes_ROOT/data/WIDER_FACE/annotations
  1. Train the model using WIDER FACE:
cd $FaceBoxes_ROOT/
python3 train.py

If you do not wish to train the model, you can download our pre-trained model and save it in $FaceBoxes_ROOT/weights.

Evaluation

  1. Download the images of AFW, PASCAL Face and FDDB to:
$FaceBoxes_ROOT/data/AFW/images/
$FaceBoxes_ROOT/data/PASCAL/images/
$FaceBoxes_ROOT/data/FDDB/images/
  1. Evaluate the trained model using:
# dataset choices = ['AFW', 'PASCAL', 'FDDB']
python3 test.py --dataset FDDB
# evaluate using cpu
python3 test.py --cpu
# visualize detection results
python3 test.py -s --vis_thres 0.3
  1. Download eval_tool to evaluate the performance.

References

  • Official release (Caffe)

  • A huge thank you to SSD ports in PyTorch that have been helpful:

    Note: If you can not download the converted annotations, the provided images and the trained model through the above links, you can download them through BaiduYun.

Comments
  • Accuracy higher when training myself

    Accuracy higher when training myself

    I followed the instructions in the README and trained faceboxes against WIDER-FACES and after 300 epochs (14 hrs, Titan V) I end up with 98.55% vs. the pretrained model with 98.47%.

    For Pascal, I get 97.05%, which is higher than both your pretrained model and the original paper.

    I also noticed the yoffset you use (20% of the box height) affects the accuracy a fair bit. Changing it to 30% of box height increased Pascal to 97.10%. I notice other variants of faceboxes use + 4, which doesn't work as well. Why is this offset in there?

    Is this explained solely by a newer version of Pytorch (v1.0.1) or you did not get to 300 epochs?

    opened by xsacha 24
  • Default Confidence

    Default Confidence

    parser.add_argument('--confidence_threshold', default=0.05, type=float, help='confidence_threshold')

    The default condifence in pytorch and caffe is different.

    Is it too low in pytorch?

    opened by chungyau97 16
  • Subtraction of mean on images that have white background

    Subtraction of mean on images that have white background

    If I subtract the fixed mean (104,117,123) from the image, I get a much worse result on images that have a white background. Is it better to subtract the actual mean of the image being tested?

    opened by xsacha 9
  • Why predict one point (xmin,ymin = xmax,ymax) in other picture?

    Why predict one point (xmin,ymin = xmax,ymax) in other picture?

    Hi: i am trying to do an inference in my picture(not from dataset), the image preprocess (orginal size input, not resize), model load, results post process is basically follow your test.py.
    But the predict point is funny, which shows following: there just one point, xmin,ymin equal xmax ymax

    dets [[2.1120000e+03 1.3440000e+03 2.1120000e+03 1.3440000e+03 9.8217058e-01]]

    Just curious, Any ideal why this happen?

    So far, there are two thing i noticed: 1, the predict point is closer to the centre point of the box that mtcnn predict, Very Strange. facebox: [2240,960,2240,960] mtcnn: [1626,503,2737,1882]

    2, the orginal predict is just one point because i trace every step, found in decode step, before boxes[:, :2] -= boxes[:, 2:] / 2, boxes was like [0.x,0.x,0,0], the last two is zero.

    def decode(loc, priors, variances):
       boxes = torch.cat((
            priors[:, :2] + loc[:, :2] * variances[0] * priors[:, 2:],
            priors[:, 2:] * torch.exp(loc[:, 2:] * variances[1])), 1)
        boxes[:, :2] -= boxes[:, 2:] / 2
        boxes[:, 2:] += boxes[:, :2]
        return boxes
    
    opened by QiaoranC 8
  • detection_dimension in model is redundant

    detection_dimension in model is redundant

    The extra output, detection_dimension is redundant as it can be calculated in prior_box based on width and height already.

    It also fails to trace, if you attempt to use the model through JIT as it cannot follow the logic flow.

    opened by xsacha 7
  • FDDB test result

    FDDB test result

    @zisianw @sfzhang15 HI

    配置:pytorch0.4 + python2 因为你提提供的代码是基于python3的,所以在相应位置函数加入from future import division

    利用提供的训练好的检测模型,基于测试代码,得到了2845幅图片的检测结果 然后送入官方提供的检测器. 标签文件利用的是S3FD中提供的FDDB_annotation_ellipseList_new.txt 结果形式是rectangle,并没有转ellipse 检测结果已发至2位的邮箱

    最终结果在False Positives=1000时,对于DiscROC,AP只有93.9915

    opened by foralliance 7
  • 给priors分配ground truth的一些疑惑

    给priors分配ground truth的一些疑惑

    box_utils.py脚本里的match函数在给priors分配ground truth的时候,进行了ignore hard ground truth的步骤,也就是和某个ground truth最大的iou小于0.2时, 该ground truth 会被舍弃,如果其中有被舍弃的gt,那么ground truth的index就会改变,后面再做# ensure every gt matches with its prior of max overlap的时候是不是就不对了?这部分有点不理解

    opened by Michael3444 5
  • how to handle the number of anchor box?

    how to handle the number of anchor box?

    i am a beginner class of detection with deep learning so i don't know how to handle anchor box. i try to change filter numbers of loc_layers(21 to 11) in multibox in faceboxes.py but i have an error "Runtime error : the expanded size of the tensor (11584) must match the exisitng size(21824) at non singleton dimension1. Target sizes : [32 ,11584 ,4]. Tensor sizes : [32 ,21824 ,1]" i think 21824 is number of default(anchor) box and 11584 is number of prediction box so what should i do to decrease number of filters?

    and i have one more qusetion

    this paper has anchor densification module but i don't want to use this module fully, i want to use half of anchor densification to decrease my university project's latency so i have change prior_box.py 33th line

    "dense_cx = [xself.steps[k]/self.image_size[1] for x in [j+0, j+0.25, j+0.5, j+0.75]] --> dense_cx = [xself.steps[k]/self.image_size[1] for x in [j+0, j+0.5]]"

    but i have an similar error above problem so i need your advice

    opened by jjh930910 4
  • Height values are bogus

    Height values are bogus

    Height values returned by the model will always be wrong for testing. This is possibly due to the image aspect ratio not being 1:1. Regardless, the width values appear to be correct and you can fix the height values by setting them equal to the width. By removing height scores, you still get the same result in AFW and PASCAL because these tests ignore width and height (using only the centre positions). Hence, [width, height] should probably be replaced by a 'size' value, which would allow for faster training/converging.

    I did a test where i changed prior_box to x,y,size and ignored the fourth value of loc returned by the model. AFW and PASCAL results are unaffected.

    opened by xsacha 4
  • make errer

    make errer

    error when running ./make.sh, any methods ? : ^ nms/cpu_nms.c: In function ‘__Pyx__GetException’: nms/cpu_nms.c:8961:22: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_type’ tmp_type = tstate->exc_type; ^ nms/cpu_nms.c:8962:23: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_value’ tmp_value = tstate->exc_value; ^ nms/cpu_nms.c:8963:20: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_traceback’ tmp_tb = tstate->exc_traceback; ^ nms/cpu_nms.c:8964:11: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_type’ tstate->exc_type = local_type; ^ nms/cpu_nms.c:8965:11: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_value’ tstate->exc_value = local_value; ^ nms/cpu_nms.c:8966:11: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_traceback’ tstate->exc_traceback = local_tb; ^ error: command 'gcc' failed with exit status 1

    opened by ruiming46zrm 4
  • How to draw face box correctly on original images?

    How to draw face box correctly on original images?

    I ran test.py and output the txt file. But I wanted to see the face boxes, drawing rectangles to mark the faces on the original image. Here comes the problem. No matter in which datasets, there always draw the wrong part. and the rate is high. By the way, I can not use numpy.ndarray(original image) instead of tensor type.

    2 3 5

    It is PASCAL dataset.

    opened by discipleofhamilton 4
  • ONNXRuntime C++ reimplement for FaceBoxes.

    ONNXRuntime C++ reimplement for FaceBoxes.

    I have reimplement FaceBoxes with c++, faceboxes.cpp. It seems FaceBoxes suitable for mobile device with some simple frontal faces, but can not get good accuracy for complicated situation.

    opened by DefTruth 0
  • use on pascal voc classes

    use on pascal voc classes

    Can i use the same code on PASCAL VOC dataset where num_classes = 20, by changing the same parameter in your code, Will it work? since you have used RPN .!

    opened by prajotsl123 0
  • about train loss

    about train loss

    @zisianw @sfzhang15

    为了表达清楚,这里就用中文了!

    关于train loss中的震荡现象.

    自己基于提供的代码修改参数进行了3次训练,3次的差异在于batch_size和LR.每次训练时总的iterations保持一样(120K). 唯一的差异是自己基于单GPU进行

    在默认参数下,即:batch_size=32,learning rate = 0.01,epoches = 300.训练.最终结果:PASCAL:0.9630;AFW:0.9838;FDDB:0.954/0.725; 训练的cls loss和reg loss分别为下图: trian_loss_C_FaceBoxes1.pdf trian_loss_L_FaceBoxes1.pdf

    修改参数,即: batch_size=16,learning rate = 0.005,epoches = 150.训练.最终结果:PASCAL:0.9628;AFW:0.9826;DDB:0.954/0.724. 得到的cls loss和reg loss分别为下图: trian_loss_C_FaceBoxes4.pdf trian_loss_L_FaceBoxes4.pdf

    修改参数,即: batch_size=8,learning rate = 0.0025,epoches = 75.训练.最终结果:PASCAL:0.9567;AFW:0.9839;FDDB:0.945/0.719. 得到的cls loss和reg loss分别为下图: trian_loss_C_FaceBoxes12.pdf trian_loss_L_FaceBoxes12.pdf

    可以看到不论哪种参数配置下,loss都存在着严重的震荡现象.按理来说,这种震荡对模型是会有影响的,但模型效果却很好,这个该如何去理解!! 谢谢了!!

    opened by foralliance 0
  • about training loss

    about training loss

    @zisianw HI I ran it exactly according to the training code. but I only have one card (1080TI), and the other parameters did not change at all. Training 28h. My own training loss as follows:

    2020-06-01 23:31:35,613:INFO:Epoch:1/300 || Epochiter: 1/403 || Iter: 1/120900 || L: 5.1744 C: 20.3799 || LR: 0.00100000 || Batchtime: 8.5759 s || ETA: 12 days, 0:00:31
    2020-06-01 23:31:36,101:INFO:Epoch:1/300 || Epochiter: 2/403 || Iter: 2/120900 || L: 4.9724 C: 17.0202 || LR: 0.00100000 || Batchtime: 0.4392 s || ETA: 14:44:56
    2020-06-01 23:31:36,637:INFO:Epoch:1/300 || Epochiter: 3/403 || Iter: 3/120900 || L: 4.7130 C: 14.2861 || LR: 0.00100000 || Batchtime: 0.4849 s || ETA: 16:16:57
    2020-06-01 23:31:37,171:INFO:Epoch:1/300 || Epochiter: 4/403 || Iter: 4/120900 || L: 4.6357 C: 10.1130 || LR: 0.00100000 || Batchtime: 0.4832 s || ETA: 16:13:40
    2020-06-01 23:31:37,685:INFO:Epoch:1/300 || Epochiter: 5/403 || Iter: 5/120900 || L: 4.3865 C: 8.5862 || LR: 0.00100000 || Batchtime: 0.4644 s || ETA: 15:35:48
    2020-06-01 23:31:38,173:INFO:Epoch:1/300 || Epochiter: 6/403 || Iter: 6/120900 || L: 4.6417 C: 7.4876 || LR: 0.00100000 || Batchtime: 0.4380 s || ETA: 14:42:26
    2020-06-01 23:31:38,742:INFO:Epoch:1/300 || Epochiter: 7/403 || Iter: 7/120900 || L: 4.5764 C: 6.7580 || LR: 0.00100000 || Batchtime: 0.5216 s || ETA: 17:30:59
    2020-06-01 23:31:39,315:INFO:Epoch:1/300 || Epochiter: 8/403 || Iter: 8/120900 || L: 4.5351 C: 6.1112 || LR: 0.00100000 || Batchtime: 0.4555 s || ETA: 15:17:49
    2020-06-01 23:31:41,792:INFO:Epoch:1/300 || Epochiter: 9/403 || Iter: 9/120900 || L: 4.3899 C: 5.7324 || LR: 0.00100000 || Batchtime: 2.4251 s || ETA: 3 days, 9:26:15
    2020-06-01 23:31:42,196:INFO:Epoch:1/300 || Epochiter: 10/403 || Iter: 10/120900 || L: 4.2871 C: 5.4239 || LR: 0.00100000 || Batchtime: 0.3506 s || ETA: 11:46:21
    2020-06-01 23:31:42,732:INFO:Epoch:1/300 || Epochiter: 11/403 || Iter: 11/120900 || L: 4.3746 C: 4.6924 || LR: 0.00100000 || Batchtime: 0.4889 s || ETA: 16:25:08
    2020-06-01 23:31:43,167:INFO:Epoch:1/300 || Epochiter: 12/403 || Iter: 12/120900 || L: 4.3650 C: 4.5943 || LR: 0.00100000 || Batchtime: 0.3835 s || ETA: 12:52:42
    2020-06-01 23:31:43,674:INFO:Epoch:1/300 || Epochiter: 13/403 || Iter: 13/120900 || L: 4.3817 C: 4.5847 || LR: 0.00100000 || Batchtime: 0.4606 s || ETA: 15:28:00
    2020-06-01 23:31:44,178:INFO:Epoch:1/300 || Epochiter: 14/403 || Iter: 14/120900 || L: 4.5922 C: 4.5324 || LR: 0.00100000 || Batchtime: 0.4664 s || ETA: 15:39:47
    2020-06-01 23:31:44,721:INFO:Epoch:1/300 || Epochiter: 15/403 || Iter: 15/120900 || L: 4.0729 C: 4.5218 || LR: 0.00100000 || Batchtime: 0.4953 s || ETA: 16:37:58
    2020-06-01 23:31:45,249:INFO:Epoch:1/300 || Epochiter: 16/403 || Iter: 16/120900 || L: 4.7230 C: 4.3706 || LR: 0.00100000 || Batchtime: 0.4744 s || ETA: 15:55:52
    2020-06-01 23:31:48,890:INFO:Epoch:1/300 || Epochiter: 17/403 || Iter: 17/120900 || L: 4.3539 C: 4.2943 || LR: 0.00100000 || Batchtime: 3.5956 s || ETA: 5 days, 0:44:07
    2020-06-01 23:31:49,361:INFO:Epoch:1/300 || Epochiter: 18/403 || Iter: 18/120900 || L: 4.0115 C: 3.8395 || LR: 0.00100000 || Batchtime: 0.4222 s || ETA: 14:10:41
    2020-06-01 23:31:49,843:INFO:Epoch:1/300 || Epochiter: 19/403 || Iter: 19/120900 || L: 4.1465 C: 3.9062 || LR: 0.00100000 || Batchtime: 0.4302 s || ETA: 14:26:40
    2020-06-01 23:31:50,383:INFO:Epoch:1/300 || Epochiter: 20/403 || Iter: 20/120900 || L: 4.2397 C: 3.8839 || LR: 0.00100000 || Batchtime: 0.4904 s || ETA: 16:27:56
    2020-06-01 23:31:50,907:INFO:Epoch:1/300 || Epochiter: 21/403 || Iter: 21/120900 || L: 4.1348 C: 3.8818 || LR: 0.00100000 || Batchtime: 0.4766 s || ETA: 16:00:12
    2020-06-01 23:31:51,456:INFO:Epoch:1/300 || Epochiter: 22/403 || Iter: 22/120900 || L: 4.2044 C: 3.6742 || LR: 0.00100000 || Batchtime: 0.5001 s || ETA: 16:47:37
    2020-06-01 23:31:51,966:INFO:Epoch:1/300 || Epochiter: 23/403 || Iter: 23/120900 || L: 4.3516 C: 3.8494 || LR: 0.00100000 || Batchtime: 0.4635 s || ETA: 15:33:50
    ....................................................
    2020-06-03 03:10:04,192:INFO:Epoch:300/300 || Epochiter: 391/403 || Iter: 120888/120900 || L: 1.0186 C: 1.5184 || LR: 0.00001000 || Batchtime: 0.5481 s || ETA: 0:00:07
    2020-06-03 03:10:04,650:INFO:Epoch:300/300 || Epochiter: 392/403 || Iter: 120889/120900 || L: 1.2653 C: 1.6692 || LR: 0.00001000 || Batchtime: 0.4121 s || ETA: 0:00:04
    2020-06-03 03:10:05,650:INFO:Epoch:300/300 || Epochiter: 393/403 || Iter: 120890/120900 || L: 1.3480 C: 1.7201 || LR: 0.00001000 || Batchtime: 0.9479 s || ETA: 0:00:10
    2020-06-03 03:10:06,072:INFO:Epoch:300/300 || Epochiter: 394/403 || Iter: 120891/120900 || L: 1.3920 C: 1.7500 || LR: 0.00001000 || Batchtime: 0.3724 s || ETA: 0:00:03
    2020-06-03 03:10:06,473:INFO:Epoch:300/300 || Epochiter: 395/403 || Iter: 120892/120900 || L: 1.2428 C: 1.8737 || LR: 0.00001000 || Batchtime: 0.3517 s || ETA: 0:00:03
    2020-06-03 03:10:06,862:INFO:Epoch:300/300 || Epochiter: 396/403 || Iter: 120893/120900 || L: 0.9238 C: 1.3636 || LR: 0.00001000 || Batchtime: 0.3386 s || ETA: 0:00:02
    2020-06-03 03:10:07,221:INFO:Epoch:300/300 || Epochiter: 397/403 || Iter: 120894/120900 || L: 1.4052 C: 1.8867 || LR: 0.00001000 || Batchtime: 0.3073 s || ETA: 0:00:02
    2020-06-03 03:10:07,538:INFO:Epoch:300/300 || Epochiter: 398/403 || Iter: 120895/120900 || L: 1.7991 C: 2.2399 || LR: 0.00001000 || Batchtime: 0.2653 s || ETA: 0:00:01
    2020-06-03 03:10:07,841:INFO:Epoch:300/300 || Epochiter: 399/403 || Iter: 120896/120900 || L: 1.3118 C: 1.8016 || LR: 0.00001000 || Batchtime: 0.2534 s || ETA: 0:00:01
    2020-06-03 03:10:08,106:INFO:Epoch:300/300 || Epochiter: 400/403 || Iter: 120897/120900 || L: 1.4301 C: 2.0517 || LR: 0.00001000 || Batchtime: 0.2131 s || ETA: 0:00:00
    2020-06-03 03:10:08,371:INFO:Epoch:300/300 || Epochiter: 401/403 || Iter: 120898/120900 || L: 1.5059 C: 2.0308 || LR: 0.00001000 || Batchtime: 0.2136 s || ETA: 0:00:00
    2020-06-03 03:10:08,637:INFO:Epoch:300/300 || Epochiter: 402/403 || Iter: 120899/120900 || L: 0.8883 C: 1.4389 || LR: 0.00001000 || Batchtime: 0.2136 s || ETA: 0:00:00
    2020-06-03 03:10:08,743:INFO:Epoch:300/300 || Epochiter: 403/403 || Iter: 120900/120900 || L: 0.9817 C: 1.6208 || LR: 0.00001000 || Batchtime: 0.0920 s || ETA: 0:00:00
    

    It is not known whether the above loss changes are normal. Thank you!

    opened by foralliance 0
Owner
Zi Sian Wong
Computer Vision & Deep Learning
Zi Sian Wong
An essential implementation of BYOL in PyTorch + PyTorch Lightning

Essential BYOL A simple and complete implementation of Bootstrap your own latent: A new approach to self-supervised Learning in PyTorch + PyTorch Ligh

Enrico Fini 48 Sep 27, 2022
RealFormer-Pytorch Implementation of RealFormer using pytorch

RealFormer-Pytorch Implementation of RealFormer using pytorch. Includes comparison with classical Transformer on image classification task (ViT) wrt C

Simo Ryu 90 Dec 8, 2022
A PyTorch implementation of the paper Mixup: Beyond Empirical Risk Minimization in PyTorch

Mixup: Beyond Empirical Risk Minimization in PyTorch This is an unofficial PyTorch implementation of mixup: Beyond Empirical Risk Minimization. The co

Harry Yang 121 Dec 17, 2022
A pytorch implementation of Pytorch-Sketch-RNN

Pytorch-Sketch-RNN A pytorch implementation of https://arxiv.org/abs/1704.03477 In order to draw other things than cats, you will find more drawing da

Alexis David Jacq 172 Dec 12, 2022
PyTorch implementation of Advantage async actor-critic Algorithms (A3C) in PyTorch

Advantage async actor-critic Algorithms (A3C) in PyTorch @inproceedings{mnih2016asynchronous, title={Asynchronous methods for deep reinforcement lea

LEI TAI 111 Dec 8, 2022
Pytorch-diffusion - A basic PyTorch implementation of 'Denoising Diffusion Probabilistic Models'

PyTorch implementation of 'Denoising Diffusion Probabilistic Models' This reposi

Arthur Juliani 76 Jan 7, 2023
Fang Zhonghao 13 Nov 19, 2022
RETRO-pytorch - Implementation of RETRO, Deepmind's Retrieval based Attention net, in Pytorch

RETRO - Pytorch (wip) Implementation of RETRO, Deepmind's Retrieval based Attent

Phil Wang 556 Jan 4, 2023
HashNeRF-pytorch - Pure PyTorch Implementation of NVIDIA paper on Instant Training of Neural Graphics primitives

HashNeRF-pytorch Instant-NGP recently introduced a Multi-resolution Hash Encodin

Yash Sanjay Bhalgat 616 Jan 6, 2023
Generic template to bootstrap your PyTorch project with PyTorch Lightning, Hydra, W&B, and DVC.

NN Template Generic template to bootstrap your PyTorch project. Click on Use this Template and avoid writing boilerplate code for: PyTorch Lightning,

Luca Moschella 520 Dec 30, 2022
A PyTorch Extension: Tools for easy mixed precision and distributed training in Pytorch

This repository holds NVIDIA-maintained utilities to streamline mixed precision and distributed training in Pytorch. Some of the code here will be included in upstream Pytorch eventually. The intention of Apex is to make up-to-date utilities available to users as quickly as possible.

NVIDIA Corporation 6.9k Jan 3, 2023
Objective of the repository is to learn and build machine learning models using Pytorch. 30DaysofML Using Pytorch

30 Days Of Machine Learning Using Pytorch Objective of the repository is to learn and build machine learning models using Pytorch. List of Algorithms

Mayur 119 Nov 24, 2022
Pretrained SOTA Deep Learning models, callbacks and more for research and production with PyTorch Lightning and PyTorch

Pretrained SOTA Deep Learning models, callbacks and more for research and production with PyTorch Lightning and PyTorch

Pytorch Lightning 1.4k Jan 1, 2023
Amazon Forest Computer Vision: Satellite Image tagging code using PyTorch / Keras with lots of PyTorch tricks

Amazon Forest Computer Vision Satellite Image tagging code using PyTorch / Keras Here is a sample of images we had to work with Source: https://www.ka

Mamy Ratsimbazafy 360 Dec 10, 2022
The Incredible PyTorch: a curated list of tutorials, papers, projects, communities and more relating to PyTorch.

This is a curated list of tutorials, projects, libraries, videos, papers, books and anything related to the incredible PyTorch. Feel free to make a pu

Ritchie Ng 9.2k Jan 2, 2023
Amazon Forest Computer Vision: Satellite Image tagging code using PyTorch / Keras with lots of PyTorch tricks

Amazon Forest Computer Vision Satellite Image tagging code using PyTorch / Keras Here is a sample of images we had to work with Source: https://www.ka

Mamy Ratsimbazafy 359 Jan 5, 2023
A bunch of random PyTorch models using PyTorch's C++ frontend

PyTorch Deep Learning Models using the C++ frontend Gettting started Clone the repo 1. https://github.com/mrdvince/pytorchcpp 2. cd fashionmnist or

Vince 0 Jul 13, 2021
PyTorch Autoencoders - Implementing a Variational Autoencoder (VAE) Series in Pytorch.

PyTorch Autoencoders Implementing a Variational Autoencoder (VAE) Series in Pytorch. Inspired by this repository Model List check model paper conferen

Subin An 8 Nov 21, 2022
PyTorch-LIT is the Lite Inference Toolkit (LIT) for PyTorch which focuses on easy and fast inference of large models on end-devices.

PyTorch-LIT PyTorch-LIT is the Lite Inference Toolkit (LIT) for PyTorch which focuses on easy and fast inference of large models on end-devices. With

Amin Rezaei 157 Dec 11, 2022