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
Flower classification model that classifies flowers in 10 classes made using transfer learning (~85% accuracy).

flower-classification-inceptionV3 Flower classification model that classifies flowers in 10 classes. Training and validation are done using a pre-anot

Ivan R. Mršulja 1 Dec 12, 2021
This is a model to classify Vietnamese sign language using Motion history image (MHI) algorithm and CNN.

Vietnamese sign lagnuage recognition using MHI and CNN This is a model to classify Vietnamese sign language using Motion history image (MHI) algorithm

Phat Pham 3 Feb 24, 2022
Minimal But Practical Image Classifier Pipline Using Pytorch, Finetune on ResNet18, Got 99% Accuracy on Own Small Datasets.

PyTorch Image Classifier Updates As for many users request, I released a new version of standared pytorch immage classification example at here: http:

JinTian 106 Nov 6, 2022
Contra is a lightweight, production ready Tensorflow alternative for solving time series prediction challenges with AI

Contra AI Engine A lightweight, production ready Tensorflow alternative developed by Styvio styvio.com » How to Use · Report Bug · Request Feature Tab

styvio 14 May 25, 2022
LeafSnap replicated using deep neural networks to test accuracy compared to traditional computer vision methods.

Deep-Leafsnap Convolutional Neural Networks have become largely popular in image tasks such as image classification recently largely due to to Krizhev

Sujith Vishwajith 48 Nov 27, 2022
Image Captioning using CNN and Transformers

Image-Captioning Keras/Tensorflow Image Captioning application using CNN and Transformer as encoder/decoder. In particulary, the architecture consists

null 24 Dec 28, 2022
Scripts for training an AI to play the endless runner Subway Surfers using a supervised machine learning approach by imitation and a convolutional neural network (CNN) for image classification

About subwAI subwAI - a project for training an AI to play the endless runner Subway Surfers using a supervised machine learning approach by imitation

null 82 Jan 1, 2023
Image Captioning using CNN ,LSTM and Attention

Image Captioning using CNN ,LSTM and Attention This is a deeplearning model which tries to summarize an image into a text . Installation Install this

ASUTOSH GHANTO 1 Dec 16, 2021
Propose a principled and practically effective framework for unsupervised accuracy estimation and error detection tasks with theoretical analysis and state-of-the-art performance.

Detecting Errors and Estimating Accuracy on Unlabeled Data with Self-training Ensembles This project is for the paper: Detecting Errors and Estimating

Jiefeng Chen 13 Nov 21, 2022
Mask R-CNN for object detection and instance segmentation on Keras and TensorFlow

Mask R-CNN for Object Detection and Segmentation This is an implementation of Mask R-CNN on Python 3, Keras, and TensorFlow. The model generates bound

Matterport, Inc 22.5k Jan 4, 2023
Patch Rotation: A Self-Supervised Auxiliary Task for Robustness and Accuracy of Supervised Models

Patch-Rotation(PatchRot) Patch Rotation: A Self-Supervised Auxiliary Task for Robustness and Accuracy of Supervised Models Submitted to Neurips2021 To

null 4 Jul 12, 2021
SpeechNAS Better Trade off between Latency and Accuracy for Large Scale Speaker Verification

SpeechNAS Better Trade off between Latency and Accuracy for Large Scale Speaker Verification

Wentao Zhu 24 May 20, 2022
Attention-based CNN-LSTM and XGBoost hybrid model for stock prediction

Attention-based CNN-LSTM and XGBoost hybrid model for stock prediction Requirements The code has been tested running under Python 3.7.4, with the foll

zshicode 84 Jan 1, 2023
An auto discord account and token generator. Automatically verifies the phone number. Works without proxy. Bypasses captcha.

JOIN DISCORD SERVER https://discord.gg/uAc3agBY FREE HCAPTCHA SOLVING API Discord-Token-Gen An auto discord token generator. Auto verifies phone numbe

3kp 271 Jan 1, 2023
An Ensemble of CNN (Python 3.5.1 Tensorflow 1.3 numpy 1.13)

An Ensemble of CNN (Python 3.5.1 Tensorflow 1.3 numpy 1.13)

null 0 May 6, 2022
TensorFlow CNN for fast style transfer

Fast Style Transfer in TensorFlow Add styles from famous paintings to any photo in a fraction of a second! It takes 100ms on a 2015 Titan X to style t

null 1 Dec 14, 2021