Implementation of "Scaled-YOLOv4: Scaling Cross Stage Partial Network" using PyTorch framwork.

Overview

YOLOv4-large

This is the implementation of "Scaled-YOLOv4: Scaling Cross Stage Partial Network" using PyTorch framwork.

Model Test Size APtest AP50test AP75test APStest APMtest APLtest batch1 throughput
YOLOv4-P5 896 51.4% 69.9% 56.3% 33.1% 55.4% 62.4% 41 fps
YOLOv4-P5 TTA 52.5% 70.3% 58.0% 36.0% 52.4% 62.3% -
YOLOv4-P6 1280 54.3% 72.3% 59.5% 36.6% 58.2% 65.5% 30 fps
YOLOv4-P6 TTA 54.9% 72.6% 60.2% 37.4% 58.8% 66.7% -
YOLOv4-P7 1536 55.4% 73.3% 60.7% 38.1% 59.5% 67.4% 15 fps
YOLOv4-P7 TTA 55.8% 73.2% 61.2% 38.8% 60.1% 68.2% -
Model Test Size APval AP50val AP75val APSval APMval APLval weights
YOLOv4-P5 896 51.2% 69.8% 56.2% 35.0% 56.2% 64.0% yolov4-p5.pt
YOLOv4-P5 TTA 52.5% 70.2% 57.8% 38.5% 57.2% 64.0% -
YOLOv4-P5 (+BoF) 896 51.7% 70.3% 56.7% 35.9% 56.7% 64.3% yolov4-p5_.pt
YOLOv4-P5 (+BoF) TTA 52.8% 70.6% 58.3% 38.8% 57.4% 64.4% -
YOLOv4-P6 1280 53.9% 72.0% 59.0% 39.3% 58.3% 66.6% yolov4-p6.pt
YOLOv4-P6 TTA 54.4% 72.3% 59.6% 39.8% 58.9% 67.6% -
YOLOv4-P6 (+BoF) 1280 54.4% 72.7% 59.5% 39.5% 58.9% 67.3% yolov4-p6_.pt
YOLOv4-P6 (+BoF) TTA 54.8% 72.6% 60.0% 40.6% 59.1% 68.2% -
YOLOv4-P6 (+BoF*) 1280 54.7% 72.9% 60.0% 39.4% 59.2% 68.3%
YOLOv4-P6 (+BoF*) TTA 55.3% 73.2% 60.8% 40.5% 59.9% 69.4% -
YOLOv4-P7 1536 55.0% 72.9% 60.2% 39.8% 59.9% 68.4% yolov4-p7.pt
YOLOv4-P7 TTA 55.5% 72.9% 60.8% 41.1% 60.3% 68.9% -
Model Test Size APval AP50val AP75val APSval APMval APLval
YOLOv4-P6-attention 1280 54.3% 72.3% 59.6% 38.7% 58.9% 66.6%

Installation

# create the docker container, you can change the share memory size if you have more.
nvidia-docker run --name yolov4_csp -it -v your_coco_path/:/coco/ -v your_code_path/:/yolo --shm-size=64g nvcr.io/nvidia/pytorch:20.06-py3

# install mish-cuda, if you use different pytorch version, you could try https://github.com/thomasbrandon/mish-cuda
cd /
git clone https://github.com/JunnYu/mish-cuda
cd mish-cuda
python setup.py build install

# go to code folder
cd /yolo

Testing

# download {yolov4-p5.pt, yolov4-p6.pt, yolov4-p7.pt} and put them in /yolo/weights/ folder.
python test.py --img 896 --conf 0.001 --batch 8 --device 0 --data coco.yaml --weights weights/yolov4-p5.pt
python test.py --img 1280 --conf 0.001 --batch 8 --device 0 --data coco.yaml --weights weights/yolov4-p6.pt
python test.py --img 1536 --conf 0.001 --batch 8 --device 0 --data coco.yaml --weights weights/yolov4-p7.pt

You will get following results:

