Captcha-tensorflow - Image Captcha Solving Using TensorFlow and CNN Model. Accuracy 90%+

Overview

Captcha Solving Using TensorFlow

Introduction

  1. Solve captcha using TensorFlow.
  2. Learn CNN and TensorFlow by a practical project.

Follow the steps, run the code, and it works!

the accuracy of 4 digits version can be as high as 99.8%!

There are several more steps to put this prototype on production.

Ping me for paid technical supports.

[email protected]

Table of Contents

  • Solve Captcha Using CNN Model

    • Training: 4-digits Captcha
    • Training: 4-letters Captcha
    • Inference: load trained model and predict given images
  • Generate DataSet for Training

    • Usage
    • Example 1: 4 chars per captcha, use digits only
    • Example 2: sampling random images

Solve Captcha Using CNN Model

old code that using tensorflow 1.x is moved to tensorflow_v1.

Training: 4-digits Captcha

this is a perfect project for beginers.

we will train a model of ~90% accuracy in 1 minute using one single GPU card (GTX 1080 or above).

if we increase the dataset by 10x, the accuracy increases to 98.8%. we can further increase the accuracy to 99.8% using 1M traning images.

here is the source code and running logs: captcha-solver-tf2-4digits-AlexNet-98.8.ipynb

Images, Ground Truth and Predicted Values:

there is 1 predicton error out of the 20 examples below. 9871 -> 9821

Accuracy and Loss History:

Model Structure:

  • 3 convolutional layers, followed by 2x2 max pooling layer each.
  • 1 flatten layer
  • 2 dense layer

Training: 4-letters Captcha

this is a more practical project.

the code is the same as the 4-digits version, but the training dataset is much bigger.

it costs 2-3 hours to generate training dataset and costs 30 min to train a 95% accuracy model.

here is the source code and running logs: captcha-solver-tf2-4letters-AlexNet.ipynb

Inference: load trained model and predict given images

example: captcha-solver-model-restore.ipynb

Generate DataSet for Training

Usage

$ python datasets/gen_captcha.py  -h
usage: gen_captcha.py [-h] [-n N] [-c C] [-t T] [-d] [-l] [-u] [--npi NPI] [--data_dir DATA_DIR]

optional arguments:
  -h, --help           show this help message and exit
  -n N                 epoch number of character permutations.
  -c C                 max count of images to generate. default unlimited
  -t T                 ratio of test dataset.
  -d, --digit          use digits in dataset.
  -l, --lower          use lowercase in dataset.
  -u, --upper          use uppercase in dataset.
  --npi NPI            number of characters per image.
  --data_dir DATA_DIR  where data will be saved.

examples:

Example 1: 4 chars per captcha, use digits only

1 epoch has 10*9*8*7=5040 images, generate 6 epoches for training.

generating the dataset:

$ python datasets/gen_captcha.py -d --npi=4 -n 6
10 choices: 0123456789
generating 6 epoches of captchas in ./images/char-4-epoch-6/train
generating 1 epoches of captchas in ./images/char-4-epoch-6/test
write meta info in ./images/char-4-epoch-6/meta.json

preview the dataset:

$ python datasets/base.py images/char-4-epoch-6/
========== Meta Info ==========
num_per_image: 4
label_choices: 0123456789
height: 100
width: 120
n_epoch: 6
label_size: 10
==============================
train images: (30240, 100, 120), labels: (30240, 40)
test images: (5040, 100, 120), labels: (5040, 40)

Example 2: sampling random images

scenario: use digits/upper cases, 4 chars per captcha image.

1 epoch will have 36*35*34*33=1.4M images. the dataset is too big to debug.

using -c 10000 param, sampling 10k random images.

generating the dataset:

$ python3 datasets/gen_captcha.py -du --npi 4 -n 1 -c 10000
36 choices: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
generating 1 epoches of captchas in ./images/char-4-epoch-1/train.
only 10000 records used in epoche 1. epoche_count: 1413720

Running Jupyter in docker

tensorflow image: https://hub.docker.com/r/jackon/tensorflow-2.1-gpu

