学习进度笔记20

Posted on 2021-01-25 22:12  九天龙凤  阅读(36)  评论(0编辑  收藏  举报

观看Tensorflow案例实战视频课程20 构造网络的输入数据和标签

import numpy as np
import tensorflow as tf
from captcha.image import ImageCaptcha
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
import random

number=['0','1','2','3','4','5','6','7','8','9']
alphabet=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
ALPHABET=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']

#def random_captcha_text(char_set=number+alphabet+ALPHABET,captcha_size=4):
def random_captcha_text(char_set=number,captcha_size=4):
    captcha_text = []
    for i in range(captcha_size):
        c = random.choice(char_set)
        captcha_text.append(c)
    return captcha_text


def gen_captcha_text_and_image():
    image=ImageCaptcha()

    captcha_text=random_captcha_text()
    captcha_text=''.join(captcha_text)

    captcha=image.generate(captcha_text)
    #image.write(captcha_text,captcha_text+'.jpg')

    captcha_image=Image.open(captcha)
    captcha_image=np.array(captcha_image)
    return captcha_text,captcha_image

if __name__=='__main__':
    train=0
    if train==0:
        number = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
        #alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't','u', 'v', 'w', 'x', 'y', 'z']
        #ALPHABET = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T','U', 'V', 'W', 'X', 'Y', 'Z']

        text,image=gen_captcha_text_and_image()
        print("验证码图像channel:",image.shape)#(60,160,3)
        #图像大小
        IMAGE_HEIGHT=60
        IMAGE_WIDTH=160
        MAX_CAPTCHA=len(text)
        print("验证码文本最长字符数",MAX_CAPTCHA)
        #文本转向量
        #char_set=number+alphabet+ALPHACET+['_']#如果验证码长度小于4,'_'用来补充
        char_set=number
        CHAR_SET_LEN=len(char_set)

        X=tf.placeholder(tf.float32,[None,IMAGE_HEIGHT*IMAGE_WIDTH])
        Y=tf.placeholder(tf.float32,[None,MAX_CAPTCHA*CHAR_SET_LEN])
        keep_prob=tf.placeholder(tf.float32)# dropout

        train_crack_captcha_cnn()