# yolov4-p5
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.51244
 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.69771
 Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 0.56180
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.35021
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.56247
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.63983
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.38530
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.64048
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.69801
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.55487
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.74368
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.82826
# yolov4-p6
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.53857
 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.72015
 Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 0.59025
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.39285
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.58283
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.66580
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.39552
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.66504
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.72141
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.59193
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.75844
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.83981
# yolov4-p7
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.55046
 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.72925
 Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 0.60224
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.39836
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.59854
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.68405
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.40256
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.66929
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.72943
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.59943
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.76873
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.84460

Training

We use multiple GPUs for training. {YOLOv4-P5, YOLOv4-P6, YOLOv4-P7} use input resolution {896, 1280, 1536} for training respectively.

# yolov4-p5
python -m torch.distributed.launch --nproc_per_node 4 train.py --batch-size 64 --img 896 896 --data coco.yaml --cfg yolov4-p5.yaml --weights '' --sync-bn --device 0,1,2,3 --name yolov4-p5
python -m torch.distributed.launch --nproc_per_node 4 train.py --batch-size 64 --img 896 896 --data coco.yaml --cfg yolov4-p5.yaml --weights 'runs/exp0_yolov4-p5/weights/last_298.pt' --sync-bn --device 0,1,2,3 --name yolov4-p5-tune --hyp 'data/hyp.finetune.yaml' --epochs 450 --resume

If your training process stucks, it due to bugs of the python. Just Ctrl+C to stop training and resume training by:

# yolov4-p5
python -m torch.distributed.launch --nproc_per_node 4 train.py --batch-size 64 --img 896 896 --data coco.yaml --cfg yolov4-p5.yaml --weights 'runs/exp0_yolov4-p5/weights/last.pt' --sync-bn --device 0,1,2,3 --name yolov4-p5 --resume

Citation

@InProceedings{Wang_2021_CVPR,
    author    = {Wang, Chien-Yao and Bochkovskiy, Alexey and Liao, Hong-Yuan Mark},
    title     = {{Scaled-YOLOv4}: Scaling Cross Stage Partial Network},
    booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
    month     = {June},
    year      = {2021},
    pages     = {13029-13038}
}

Acknowledgements