docker pull jackon/tensorflow-2.1-gpu
# check if gpu works in docker container
docker run --rm --gpus all -t jackon/tensorflow-2.1-gpu /usr/bin/nvidia-smi
# start jupyter server in docker container
docker run --rm --gpus all -p 8899:8899 -v $(realpath .):/tf/notebooks -t jackon/tensorflow-2.1-gpu
Comments
  • Forced exit task while generating the dataset

    Forced exit task while generating the dataset

    I tried to generate datasets with 6 letters as follow:

    !python3 datasets/gen_captcha.py -dul --npi 6 -n 1 -c 10000 --data_dir ./gdrive/MyDrive/Teledrop-Datasets/
    

    But it turns that the process in google colab exited automatically, because of the usage of the RAM. Is there any way to limit the RAM usage?

    opened by snowfluke 6
  • How do I test the model in tensorflow.js (node-js)?

    How do I test the model in tensorflow.js (node-js)?

    def format_y(y):
        return ''.join(map(lambda x: chr(int(x)), y))
    
    def predict(image_path):
        im = Image.open(image_path)
        # im = im.resize((H, W))
        im = np.array(im) / 255.0
        im = np.array(im)
        
        y_pred = model.predict(np.array([im]))
        y_pred = tf.math.argmax(y_pred, axis=-1)
        
        print('predict: %s' % format_y(y_pred[0]))
        plt.imshow(im)
    

    Im struggling to input the image in tensorflowjs, it always throw error ValueError: Error when checking model : the Array of Tensors that you are passing to your model is not the size the the model expected model expected. Expected to see 1 Tensor(s), but instead got 0 Tensors(s).

    opened by retrocold 4
  • ResourceExhaustedError (see above for traceback): OOM when allocating tensor with shape

    ResourceExhaustedError (see above for traceback): OOM when allocating tensor with shape

    #python cnn_1_char.py --data_dir=images/char-1-epoch-1000/

    data loaded
    train images: 10000. test images: 2000
    label_size: 10, image_size: 6000
    2018-03-18 15:52:23.154212: I tensorflow/core/platform/cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
    2018-03-18 15:52:23.246932: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:892] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
    2018-03-18 15:52:23.247218: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Found device 0 with properties: 
    name: GeForce GTX 1050 major: 6 minor: 1 memoryClockRate(GHz): 1.493
    pciBusID: 0000:01:00.0
    totalMemory: 3.95GiB freeMemory: 2.73GiB
    2018-03-18 15:52:23.247233: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1120] Creating TensorFlow device (/device:GPU:0) -> (device: 0, name: GeForce GTX 1050, pci bus id: 0000:01:00.0, compute capability: 6.1)
    2018-03-18 15:52:34.593156: W tensorflow/core/common_runtime/bfc_allocator.cc:273] Allocator (GPU_0_bfc) ran out of memory trying to allocate 1.43GiB.  Current allocation summary follows.
    2018-03-18 15:52:34.593232: I tensorflow/core/common_runtime/bfc_allocator.cc:627] Bin (256):   Total Chunks: 31, Chunks in use: 31. 7.8KiB allocated for chunks. 7.8KiB in use in bin. 2.1KiB client-requested in use in bin.
    2018-03-18 15:52:34.593264: I tensorflow/core/common_runtime/bfc_allocator.cc:627] Bin (512):   Total Chunks: 1, Chunks in use: 0. 768B allocated for chunks. 0B in use in bin. 0B client-requested in use in bin.
    2018-03-18 15:52:34.593289: I tensorflow/core/common_runtime/bfc_allocator.cc:627] Bin (1024):  Total Chunks: 1, Chunks in use: 1. 1.2KiB allocated for chunks. 1.2KiB in use in bin. 1.0KiB client-requested in use in bin.
    2018-03-18 15:52:34.593312: I tensorflow/core/common_runtime/bfc_allocator.cc:627] Bin (2048):  Total Chunks: 5, Chunks in use: 5. 16.2KiB allocated for chunks. 16.2KiB in use in bin. 15.6KiB client-requested in use in bin.
    2018-03-18 15:52:34.593333: I tensorflow/core/common_runtime/bfc_allocator.cc:627] Bin (4096):  Total Chunks: 5, Chunks in use: 5. 20.0KiB allocated for chunks. 20.0KiB in use in bin. 20.0KiB client-requested in use in bin.
    2018-03-18 15:52:34.593353: I tensorflow/core/common_runtime/bfc_allocator.cc:627] Bin (8192):  Total Chunks: 1, Chunks in use: 1. 15.8KiB allocated for chunks. 15.8KiB in use in bin. 15.6KiB client-requested in use in bin.
    2018-03-18 15:52:34.593373: I tensorflow/core/common_runtime/bfc_allocator.cc:627] Bin (16384):         Total Chunks: 1, Chunks in use: 0. 21.0KiB allocated for chunks. 0B in use in bin. 0B client-requested in use in bin.
    2018-03-18 15:52:34.593394: I tensorflow/core/common_runtime/bfc_allocator.cc:627] Bin (32768):         Total Chunks: 4, Chunks in use: 4. 160.0KiB allocated for chunks. 160.0KiB in use in bin. 160.0KiB client-requested in use in bin.
    2018-03-18 15:52:34.593415: I tensorflow/core/common_runtime/bfc_allocator.cc:627] Bin (65536):         Total Chunks: 2, Chunks in use: 1. 160.0KiB allocated for chunks. 78.2KiB in use in bin. 78.1KiB client-requested in use in bin.
    2018-03-18 15:52:34.593436: I tensorflow/core/common_runtime/bfc_allocator.cc:627] Bin (131072):        Total Chunks: 4, Chunks in use: 4. 800.0KiB allocated for chunks. 800.0KiB in use in bin. 800.0KiB client-requested in use in bin.
    2018-03-18 15:52:34.593453: I tensorflow/core/common_runtime/bfc_allocator.cc:627] Bin (262144):        Total Chunks: 0, Chunks in use: 0. 0B allocated for chunks. 0B in use in bin. 0B client-requested in use in bin.
    2018-03-18 15:52:34.593471: I tensorflow/core/common_runtime/bfc_allocator.cc:627] Bin (524288):        Total Chunks: 0, Chunks in use: 0. 0B allocated for chunks. 0B in use in bin. 0B client-requested in use in bin.
    2018-03-18 15:52:34.593488: I tensorflow/core/common_runtime/bfc_allocator.cc:627] Bin (1048576):       Total Chunks: 0, Chunks in use: 0. 0B allocated for chunks. 0B in use in bin. 0B client-requested in use in bin.
    2018-03-18 15:52:34.593505: I tensorflow/core/common_runtime/bfc_allocator.cc:627] Bin (2097152):       Total Chunks: 0, Chunks in use: 0. 0B allocated for chunks. 0B in use in bin. 0B client-requested in use in bin.
    2018-03-18 15:52:34.593522: I tensorflow/core/common_runtime/bfc_allocator.cc:627] Bin (4194304):       Total Chunks: 0, Chunks in use: 0. 0B allocated for chunks. 0B in use in bin. 0B client-requested in use in bin.
    2018-03-18 15:52:34.593539: I tensorflow/core/common_runtime/bfc_allocator.cc:627] Bin (8388608):       Total Chunks: 0, Chunks in use: 0. 0B allocated for chunks. 0B in use in bin. 0B client-requested in use in bin.
    2018-03-18 15:52:34.593557: I tensorflow/core/common_runtime/bfc_allocator.cc:627] Bin (16777216):      Total Chunks: 0, Chunks in use: 0. 0B allocated for chunks. 0B in use in bin. 0B client-requested in use in bin.
    2018-03-18 15:52:34.593578: I tensorflow/core/common_runtime/bfc_allocator.cc:627] Bin (33554432):      Total Chunks: 2, Chunks in use: 1. 93.75MiB allocated for chunks. 45.78MiB in use in bin. 45.78MiB client-requested in use in bin.
    2018-03-18 15:52:34.593599: I tensorflow/core/common_runtime/bfc_allocator.cc:627] Bin (67108864):      Total Chunks: 4, Chunks in use: 4. 375.00MiB allocated for chunks. 375.00MiB in use in bin. 375.00MiB client-requested in use in bin.
    2018-03-18 15:52:34.593616: I tensorflow/core/common_runtime/bfc_allocator.cc:627] Bin (134217728):     Total Chunks: 0, Chunks in use: 0. 0B allocated for chunks. 0B in use in bin. 0B client-requested in use in bin.
    2018-03-18 15:52:34.593636: I tensorflow/core/common_runtime/bfc_allocator.cc:627] Bin (268435456):     Total Chunks: 1, Chunks in use: 1. 1.98GiB allocated for chunks. 1.98GiB in use in bin. 1.43GiB client-requested in use in bin.
    2018-03-18 15:52:34.593654: I tensorflow/core/common_runtime/bfc_allocator.cc:643] Bin for 1.43GiB was 256.00MiB, Chunk State: 
    2018-03-18 15:52:34.593673: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0513c00000 of size 1280
    2018-03-18 15:52:34.593688: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0513c00500 of size 256
    2018-03-18 15:52:34.593701: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0513c00600 of size 256
    2018-03-18 15:52:34.593715: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0513c00700 of size 256
    2018-03-18 15:52:34.593728: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0513c00800 of size 256
    2018-03-18 15:52:34.593743: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0513c00900 of size 40960
    2018-03-18 15:52:34.593757: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0513c0a900 of size 4096
    2018-03-18 15:52:34.593770: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0513c0b900 of size 256
    2018-03-18 15:52:34.593784: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0513c0ba00 of size 256
    2018-03-18 15:52:34.593797: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0513c0bb00 of size 256
    2018-03-18 15:52:34.593811: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0513c0bc00 of size 3328
    2018-03-18 15:52:34.593824: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0513c0c900 of size 256
    2018-03-18 15:52:34.593843: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0513c0ca00 of size 204800
    2018-03-18 15:52:34.593857: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0513c3ea00 of size 256
    2018-03-18 15:52:34.593870: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0513c3eb00 of size 256
    2018-03-18 15:52:34.593884: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0513c3ec00 of size 98304000
    2018-03-18 15:52:34.593898: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f05199fec00 of size 4096
    2018-03-18 15:52:34.593911: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f05199ffc00 of size 256
    2018-03-18 15:52:34.593924: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f05199ffd00 of size 256
    2018-03-18 15:52:34.593937: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f05199ffe00 of size 256
    2018-03-18 15:52:34.593951: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f05199fff00 of size 256
    2018-03-18 15:52:34.593964: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0519a00000 of size 256
    2018-03-18 15:52:34.593977: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0519a00100 of size 256
    2018-03-18 15:52:34.593990: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0519a00200 of size 256
    2018-03-18 15:52:34.594003: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0519a00300 of size 256
    2018-03-18 15:52:34.594016: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0519a00400 of size 256
    2018-03-18 15:52:34.594029: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0519a00500 of size 256
    2018-03-18 15:52:34.594043: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0519a00900 of size 256
    2018-03-18 15:52:34.594056: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0519a00a00 of size 40960
    2018-03-18 15:52:34.594070: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0519a0aa00 of size 80128
    2018-03-18 15:52:34.594084: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0519a32a00 of size 256
    2018-03-18 15:52:34.594097: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0519a32b00 of size 48000000
    2018-03-18 15:52:34.594111: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f051f7f2b00 of size 40960
    2018-03-18 15:52:34.594123: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f051f7fcb00 of size 4096
    2018-03-18 15:52:34.594137: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f051f7fdb00 of size 16128
    2018-03-18 15:52:34.594150: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f051f801a00 of size 3328
    2018-03-18 15:52:34.594164: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f051f807b00 of size 40960
    2018-03-18 15:52:34.594178: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f051f811b00 of size 256
    2018-03-18 15:52:34.594191: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f051f811c00 of size 256
    2018-03-18 15:52:34.594204: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f051f811d00 of size 256
    2018-03-18 15:52:34.594218: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f051f811e00 of size 3328
    2018-03-18 15:52:34.594231: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f051f812b00 of size 3328
    2018-03-18 15:52:34.594244: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f051f813800 of size 256
    2018-03-18 15:52:34.594258: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f051f813900 of size 256
    2018-03-18 15:52:34.594271: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f051f813a00 of size 204800
    2018-03-18 15:52:34.594284: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f051f845a00 of size 204800
    2018-03-18 15:52:34.594298: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f051f877a00 of size 256
    2018-03-18 15:52:34.594311: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f051f877b00 of size 256
    2018-03-18 15:52:34.594324: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f051f877c00 of size 256
    2018-03-18 15:52:34.594338: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f051f877d00 of size 98304000
    2018-03-18 15:52:34.594351: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f0525637d00 of size 98304000
    2018-03-18 15:52:34.594364: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f052b3f7d00 of size 256
    2018-03-18 15:52:34.594377: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f052b3f7e00 of size 4096
    2018-03-18 15:52:34.594391: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f052b3f8e00 of size 4096
    2018-03-18 15:52:34.594404: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f052b3f9e00 of size 3328
    2018-03-18 15:52:34.594417: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f052b3fab00 of size 204800
    2018-03-18 15:52:34.594430: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f052b42cb00 of size 98304000
    2018-03-18 15:52:34.594444: I tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x7f05311ecb00 of size 2126722304
    2018-03-18 15:52:34.594458: I tensorflow/core/common_runtime/bfc_allocator.cc:670] Free at 0x7f0519a00600 of size 768
    2018-03-18 15:52:34.594472: I tensorflow/core/common_runtime/bfc_allocator.cc:670] Free at 0x7f0519a1e300 of size 83712
    2018-03-18 15:52:34.594485: I tensorflow/core/common_runtime/bfc_allocator.cc:670] Free at 0x7f051c7f9700 of size 50304000
    2018-03-18 15:52:34.594499: I tensorflow/core/common_runtime/bfc_allocator.cc:670] Free at 0x7f051f802700 of size 21504
    2018-03-18 15:52:34.594512: I tensorflow/core/common_runtime/bfc_allocator.cc:676]      Summary of in-use Chunks by size: 
    2018-03-18 15:52:34.594529: I tensorflow/core/common_runtime/bfc_allocator.cc:679] 31 Chunks of size 256 totalling 7.8KiB
    2018-03-18 15:52:34.594545: I tensorflow/core/common_runtime/bfc_allocator.cc:679] 1 Chunks of size 1280 totalling 1.2KiB
    2018-03-18 15:52:34.594561: I tensorflow/core/common_runtime/bfc_allocator.cc:679] 5 Chunks of size 3328 totalling 16.2KiB
    2018-03-18 15:52:34.594577: I tensorflow/core/common_runtime/bfc_allocator.cc:679] 5 Chunks of size 4096 totalling 20.0KiB
    2018-03-18 15:52:34.594593: I tensorflow/core/common_runtime/bfc_allocator.cc:679] 1 Chunks of size 16128 totalling 15.8KiB
    2018-03-18 15:52:34.594608: I tensorflow/core/common_runtime/bfc_allocator.cc:679] 4 Chunks of size 40960 totalling 160.0KiB
    2018-03-18 15:52:34.594624: I tensorflow/core/common_runtime/bfc_allocator.cc:679] 1 Chunks of size 80128 totalling 78.2KiB
    2018-03-18 15:52:34.594639: I tensorflow/core/common_runtime/bfc_allocator.cc:679] 4 Chunks of size 204800 totalling 800.0KiB
    2018-03-18 15:52:34.594655: I tensorflow/core/common_runtime/bfc_allocator.cc:679] 1 Chunks of size 48000000 totalling 45.78MiB
    2018-03-18 15:52:34.594671: I tensorflow/core/common_runtime/bfc_allocator.cc:679] 4 Chunks of size 98304000 totalling 375.00MiB
    2018-03-18 15:52:34.594686: I tensorflow/core/common_runtime/bfc_allocator.cc:679] 1 Chunks of size 2126722304 totalling 1.98GiB
    2018-03-18 15:52:34.594701: I tensorflow/core/common_runtime/bfc_allocator.cc:683] Sum Total of in-use chunks: 2.39GiB
    2018-03-18 15:52:34.594721: I tensorflow/core/common_runtime/bfc_allocator.cc:685] Stats: 
    Limit:                  2619473920
    InUse:                  2569063936
    MaxInUse:               2569063936
    NumAllocs:                     189
    MaxAllocSize:           2126722304
    
    2018-03-18 15:52:34.594755: W tensorflow/core/common_runtime/bfc_allocator.cc:277] ******_***********************************************************************xxxxxxxxxxxxxxxxxxxxxx
    2018-03-18 15:52:34.594788: W tensorflow/core/framework/op_kernel.cc:1192] Resource exhausted: OOM when allocating tensor with shape[2000,32,100,60]
    Traceback (most recent call last):
      File "cnn_1_char.py", line 167, in <module>
        tf.app.run(main=main, argv=[sys.argv[0]] + unparsed)
      File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", line 48, in run
        _sys.exit(main(_sys.argv[:1] + flags_passthrough))
      File "cnn_1_char.py", line 148, in main
        test_summary, test_accuracy = sess.run([merged, accuracy], feed_dict={x: test_x, y_: test_y, keep_prob: 1.0})
      File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 889, in run
        run_metadata_ptr)
      File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1120, in _run
        feed_dict_tensor, options, run_metadata)
      File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1317, in _do_run
        options, run_metadata)
      File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1336, in _do_call
        raise type(e)(node_def, op, message)
    tensorflow.python.framework.errors_impl.ResourceExhaustedError: OOM when allocating tensor with shape[2000,32,100,60]
             [[Node: convolution-layer-1/Conv2D = Conv2D[T=DT_FLOAT, data_format="NHWC", padding="SAME", strides=[1, 1, 1, 1], use_cudnn_on_gpu=true, _device="/job:localhost/replica:0/task:0/device:GPU:0"](input/Reshape, convolution-layer-1/Variable/read)]]
    
    Caused by op u'convolution-layer-1/Conv2D', defined at:
      File "cnn_1_char.py", line 167, in <module>
        tf.app.run(main=main, argv=[sys.argv[0]] + unparsed)
      File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", line 48, in run
        _sys.exit(main(_sys.argv[:1] + flags_passthrough))
      File "cnn_1_char.py", line 75, in main
        h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)
      File "cnn_1_char.py", line 41, in conv2d
        return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')
      File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gen_nn_ops.py", line 631, in conv2d
        data_format=data_format, name=name)
      File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/op_def_library.py", line 787, in _apply_op_helper
        op_def=op_def)
      File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 2956, in create_op
        op_def=op_def)
      File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1470, in __init__
        self._traceback = self._graph._extract_stack()  # pylint: disable=protected-access
    
    ResourceExhaustedError (see above for traceback): OOM when allocating tensor with shape[2000,32,100,60]
             [[Node: convolution-layer-1/Conv2D = Conv2D[T=DT_FLOAT, data_format="NHWC", padding="SAME", strides=[1, 1, 1, 1], use_cudnn_on_gpu=true, _device="/job:localhost/replica:0/task:0/device:GPU:0"](input/Reshape, convolution-layer-1/Variable/read)]]
    

    How can I solve it?

    opened by aerosadegh 3
  • fix densely-connected size

    fix densely-connected size

    When I try with height=50, I met this error:

    InvalidArgumentError (see above for traceback): Incompatible shapes: [52,4] vs. [50,4]
    
    diff --git a/datasets/gen_captcha.py b/datasets/gen_captcha.py
    index 0e0bf46..492bca8 100644
    --- a/datasets/gen_captcha.py
    +++ b/datasets/gen_captcha.py
    @@ -49,8 +49,8 @@ def gen_dataset():
    
         choices = get_choices()
    
    -    width = 40 + 20 * num_per_image
    -    height = 100
    +    width = 100 # 40 + 20 * num_per_image
    +    height = 50 # 100
    
         # meta info
         meta = {
    
    opened by takeru 2
  • ok, i run it, what next?

    ok, i run it, what next?

    What I can to do to solve my image?

    I have image and need get string to resolve captcha, where is code?

    Is possible to tell what is format of data to train and test? filename is only 'string'_some.png some will be everything?

    opened by texrg 2
  • TypeError: run() takes no arguments (2 given)

    TypeError: run() takes no arguments (2 given)

    $ python simple_softmax.py images/char-1-epoch-2000/

    Traceback (most recent call last): File "simple_softmax.py", line 70, in tf.app.run(main=main, argv=[sys.argv[0]] + unparsed) TypeError: run() takes no arguments (2 given)

    opened by webcssphp 2
  • SECURITY.md

    SECURITY.md

    Security Policy

    Supported Versions

    Use this section to tell people about which versions of your project are currently being supported with security updates.

    | Version | Supported | | ------- | ------------------ | | 5.1.x | :white_check_mark: | | 5.0.x | :x: | | 4.0.x | :white_check_mark: | | < 4.0 | :x: |

    Reporting a Vulnerability

    Use this section to tell people how to report a vulnerability.

    Tell them where to go, how often they can expect to get an update on a reported vulnerability, what to expect if the vulnerability is accepted or declined, etc.

    opened by Apidwalin 1
  • Bump pillow from 7.0.0 to 8.2.0

    Bump pillow from 7.0.0 to 8.2.0

    Bumps pillow from 7.0.0 to 8.2.0.

    Release notes

    Sourced from pillow's releases.

    8.2.0

    https://pillow.readthedocs.io/en/stable/releasenotes/8.2.0.html

    Changes

    Dependencies

    Deprecations

    ... (truncated)

    Changelog

    Sourced from pillow's changelog.

    8.2.0 (2021-04-01)

    • Added getxmp() method #5144 [UrielMaD, radarhere]

    • Add ImageShow support for GraphicsMagick #5349 [latosha-maltba, radarhere]

    • Do not load transparent pixels from subsequent GIF frames #5333 [zewt, radarhere]

    • Use LZW encoding when saving GIF images #5291 [raygard]

    • Set all transparent colors to be equal in quantize() #5282 [radarhere]

    • Allow PixelAccess to use Python int when parsing x and y #5206 [radarhere]

    • Removed Image._MODEINFO #5316 [radarhere]

    • Add preserve_tone option to autocontrast #5350 [elejke, radarhere]

    • Fixed linear_gradient and radial_gradient I and F modes #5274 [radarhere]

    • Add support for reading TIFFs with PlanarConfiguration=2 #5364 [kkopachev, wiredfool, nulano]

    • Deprecated categories #5351 [radarhere]

    • Do not premultiply alpha when resizing with Image.NEAREST resampling #5304 [nulano]

    • Dynamically link FriBiDi instead of Raqm #5062 [nulano]

    • Allow fewer PNG palette entries than the bit depth maximum when saving #5330 [radarhere]

    • Use duration from info dictionary when saving WebP #5338 [radarhere]

    • Stop flattening EXIF IFD into getexif() #4947 [radarhere, kkopachev]

    ... (truncated)

    Commits
    • e0e353c 8.2.0 version bump
    • ee635be Merge pull request #5377 from hugovk/security-and-release-notes
    • 694c84f Fix typo [ci skip]
    • 8febdad Review, typos and lint
    • fea4196 Reorder, roughly alphabetic
    • 496245a Fix BLP DOS -- CVE-2021-28678
    • 22e9bee Fix DOS in PSDImagePlugin -- CVE-2021-28675
    • ba65f0b Fix Memory DOS in ImageFont
    • bb6c11f Fix FLI DOS -- CVE-2021-28676
    • 5a5e6db Fix EPS DOS on _open -- CVE-2021-28677
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Notify the user when an epoche finishes

    Notify the user when an epoche finishes

    When an epoche worth of images and there is less then 20 total epoches (so the console doesnt fill up with 2000 messages) there will be a notifaction in the terminal notifying the user that an epoche has finished so they can calculate about how long it will take to finish the captcha generation. The edited script was tested.

    opened by CoolCash1 1
  • Bump pillow from 7.0.0 to 8.1.1

    Bump pillow from 7.0.0 to 8.1.1

    Bumps pillow from 7.0.0 to 8.1.1.

    Release notes

    Sourced from pillow's releases.

    8.1.1

    https://pillow.readthedocs.io/en/stable/releasenotes/8.1.1.html

    8.1.0

    https://pillow.readthedocs.io/en/stable/releasenotes/8.1.0.html

    Changes

    Dependencies

    Deprecations

    ... (truncated)

    Changelog

    Sourced from pillow's changelog.

    8.1.1 (2021-03-01)

    • Use more specific regex chars to prevent ReDoS. CVE-2021-25292 [hugovk]

    • Fix OOB Read in TiffDecode.c, and check the tile validity before reading. CVE-2021-25291 [wiredfool]

    • Fix negative size read in TiffDecode.c. CVE-2021-25290 [wiredfool]

    • Fix OOB read in SgiRleDecode.c. CVE-2021-25293 [wiredfool]

    • Incorrect error code checking in TiffDecode.c. CVE-2021-25289 [wiredfool]

    • PyModule_AddObject fix for Python 3.10 #5194 [radarhere]

    8.1.0 (2021-01-02)

    • Fix TIFF OOB Write error. CVE-2020-35654 #5175 [wiredfool]

    • Fix for Read Overflow in PCX Decoding. CVE-2020-35653 #5174 [wiredfool, radarhere]

    • Fix for SGI Decode buffer overrun. CVE-2020-35655 #5173 [wiredfool, radarhere]

    • Fix OOB Read when saving GIF of xsize=1 #5149 [wiredfool]

    • Makefile updates #5159 [wiredfool, radarhere]

    • Add support for PySide6 #5161 [hugovk]

    • Use disposal settings from previous frame in APNG #5126 [radarhere]

    • Added exception explaining that repr_png saves to PNG #5139 [radarhere]

    • Use previous disposal method in GIF load_end #5125 [radarhere]

    ... (truncated)

    Commits
    • 741d874 8.1.1 version bump
    • 179cd1c Added 8.1.1 release notes to index
    • 7d29665 Update CHANGES.rst [ci skip]
    • d25036f Credits
    • 973a4c3 Release notes for 8.1.1
    • 521dab9 Use more specific regex chars to prevent ReDoS
    • 8b8076b Fix for CVE-2021-25291
    • e25be1e Fix negative size read in TiffDecode.c
    • f891baa Fix OOB read in SgiRleDecode.c
    • cbfdde7 Incorrect error code checking in TiffDecode.c
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • how should i adpat to a different image size?

    how should i adpat to a different image size?

    there are some errors indicates me that image size doesn't fit

    Invalid argument: Input to reshape is a tensor with 832000 values, but the requested shape requires a multiple of 40000

    original size generated from captcha was 100100, could you please tell me how to adpat to a new size, for example, my image size is 20050

    opened by xja 1
  • TypeError: 'float' object cannot be interpreted as an integer

    TypeError: 'float' object cannot be interpreted as an integer

    Nice project. Thanks for sharing. Having problem though. Cloned repo. Did a pip install -r requirements.txt. Tried to run gen_captcha.py and I get a TypeError.

    I uncommented the tensorflow=2.1.4 line in the requirements.txt file and set it to 2.8.4 since 2.1.4 was not found and the earliest version of tensroflow was 2.8.4.

    My env: MacOS Monteray v12.6 Python 3.10.7

    (.env) ➜  captcha-tensorflow git:(master) python datasets/gen_captcha.py -d --npi=4 -n 6
    10 choices: 0123456789
    generating 6 epoches of captchas in ./images/char-4-epoch-6/train.
    Traceback (most recent call last):
      File "/Users/evancarey/prj/captcha-tensorflow/datasets/gen_captcha.py", line 137, in <module>
        gen_dataset()
      File "/Users/evancarey/prj/captcha-tensorflow/datasets/gen_captcha.py", line 80, in gen_dataset
        _gen_captcha(build_file_path('train'), num_per_image, n_epoch, width, height, choices=choices, max_images_count=max_images_count)
      File "/Users/evancarey/prj/captcha-tensorflow/datasets/gen_captcha.py", line 48, in _gen_captcha
        image.write(captcha, fn)
      File "/Users/evancarey/prj/captcha-tensorflow/.env/lib/python3.10/site-packages/captcha/image.py", line 58, in write
        im = self.generate_image(chars)
      File "/Users/evancarey/prj/captcha-tensorflow/.env/lib/python3.10/site-packages/captcha/image.py", line 228, in generate_image
        im = self.create_captcha_image(chars, color, background)
      File "/Users/evancarey/prj/captcha-tensorflow/.env/lib/python3.10/site-packages/captcha/image.py", line 212, in create_captcha_image
        mask = im.convert('L').point(table)
      File "/Users/evancarey/prj/captcha-tensorflow/.env/lib/python3.10/site-packages/PIL/Image.py", line 1651, in point
        return self._new(self.im.point(lut, mode))
    TypeError: 'float' object cannot be interpreted as an integer
    (.env) ➜  captcha-tensorflow git:(master)
    
    opened by ecarey-paa 1
  • Bump pillow from 9.0.1 to 9.3.0

    Bump pillow from 9.0.1 to 9.3.0

    Bumps pillow from 9.0.1 to 9.3.0.

    Release notes

    Sourced from pillow's releases.

    9.3.0

    https://pillow.readthedocs.io/en/stable/releasenotes/9.3.0.html

    Changes

    ... (truncated)

    Changelog

    Sourced from pillow's changelog.

    9.3.0 (2022-10-29)

    • Limit SAMPLESPERPIXEL to avoid runtime DOS #6700 [wiredfool]

    • Initialize libtiff buffer when saving #6699 [radarhere]

    • Inline fname2char to fix memory leak #6329 [nulano]

    • Fix memory leaks related to text features #6330 [nulano]

    • Use double quotes for version check on old CPython on Windows #6695 [hugovk]

    • Remove backup implementation of Round for Windows platforms #6693 [cgohlke]

    • Fixed set_variation_by_name offset #6445 [radarhere]

    • Fix malloc in _imagingft.c:font_setvaraxes #6690 [cgohlke]

    • Release Python GIL when converting images using matrix operations #6418 [hmaarrfk]

    • Added ExifTags enums #6630 [radarhere]

    • Do not modify previous frame when calculating delta in PNG #6683 [radarhere]

    • Added support for reading BMP images with RLE4 compression #6674 [npjg, radarhere]

    • Decode JPEG compressed BLP1 data in original mode #6678 [radarhere]

    • Added GPS TIFF tag info #6661 [radarhere]

    • Added conversion between RGB/RGBA/RGBX and LAB #6647 [radarhere]

    • Do not attempt normalization if mode is already normal #6644 [radarhere]

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • How to test using a single image

    How to test using a single image

    Hey, i found this code and it's amazing, thanks for all! I have a issue... how to pass a single captcha per time? In the example you pass a batch.

    plus issue: how can i gerenate a black and white captcha? In this case you pass the number 3 on the argument C (RGB), i need to generate more collored type of captchas.

    opened by WilliamSMendes 1
Releases(v1.2)
Owner
Jackon Yang
Python, NLP, Machine Learning
Jackon Yang
Leaderboard and Visualization for RLCard

RLCard Showdown This is the GUI support for the RLCard project and DouZero project. RLCard-Showdown provides evaluation and visualization tools to hel

Data Analytics Lab at Texas A&M University 246 Dec 26, 2022
Measures input lag without dedicated hardware, performing motion detection on recorded or live video

What is InputLagTimer? This tool can measure input lag by analyzing a video where both the game controller and the game screen can be seen on a webcam

Bruno Gonzalez 4 Aug 18, 2022
Learning from graph data using Keras

Steps to run = Download the cora dataset from this link : https://linqs.soe.ucsc.edu/data unzip the files in the folder input/cora cd code python eda

Mansar Youness 64 Nov 16, 2022
Code-free deep segmentation for computational pathology

NoCodeSeg: Deep segmentation made easy! This is the official repository for the manuscript "Code-free development and deployment of deep segmentation

André Pedersen 26 Nov 23, 2022
ACL'2021: LM-BFF: Better Few-shot Fine-tuning of Language Models

LM-BFF (Better Few-shot Fine-tuning of Language Models) This is the implementation of the paper Making Pre-trained Language Models Better Few-shot Lea

Princeton Natural Language Processing 607 Jan 07, 2023
Non-Attentive-Tacotron - This is Pytorch Implementation of Google's Non-attentive Tacotron.

Non-attentive Tacotron - PyTorch Implementation This is Pytorch Implementation of Google's Non-attentive Tacotron, text-to-speech system. There is som

Jounghee Kim 46 Dec 19, 2022
Code for Emergent Translation in Multi-Agent Communication

Emergent Translation in Multi-Agent Communication PyTorch implementation of the models described in the paper Emergent Translation in Multi-Agent Comm

Facebook Research 75 Jul 15, 2022
PyTorch Implementation of NCSOFT's FastPitchFormant: Source-filter based Decomposed Modeling for Speech Synthesis

FastPitchFormant - PyTorch Implementation PyTorch Implementation of FastPitchFormant: Source-filter based Decomposed Modeling for Speech Synthesis. Qu

Keon Lee 63 Jan 02, 2023
Posterior temperature optimized Bayesian models for inverse problems in medical imaging

Posterior temperature optimized Bayesian models for inverse problems in medical imaging Max-Heinrich Laves*, Malte Tölle*, Alexander Schlaefer, Sandy

Artificial Intelligence in Cardiovascular Medicine (AICM) 6 Sep 19, 2022
Source code for "FastBERT: a Self-distilling BERT with Adaptive Inference Time".

FastBERT Source code for "FastBERT: a Self-distilling BERT with Adaptive Inference Time". Good News 2021/10/29 - Code: Code of FastPLM is released on

Weijie Liu 584 Jan 02, 2023
pix2pix in tensorflow.js

pix2pix in tensorflow.js This repo is moved to https://github.com/yining1023/pix2pix_tensorflowjs_lite See a live demo here: https://yining1023.github

Yining Shi 47 Oct 04, 2022
Density-aware Single Image De-raining using a Multi-stream Dense Network (CVPR 2018)

DID-MDN Density-aware Single Image De-raining using a Multi-stream Dense Network He Zhang, Vishal M. Patel [Paper Link] (CVPR'18) We present a novel d

He Zhang 224 Dec 12, 2022
Geometric Deep Learning Extension Library for PyTorch

Documentation | Paper | Colab Notebooks | External Resources | OGB Examples PyTorch Geometric (PyG) is a geometric deep learning extension library for

Matthias Fey 16.5k Jan 08, 2023
This repository contains code for the paper "Decoupling Representation and Classifier for Long-Tailed Recognition", published at ICLR 2020

Classifier-Balancing This repository contains code for the paper: Decoupling Representation and Classifier for Long-Tailed Recognition Bingyi Kang, Sa

Facebook Research 820 Dec 26, 2022
Simulation of Self Driving Car

In this repository, the code to use Udacity's self driving car simulator as a testbed for training an autonomous car are provided.

Shyam Das Shrestha 1 Nov 21, 2021
Picasso: a methods for embedding points in 2D in a way that respects distances while fitting a user-specified shape.

Picasso Code to generate Picasso embeddings of any input matrix. Picasso maps the points of an input matrix to user-defined, n-dimensional shape coord

Pachter Lab 45 Dec 23, 2022
Tools for manipulating UVs in the Blender viewport.

UV Tool Suite for Blender A set of tools to make editing UVs easier in Blender. These tools can be accessed wither through the Kitfox - UV panel on th

35 Oct 29, 2022
SlotRefine: A Fast Non-Autoregressive Model forJoint Intent Detection and Slot Filling

SlotRefine: A Fast Non-Autoregressive Model for Joint Intent Detection and Slot Filling Reference Main paper to be cited (Di Wu et al., 2020) @article

Moore 34 Nov 03, 2022
Self-Correcting Quantum Many-Body Control using Reinforcement Learning with Tensor Networks

Self-Correcting Quantum Many-Body Control using Reinforcement Learning with Tensor Networks This repository contains the code and data for the corresp

Friederike Metz 7 Apr 23, 2022
Pyramid R-CNN: Towards Better Performance and Adaptability for 3D Object Detection

Pyramid R-CNN: Towards Better Performance and Adaptability for 3D Object Detection

61 Jan 07, 2023