Expand
Comments
  • Transfer Learning

    Transfer Learning

    I want to apply Scaled YOLOv4-p7. pt pretrained weight to train my own custom data. Which layer I have to freeze and which one should I leave to get a good accuracy (over 80%). Is there any tutorial for that.

    I applied fine tuning but the result is very bad so I want to make transfer learning.

    Thank you!

    opened by sard0r 23
  • I set same random seed but get different results, why?

    I set same random seed but get different results, why?

    cudnn.deterministic = True and cudnn.benchmark = False, and there's no operation like F.interpolation, I don't know why, thanks ! ( I use python3.7, pytorch 1.7 with cudatoolkit=10.2, nvcc=10.2)

    opened by clw5180 11
  • How does FPS be computed?

    How does FPS be computed?

    Hi, I'd like to know how FPS is computed? How does the time consumption per detection be considered? Include data input, network forward and NMS or just network forward and NMS or any other way?

    opened by feiyuhuahuo 10
  • Map is so lower than yolov5...

    Map is so lower than yolov5...

    I trained my custom data using yolov4-p6. But the map was so low. (My custom dataset's nc is only 1) image

    Then I trained the same data using yolov5l. But the map was so high. image

    Is Yolov5 better than scaled-yolov4? -> I don't think so... What is the problem? The hyp.yaml? The .cache file of my data? Please help me. I tried to train using scaled-yolov4-p6 about ten times for three days..

    opened by blackCmd 7
  • Scaled yolo 4 large p5  values always NAN in training although  ADAM optimised is set 0.001 and 0.0001

    Scaled yolo 4 large p5 values always NAN in training although ADAM optimised is set 0.001 and 0.0001

    Command !python train.py --batch-size 8 --img 896 --epoch 50 --data '../data.yaml' --cfg './models/yolov4-p5.yaml' --weights '' --name 'yolop4-p5' --adam --hyp './data/hyp.scratch.yaml'

    values always NAN in training although all images annotations well

    am using Colab GPU Using CUDA device0 _CudaDeviceProperties(name='Tesla P100-PCIE-16GB', total_memory=16280MB)

    Namespace(adam=True, batch_size=8, bucket='', cache_images=False, cfg='/content/gdrive/MyDrive/CustomYOLO/ScaledYOLOv4/models/yolov4-p5.yaml', data='/content/gdrive/MyDrive/CustomYOLO/data.yaml', device='', epochs=50, evolve=False, global_rank=-1, hyp='/content/gdrive/MyDrive/CustomYOLO/ScaledYOLOv4/data/hyp.scratch.yaml', img_size=[896, 896], local_rank=-1, logdir='runs/', multi_scale=False, name='hmd_p5', noautoanchor=False, nosave=False, notest=False, rect=False, resume=False, single_cls=False, sync_bn=False, total_batch_size=8, weights='', world_size=1) Start Tensorboard with "tensorboard --logdir runs/", view at http://localhost:6006/ 2021-05-22 20:12:18.609887: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0 Hyperparameters {'lr0': 0.001, 'momentum': 0.937, 'weight_decay': 0.0005, 'giou': 0.05, 'cls': 0.5, 'cls_pw': 1.0, 'obj': 1.0, 'obj_pw': 1.0, 'iou_t': 0.2, 'anchor_t': 4.0, 'fl_gamma': 0.0, 'hsv_h': 0.015, 'hsv_s': 0.7, 'hsv_v': 0.4, 'degrees': 0.0, 'translate': 0.5, 'scale': 0.5, 'shear': 0.0, 'perspective': 0.0, 'flipud': 0.0, 'fliplr': 0.5, 'mixup': 0.0} Overriding /content/gdrive/MyDrive/CustomYOLO/ScaledYOLOv4/models/yolov4-p5.yaml nc=80 with nc=1

    image

    opened by xhumanz 6
  • Export onnx model error

    Export onnx model error

    This below error occur when I run export.py. Could you check it? Thank you very much!

    TorchScript export failure: Could not export Python function call 'MishCudaFunction'. Remove calls to Python functions before export. Did you forget to add @script or @script_method annotation? If this is a nn.ModuleList, add it to constants: /root/miniconda3/lib/python3.7/site-packages/mish_cuda-0.0.3-py3.7-linux-x86_64.egg/mish_cuda/init.py(20): forward /root/miniconda3/lib/python3.7/site-packages/torch/nn/modules/module.py(709): _slow_forward /root/miniconda3/lib/python3.7/site-packages/torch/nn/modules/module.py(725): _call_impl /root/tool/ScaledYOLOv4/models/common.py(31): forward /root/miniconda3/lib/python3.7/site-packages/torch/nn/modules/module.py(709): _slow_forward /root/miniconda3/lib/python3.7/site-packages/torch/nn/modules/module.py(725): _call_impl /root/tool/ScaledYOLOv4/models/yolo.py(129): forward_once /root/tool/ScaledYOLOv4/models/yolo.py(109): forward /root/miniconda3/lib/python3.7/site-packages/torch/nn/modules/module.py(709): _slow_forward /root/miniconda3/lib/python3.7/site-packages/torch/nn/modules/module.py(725): _call_impl /root/miniconda3/lib/python3.7/site-packages/torch/jit/_trace.py(940): trace_module /root/miniconda3/lib/python3.7/site-packages/torch/jit/_trace.py(742): trace export.py(34):

    opened by thanhpt93 6
  • load model error

    load model error

    Thanks for your wonderful work! I run test.py and load yolov4-p5.pt and the error is : Traceback (most recent call last): File "/home/yfzhang/PycharmProjects/YOLO/test.py", line 269, in test(opt.data, File "/home/yfzhang/PycharmProjects/YOLO/test.py", line 55, in test model = attempt_load(weights, map_location=device) # load FP32 model File "/home/yfzhang/PycharmProjects/YOLO/models/experimental.py", line 137, in attempt_load model.append(torch.load(w, map_location=map_location)['model'].float().fuse().eval()) # load FP32 model File "/home/yfzhang/anaconda3/envs/YOLO/lib/python3.8/site-packages/torch/serialization.py", line 595, in load return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args) File "/home/yfzhang/anaconda3/envs/YOLO/lib/python3.8/site-packages/torch/serialization.py", line 774, in _legacy_load result = unpickler.load() ModuleNotFoundError: No module named 'mc'

    opened by ifzhang 6
  • ERROR: pycocotools unable to run: invalid literal for int() with base 10: 'COCO_val2014_000000054959'

    ERROR: pycocotools unable to run: invalid literal for int() with base 10: 'COCO_val2014_000000054959'

    When I use test.py in yolov4-csp branch to calculate the mAP of the trained model, I encounter the following error:

    Scanning labels ../coco/labels/val2014.cache (4954 found, 0 missing, 46 empty, 0 duplicate, for 5000 images): 100%|█████████████████████| 5000/5000 [00:00<00:00, 19854.77it/s]
                   Class      Images     Targets           P           R      [email protected]  [email protected]:.95: 100%|██████████████████████████████████████████| 625/625 [01:00<00:00, 10.29it/s]
                     all       5e+03    3.51e+04       0.161       0.459       0.314       0.174
    Speed: 1.5/3.2/4.8 ms inference/NMS/total per 416x416 image at batch-size 8
    
    COCO mAP with pycocotools... saving detections_val2017__results.json...
    ERROR: pycocotools unable to run: invalid literal for int() with base 10: 'COCO_val2014_000000054959'
    

    The command I use:

    python test.py --img 416 --conf 0.001 --batch 8 --device 0 --data coco.yaml --cfg models/yolov4-tiny.cfg --weights runs/exp3_yolov4-tiny/weights/best_yolov4-tiny.pt
    

    Thanks for your great work.

    opened by e96031413 6
  • [8, 1, Conv, [256, 1, 1]], # route backbone P4 .yaml中的这个写法好像有bug~

    [8, 1, Conv, [256, 1, 1]], # route backbone P4 .yaml中的这个写法好像有bug~

    您好,最近我在使用YOLOv5的时候,我发现好像不能直接填之前的层。 比如这个8,应该是backbone的P4层,但是在yolo.py的parse_model()方法里面,ch是从通道为3开始的,也就是说这个8用到的实际上是backbone的红线那一层了。 image

    我觉得是不是应该修改成下面这样: image

    我不知道是不是我理解错了。。。

    opened by Pluto1314 5
  • yolov4 csp running on darknet , get lower  AP.

    yolov4 csp running on darknet , get lower AP.

    同样的yolov4 csp放在darknet下跑,发现ap低了许多,如下 ./darknet detector valid cfg/coco.data cfg/yolov4-csp.cfg ../weights/yolov4-csp.weights -out yolov4-csp -gpus 0 python valcoco.py ./results/yolov4-csp.json yolov4-csp 1850秒 Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.17229 Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.32294 Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.16451 Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.15231 Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.26031 Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.21131 Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.21734 Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.41937 Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.51365 Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.33643 Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.54722 Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.67830

    下面是您的结果 Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.47827 Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.66448 Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.51928 Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.30647 Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.53106 Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.61056 Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.36823 Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.60434 Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.65795 Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.48486 Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.70892 Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.79914

    opened by lovehuanhuan 5
  • Why does Scaled YOLOv4 use GIoU  loss and not CIoU loss?

    Why does Scaled YOLOv4 use GIoU loss and not CIoU loss?

    I might be wrong, but I thought YOLOv4 used CIoU loss at is has proven to have better performance than GIoU. Why does Scaled YOLOv4 use GIoU and not CIoU?

    opened by Jesperpaulsen 4
  • wrong calculation of map

    wrong calculation of map

    I think the calculation of mean average precision is wrong. In metrics.py (in ScaledYOLOv4/utils/) the function compute_ap is not correct. Using np.interp(x, mrec, mpre), x) results in a map which is too high because like this the interpolation sets all values between the last recall value and 1 to the last precision value (instead of 0). An easy way to correct this is just to use the comments in line 125 and 126. Although I think you should use 1.0 for the first value instead of 0 ( like this: np.concatenate(([1.], precision, [0.])) )

    compute_ap

    opened by Miilli 0
  • YOLOv4-P6 convert torch .pt to darknet .weights

    YOLOv4-P6 convert torch .pt to darknet .weights

    Hello, I'd like to convert my trained yolov4-P6 model to darknet cfg + weights in order to run it via deepstream through Deepstream-YOLO, which currently does not support .pt models.

    I've taken a look at #202 but it seems to relate only to regular size yolov4, since large models use .yaml files and there is no models.py script with a convert function in their branch.

    How would one proceed to do this conversion?

    opened by pabsan-0 0
  • how to train the trick to achive goals?

    how to train the trick to achive goals?

    hey,as we all know ,you really do a great job.I am currently working on the task of target detection. By processing images, it is impossible to improve the detection scores of small, medium and large targets in a picture at the same time. I would like to ask if you have any suggestions for this problem?

    opened by 77-Q 0
  • Fail to transfer .pt into .onnx

    Fail to transfer .pt into .onnx

    if you can not generate .onnx file when you are using the models/export.py, maybe you could try my method.

    1. using the docker container supplied by the author in the README.md

    2. modify the models/export.py in 2 steps:

    • step1: change the model.model[-1].export = True into model.model[-1].export = False
    • step2: add code
        for k, m in model.named_modules():
            m._non_persistent_buffers_set = set()  # pytorch 1.6.0 compatability
            if isinstance(m, models.common.Conv) and isinstance(m.act, models.common.Mish):
                m.act = Mish()  # assign activation
            if isinstance(m, models.common.BottleneckCSP) or isinstance(m, models.common.BottleneckCSP2) \
                    or isinstance(m, models.common.SPPCSP):
                if isinstance(m.bn, nn.SyncBatchNorm):
                    bn = nn.BatchNorm2d(m.bn.num_features, eps=m.bn.eps, momentum=m.bn.momentum)
                    bn.training = False
                    bn._buffers = m.bn._buffers
                    bn._non_persistent_buffers_set = set()
                    m.bn = bn
                if isinstance(m.act, models.common.Mish):
                    m.act = Mish()  # assign activation
    
    

    above the line model.model[-1].export = False

    • you may also need to import some necessary package like torch.nn enjoy it!
    opened by ziqi-jin 0
Owner
Kin-Yiu, Wong
Kin-Yiu, Wong
A Simple Framwork for CV Pre-training Model (SOCO, VirTex, BEiT)

A Simple Framwork for CV Pre-training Model (SOCO, VirTex, BEiT)

Sense-GVT 14 Jul 7, 2022
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
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
ALBERT-pytorch-implementation - ALBERT pytorch implementation

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

BG Kim 3 Oct 6, 2022
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
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
ChatBot-Pytorch - A GPT-2 ChatBot implemented using Pytorch and Huggingface-transformers

ChatBot-Pytorch A GPT-2 ChatBot implemented using Pytorch and Huggingface-transf

ParZival 42 Dec 9, 2022
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
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
[PyTorch] Official implementation of CVPR2021 paper "PointDSC: Robust Point Cloud Registration using Deep Spatial Consistency". https://arxiv.org/abs/2103.05465

PointDSC repository PyTorch implementation of PointDSC for CVPR'2021 paper "PointDSC: Robust Point Cloud Registration using Deep Spatial Consistency",

null 153 Dec 14, 2022
EfficientNetV2 implementation using PyTorch

EfficientNetV2-S implementation using PyTorch Train Steps Configure imagenet path by changing data_dir in train.py python main.py --benchmark for mode

Jahongir Yunusov 86 Dec 29, 2022
Non-Official Pytorch implementation of "Face Identity Disentanglement via Latent Space Mapping" https://arxiv.org/abs/2005.07728 Using StyleGAN2 instead of StyleGAN

Face Identity Disentanglement via Latent Space Mapping - Implement in pytorch with StyleGAN 2 Description Pytorch implementation of the paper Face Ide

Daniel Roich 58 Dec 24, 2022