{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\n" ] } ], "source": [ "from captcha.image import ImageCaptcha\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import random\n", "\n", "%matplotlib inline\n", "%config InlineBackend.figure_format = 'retina'\n", "\n", "import string\n", "characters = string.digits + string.ascii_uppercase\n", "# characters = '0123456789+*-='\n", "print(characters)\n", "\n", "width, height, n_len, n_class = 128, 64, 4, len(characters) + 1\n", "# width, height, n_len, n_class = 100, 40, 4, len(characters) + 1" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ " # 防止 tensorflow 占用所有显存\n", "import tensorflow as tf\n", "import tensorflow.keras.backend as K\n", "\n", "config = tf.ConfigProto()\n", "config.gpu_options.allow_growth=False #True \n", "sess = tf.Session(config=config)\n", "K.set_session(sess)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# 定义 CTC Loss\n", "import tensorflow.keras.backend as K\n", "\n", "def ctc_lambda_func(args):\n", " y_pred, labels, input_length, label_length = args\n", " return K.ctc_batch_cost(labels, y_pred, input_length, label_length)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# 定义网络\n", "from tensorflow.keras.models import *\n", "from tensorflow.keras.layers import *\n", "\n", "input_tensor = Input((height, width, 3))\n", "x = input_tensor\n", "for i, n_cnn in enumerate([2, 2, 2, 2, 2]):\n", "# for i, n_cnn in enumerate([2, 2, 2, 2]): \n", " for j in range(n_cnn):\n", " x = Conv2D(32*2**min(i, 3), kernel_size=3, padding='same', kernel_initializer='he_uniform')(x) # 32*2**min(i, 3)\n", " x = BatchNormalization()(x)\n", " x = Activation('relu')(x)\n", " x = MaxPooling2D(2 if i < 3 else (2, 1))(x)\n", "\n", "x = Permute((2, 1, 3))(x)\n", "x = TimeDistributed(Flatten())(x)\n", "\n", "rnn_size = 64 # 128\n", "x = Bidirectional(CuDNNGRU(rnn_size, return_sequences=True))(x)\n", "x = Bidirectional(CuDNNGRU(rnn_size, return_sequences=True))(x)\n", "x = Dense(n_class, activation='softmax')(x)\n", "\n", "base_model = Model(inputs=input_tensor, outputs=x)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "labels = Input(name='the_labels', shape=[n_len], dtype='float32')\n", "input_length = Input(name='input_length', shape=[1], dtype='int64')\n", "label_length = Input(name='label_length', shape=[1], dtype='int64')\n", "loss_out = Lambda(ctc_lambda_func, output_shape=(1,), name='ctc')([x, labels, input_length, label_length])\n", "\n", "model = Model(inputs=[input_tensor, labels, input_length, label_length], outputs=loss_out)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# # 网络结构可视化\n", "# from tensorflow.keras.utils import plot_model\n", "# from IPython.display import Image\n", "\n", "# plot_model(model, to_file='ctc.png', show_shapes=True)\n", "# Image('ctc.png')\n" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "input_3 (InputLayer) (None, 40, 100, 3) 0 \n", "_________________________________________________________________\n", "conv2d_18 (Conv2D) (None, 40, 100, 32) 896 \n", "_________________________________________________________________\n", "batch_normalization_18 (Batc (None, 40, 100, 32) 128 \n", "_________________________________________________________________\n", "activation_18 (Activation) (None, 40, 100, 32) 0 \n", "_________________________________________________________________\n", "conv2d_19 (Conv2D) (None, 40, 100, 32) 9248 \n", "_________________________________________________________________\n", "batch_normalization_19 (Batc (None, 40, 100, 32) 128 \n", "_________________________________________________________________\n", "activation_19 (Activation) (None, 40, 100, 32) 0 \n", "_________________________________________________________________\n", "max_pooling2d_9 (MaxPooling2 (None, 20, 50, 32) 0 \n", "_________________________________________________________________\n", "conv2d_20 (Conv2D) (None, 20, 50, 64) 18496 \n", "_________________________________________________________________\n", "batch_normalization_20 (Batc (None, 20, 50, 64) 256 \n", "_________________________________________________________________\n", "activation_20 (Activation) (None, 20, 50, 64) 0 \n", "_________________________________________________________________\n", "conv2d_21 (Conv2D) (None, 20, 50, 64) 36928 \n", "_________________________________________________________________\n", "batch_normalization_21 (Batc (None, 20, 50, 64) 256 \n", "_________________________________________________________________\n", "activation_21 (Activation) (None, 20, 50, 64) 0 \n", "_________________________________________________________________\n", "max_pooling2d_10 (MaxPooling (None, 10, 25, 64) 0 \n", "_________________________________________________________________\n", "conv2d_22 (Conv2D) (None, 10, 25, 128) 73856 \n", "_________________________________________________________________\n", "batch_normalization_22 (Batc (None, 10, 25, 128) 512 \n", "_________________________________________________________________\n", "activation_22 (Activation) (None, 10, 25, 128) 0 \n", "_________________________________________________________________\n", "conv2d_23 (Conv2D) (None, 10, 25, 128) 147584 \n", "_________________________________________________________________\n", "batch_normalization_23 (Batc (None, 10, 25, 128) 512 \n", "_________________________________________________________________\n", "activation_23 (Activation) (None, 10, 25, 128) 0 \n", "_________________________________________________________________\n", "max_pooling2d_11 (MaxPooling (None, 5, 12, 128) 0 \n", "_________________________________________________________________\n", "conv2d_24 (Conv2D) (None, 5, 12, 256) 295168 \n", "_________________________________________________________________\n", "batch_normalization_24 (Batc (None, 5, 12, 256) 1024 \n", "_________________________________________________________________\n", "activation_24 (Activation) (None, 5, 12, 256) 0 \n", "_________________________________________________________________\n", "conv2d_25 (Conv2D) (None, 5, 12, 256) 590080 \n", "_________________________________________________________________\n", "batch_normalization_25 (Batc (None, 5, 12, 256) 1024 \n", "_________________________________________________________________\n", "activation_25 (Activation) (None, 5, 12, 256) 0 \n", "_________________________________________________________________\n", "max_pooling2d_12 (MaxPooling (None, 2, 12, 256) 0 \n", "_________________________________________________________________\n", "permute_2 (Permute) (None, 12, 2, 256) 0 \n", "_________________________________________________________________\n", "time_distributed_2 (TimeDist (None, 12, 512) 0 \n", "_________________________________________________________________\n", "bidirectional_4 (Bidirection (None, 12, 128) 221952 \n", "_________________________________________________________________\n", "bidirectional_5 (Bidirection (None, 12, 128) 74496 \n", "_________________________________________________________________\n", "dense_2 (Dense) (None, 12, 15) 1935 \n", "=================================================================\n", "Total params: 1,474,479\n", "Trainable params: 1,472,559\n", "Non-trainable params: 1,920\n", "_________________________________________________________________\n" ] } ], "source": [ "base_model.summary()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "from PIL import Image, ImageFont, ImageDraw\n", "# def generate_image(random_str):\n", "# image = Image.new(mode='RGB', size=(width, height), color=(255,255,255))\n", "# font = ImageFont.truetype(font='/usr/share/fonts/WindowsFonts/fonts/ariali.ttf', size=32)\n", "# draw = ImageDraw.Draw(image) \n", "# for _ in range(3):\n", "# # draw.point(xy=(random.randint(0, width), random.randint(0, height)),\n", "# # fill=(random.randint(100, 250),random.randint(100, 250),random.randint(100, 250)))\n", "# draw.line(xy=(random.randint(0, width), random.randint(0, height), random.randint(0, width), random.randint(0, height)),\n", "# fill=(0, 0, 0), width=0)\n", "# draw.text(xy=(random.randint(0,30),random.randint(0,12)),text= random_str, fill=(0,0,0), font=font)\n", " \n", "# return image\n", "def generate_image(random_str, width=80, height=30):\n", " image = Image.new(mode='RGB', size=(width, height), color=(255,255,255))\n", " font = ImageFont.truetype(font='/usr/share/fonts/WindowsFonts/fonts/ariali.ttf', size=25)\n", " draw = ImageDraw.Draw(image) \n", " for _ in range(random.randint(50, 200)):\n", "# draw.point(xy=(random.randint(0, width), random.randint(0, height)),\n", "# fill=(random.randint(100, 250),random.randint(100, 250),random.randint(100, 250)))\n", " line_fill = (random.randint(190,250),random.randint(190,250),random.randint(190,250))\n", " draw.line(xy=(random.randint(0, width), random.randint(0, height), random.randint(0, width), random.randint(0, height)),\n", " fill=line_fill, width=0)\n", " text_fill = (random.randint(50,180),random.randint(50,180),random.randint(50,180))\n", " draw.text(xy=(random.randint(0,10),random.randint(0,2)),text= random_str, fill=text_fill, font=font)\n", " \n", " return image.resize((128,64), Image.BILINEAR)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# 定义数据生成器\n", "from tensorflow.keras.utils import Sequence\n", "\n", "class CaptchaSequence(Sequence):\n", " def __init__(self, characters, batch_size, steps, n_len=4, width=128, height=64, \n", " input_length=12, label_length=4): # width=128, height=64, input_length=16, label_length=4\n", " self.characters = characters\n", " self.batch_size = batch_size\n", " self.steps = steps\n", " self.n_len = n_len\n", " self.width = width\n", " self.height = height\n", " self.input_length = input_length\n", " self.label_length = label_length\n", "# self.label_length = self.n_len\n", " self.n_class = len(characters)\n", "# self.generator = ImageCaptcha(width=width, height=height)\n", " \n", " def __len__(self):\n", " return self.steps\n", "\n", " def __getitem__(self, idx):\n", " X = np.zeros((self.batch_size, self.height, self.width, 3), dtype=np.float32)\n", " y = np.zeros((self.batch_size, self.n_len), dtype=np.uint8)\n", " input_length = np.ones(self.batch_size)*self.input_length\n", " label_length = np.ones(self.batch_size)*self.label_length\n", " bat_len = random.randint(2,self.n_len)\n", "# num = '0123456789'\n", "# sign = '+*-'\n", " for i in range(self.batch_size):\n", " random_str = ''.join([random.choice(self.characters) for j in range(bat_len)])\n", "# random_str = '{}{}{}='.format(random.choice(num), random.choice(sign), random.choice(num)) \n", " X[i] = np.array(generate_image(random_str))/255.0\n", "# X[i] = np.array(self.generator.generate_image(random_str)) / 255.0\n", " label = [self.characters.find(x) for x in random_str]\n", " if len(random_str) < self.n_len:\n", " label += [self.n_class]*(self.n_len-len(random_str)) \n", " y[i] = label\n", "\n", " return [X, y, input_length, label_length], np.ones(self.batch_size)\n" ] }, { "cell_type": "code", "execution_count": 271, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor(\"input_length_2:0\", shape=(?, 1), dtype=int64) Tensor(\"label_length_2:0\", shape=(?, 1), dtype=int64)\n", "[[26 32 36 36]]\n", "(1, 64, 128, 3)\n", "37\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 213, "width": 370 }, "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# 测试生成器\n", "data = CaptchaSequence(characters, batch_size=1, steps=100)\n", "[X_test, y_test, _, _], _ = data[0]\n", "plt.imshow(X_test[0])\n", "plt.title(''.join([characters[x] for x in y_test[0] if x < len(characters)]))\n", "print(input_length, label_length)\n", "print(y_test)\n", "print(X_test.shape)\n", "print(n_class)" ] }, { "cell_type": "code", "execution_count": 115, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(1, 25, 100, 3)\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 115, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 116, "width": 370 }, "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# 从现有图片生成测试数据\n", "def get_data(img_path):\n", " img = Image.open(img_path)\n", " img = img.crop((0, height-25, width, height))\n", " w, h = img.size\n", " data = np.zeros((1,h, w, 3))\n", " data[0] = np.array(img)/255.0\n", " return data\n", "img_path = '../FileInfo/ffdef6b8-f976-11e9-b970-408d5cd36814_20.jpg'\n", "data = get_data(img_path)\n", "print(data.shape)\n", "plt.imshow(data[0])" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# 准确率回调函数\n", "from tqdm import tqdm\n", "\n", "def evaluate(model, batch_size=128, steps=20):\n", " batch_acc = 0\n", " valid_data = CaptchaSequence(characters, batch_size, steps)\n", " for i in range(len(valid_data)):\n", " [X_test, y_test, _, _], _ = valid_data[i]\n", " y_pred = base_model.predict(X_test)\n", " shape = y_pred.shape\n", " out = K.get_value(K.ctc_decode(y_pred, input_length=np.ones(shape[0])*shape[1],)[0][0])[:, :4]\n", " if out.shape[1] == 4:\n", " batch_acc += (y_test == out).all(axis=1).mean()\n", " return batch_acc / steps" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "from tensorflow.keras.callbacks import Callback\n", "\n", "class Evaluate(Callback):\n", " def __init__(self):\n", " self.accs = []\n", " \n", " def on_epoch_end(self, epoch, logs=None):\n", " logs = logs or {}\n", " acc = evaluate(base_model, batch_size=8) # evaluate(base_model)\n", " logs['val_acc'] = acc\n", " self.accs.append(acc)\n", " print('\\nacc%.4f'%acc)\n", "# print(f'\\nacc: {acc*100:.4f}')" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/200\n", "1000/1000 [==============================] - 179s 179ms/step - loss: 3.6737 - val_loss: 0.1582\n", "Epoch 2/200\n", "1000/1000 [==============================] - 173s 173ms/step - loss: 0.0858 - val_loss: 0.0490\n", "Epoch 3/200\n", "1000/1000 [==============================] - 170s 170ms/step - loss: 0.0408 - val_loss: 0.0323\n", "Epoch 4/200\n", "1000/1000 [==============================] - 172s 172ms/step - loss: 0.0266 - val_loss: 0.0243\n", "Epoch 5/200\n", "1000/1000 [==============================] - 171s 171ms/step - loss: 0.0207 - val_loss: 0.0162\n", "Epoch 6/200\n", "1000/1000 [==============================] - 170s 170ms/step - loss: 0.0163 - val_loss: 0.0123\n", "Epoch 7/200\n", "1000/1000 [==============================] - 172s 172ms/step - loss: 0.0127 - val_loss: 0.0125\n", "Epoch 8/200\n", "1000/1000 [==============================] - 162s 162ms/step - loss: 0.0114 - val_loss: 0.0108\n", "Epoch 9/200\n", "1000/1000 [==============================] - 181s 181ms/step - loss: 0.0095 - val_loss: 0.0123\n", "Epoch 10/200\n", "1000/1000 [==============================] - 161s 161ms/step - loss: 0.0093 - val_loss: 0.0085\n", "Epoch 11/200\n", "1000/1000 [==============================] - 130s 130ms/step - loss: 0.0087 - val_loss: 0.0069\n", "Epoch 12/200\n", "1000/1000 [==============================] - 130s 130ms/step - loss: 0.0082 - val_loss: 0.0064\n", "Epoch 13/200\n", "1000/1000 [==============================] - 130s 130ms/step - loss: 0.0064 - val_loss: 0.0087\n", "Epoch 14/200\n", "1000/1000 [==============================] - 130s 130ms/step - loss: 0.0070 - val_loss: 0.0066\n", "Epoch 15/200\n", "1000/1000 [==============================] - 137s 137ms/step - loss: 0.0064 - val_loss: 0.0059\n", "Epoch 16/200\n", "1000/1000 [==============================] - 168s 168ms/step - loss: 0.0055 - val_loss: 0.0047\n", "Epoch 17/200\n", "1000/1000 [==============================] - 169s 169ms/step - loss: 0.0061 - val_loss: 0.0048\n", "Epoch 18/200\n", "1000/1000 [==============================] - 130s 130ms/step - loss: 0.0059 - val_loss: 0.0059\n", "Epoch 19/200\n", "1000/1000 [==============================] - 144s 144ms/step - loss: 0.0057 - val_loss: 0.0056\n", "Epoch 20/200\n", "1000/1000 [==============================] - 154s 154ms/step - loss: 0.0054 - val_loss: 0.0064\n", "Epoch 21/200\n", "1000/1000 [==============================] - 130s 130ms/step - loss: 0.0048 - val_loss: 0.0039\n", "Epoch 22/200\n", "1000/1000 [==============================] - 130s 130ms/step - loss: 0.0047 - val_loss: 0.0044\n", "Epoch 23/200\n", "1000/1000 [==============================] - 130s 130ms/step - loss: 0.0054 - val_loss: 0.0029\n", "Epoch 24/200\n", "1000/1000 [==============================] - 176s 176ms/step - loss: 0.0045 - val_loss: 0.0055\n", "Epoch 25/200\n", "1000/1000 [==============================] - 146s 146ms/step - loss: 0.0048 - val_loss: 0.0039\n", "Epoch 26/200\n", "1000/1000 [==============================] - 130s 130ms/step - loss: 0.0043 - val_loss: 0.0039\n", "Epoch 27/200\n", "1000/1000 [==============================] - 130s 130ms/step - loss: 0.0042 - val_loss: 0.0033\n", "Epoch 28/200\n", "1000/1000 [==============================] - 154s 154ms/step - loss: 0.0039 - val_loss: 0.0037\n", "Epoch 29/200\n", "1000/1000 [==============================] - 142s 142ms/step - loss: 0.0040 - val_loss: 0.0023\n", "Epoch 30/200\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0038 - val_loss: 0.0036\n", "Epoch 31/200\n", "1000/1000 [==============================] - 130s 130ms/step - loss: 0.0038 - val_loss: 0.0041\n", "Epoch 32/200\n", "1000/1000 [==============================] - 148s 148ms/step - loss: 0.0034 - val_loss: 0.0035\n", "Epoch 33/200\n", "1000/1000 [==============================] - 138s 138ms/step - loss: 0.0033 - val_loss: 0.0027\n", "Epoch 34/200\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0035 - val_loss: 0.0032\n", "Epoch 35/200\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0031 - val_loss: 0.0037\n", "Epoch 36/200\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0029 - val_loss: 0.0022\n", "Epoch 37/200\n", "1000/1000 [==============================] - 130s 130ms/step - loss: 0.0034 - val_loss: 0.0029\n", "Epoch 38/200\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0029 - val_loss: 0.0033\n", "Epoch 39/200\n", "1000/1000 [==============================] - 130s 130ms/step - loss: 0.0027 - val_loss: 0.0024\n", "Epoch 40/200\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0030 - val_loss: 0.0023\n", "Epoch 41/200\n", "1000/1000 [==============================] - 145s 145ms/step - loss: 0.0029 - val_loss: 0.0028\n", "Epoch 42/200\n", "1000/1000 [==============================] - 161s 161ms/step - loss: 0.0027 - val_loss: 0.0033\n", "Epoch 43/200\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0028 - val_loss: 0.0034\n", "Epoch 44/200\n", "1000/1000 [==============================] - 130s 130ms/step - loss: 0.0026 - val_loss: 0.0032\n", "Epoch 45/200\n", "1000/1000 [==============================] - 139s 139ms/step - loss: 0.0031 - val_loss: 0.0034\n", "Epoch 46/200\n", "1000/1000 [==============================] - 155s 155ms/step - loss: 0.0027 - val_loss: 0.0044\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Evaluate()\n", "# 模型训练\n", "from tensorflow.keras.callbacks import EarlyStopping, CSVLogger, ModelCheckpoint\n", "from tensorflow.keras.optimizers import *\n", "# model.load_weights('ctc_best.h5')\n", "\n", "train_data = CaptchaSequence(characters, batch_size=128, steps=1000) # (characters, batch_size=128, steps=1000)\n", "valid_data = CaptchaSequence(characters, batch_size=128, steps=100) # (characters, batch_size=128, steps=100)\n", "# callbacks = [EarlyStopping(patience=5), Evaluate(), \n", "# CSVLogger('ctc.csv'), ModelCheckpoint('ctc_best.h5', save_best_only=True)]\n", "callbacks = [EarlyStopping(patience=10),ModelCheckpoint('randlen2_ctc_best.h5', save_best_only=True)]\n", "model.compile(loss={'ctc': lambda y_true, y_pred: y_pred}, optimizer=Adam(1e-4, amsgrad=True))\n", "# model.fit_generator(train_data, epochs=100, validation_data=valid_data,\n", "# callbacks=callbacks)\n", "model.fit_generator(train_data, epochs=200, validation_data=valid_data, workers=4, use_multiprocessing=True,\n", " callbacks=callbacks)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.0053Epoch 1/300\n", "1000/1000 [==============================] - 138s 138ms/step - loss: 0.0053 - val_loss: 0.0034\n", "Epoch 2/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0035 - val_loss: 0.0066\n", "Epoch 3/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0037 - val_loss: 0.0491\n", "Epoch 4/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0035 - val_loss: 0.0024\n", "Epoch 5/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0029 - val_loss: 0.0059\n", "Epoch 6/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0018 - val_loss: 0.0041\n", "Epoch 7/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0017 - val_loss: 0.0064\n", "Epoch 8/300\n", "1000/1000 [==============================] - 132s 132ms/step - loss: 0.0018 - val_loss: 0.0315\n", "Epoch 9/300\n", "1000/1000 [==============================] - 148s 148ms/step - loss: 0.0023 - val_loss: 0.0032\n", "Epoch 10/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0029 - val_loss: 0.0047\n", "Epoch 11/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0021 - val_loss: 0.0035\n", "Epoch 12/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0019 - val_loss: 0.0026\n", "Epoch 13/300\n", "1000/1000 [==============================] - 148s 148ms/step - loss: 0.0013 - val_loss: 0.0013\n", "Epoch 14/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0015 - val_loss: 0.0022\n", "Epoch 15/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0015 - val_loss: 0.0097\n", "Epoch 16/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0017 - val_loss: 0.0014\n", "Epoch 17/300\n", "1000/1000 [==============================] - 137s 137ms/step - loss: 0.0013 - val_loss: 0.0024\n", "Epoch 18/300\n", "1000/1000 [==============================] - 161s 161ms/step - loss: 0.0014 - val_loss: 0.0021\n", "Epoch 19/300\n", "1000/1000 [==============================] - 133s 133ms/step - loss: 0.0013 - val_loss: 0.0026\n", "Epoch 20/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0013 - val_loss: 0.0021\n", "Epoch 21/300\n", "1000/1000 [==============================] - 132s 132ms/step - loss: 0.0015 - val_loss: 7.7544e-04\n", "Epoch 22/300\n", "1000/1000 [==============================] - 160s 160ms/step - loss: 0.0014 - val_loss: 0.0036\n", "Epoch 23/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0010 - val_loss: 0.0015\n", "Epoch 24/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0010 - val_loss: 0.0013\n", "Epoch 25/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0011 - val_loss: 0.0021\n", "Epoch 26/300\n", "1000/1000 [==============================] - 149s 149ms/step - loss: 0.0012 - val_loss: 7.6146e-04\n", "Epoch 27/300\n", "1000/1000 [==============================] - 147s 147ms/step - loss: 0.0012 - val_loss: 8.6668e-04\n", "Epoch 28/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0013 - val_loss: 0.0016\n", "Epoch 29/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 9.9972e-04 - val_loss: 9.7085e-04\n", "Epoch 30/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0011 - val_loss: 0.0013\n", "Epoch 31/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0013 - val_loss: 0.0018\n", "Epoch 32/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0013 - val_loss: 0.0018\n", "Epoch 33/300\n", "1000/1000 [==============================] - 132s 132ms/step - loss: 0.0014 - val_loss: 5.4285e-04\n", "Epoch 34/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 8.7599e-04 - val_loss: 0.0021\n", "Epoch 35/300\n", "1000/1000 [==============================] - 157s 157ms/step - loss: 0.0013 - val_loss: 9.9183e-04\n", "Epoch 36/300\n", "1000/1000 [==============================] - 164s 164ms/step - loss: 9.7385e-04 - val_loss: 6.0870e-04\n", "Epoch 37/300\n", "1000/1000 [==============================] - 160s 160ms/step - loss: 9.4610e-04 - val_loss: 0.0012\n", "Epoch 38/300\n", "1000/1000 [==============================] - 168s 168ms/step - loss: 0.0011 - val_loss: 8.7243e-04\n", "Epoch 39/300\n", "1000/1000 [==============================] - 168s 168ms/step - loss: 9.8712e-04 - val_loss: 0.0017\n", "Epoch 40/300\n", "1000/1000 [==============================] - 175s 175ms/step - loss: 9.8894e-04 - val_loss: 3.7676e-04\n", "Epoch 41/300\n", "1000/1000 [==============================] - 167s 167ms/step - loss: 7.9366e-04 - val_loss: 0.0014\n", "Epoch 42/300\n", "1000/1000 [==============================] - 145s 145ms/step - loss: 8.8829e-04 - val_loss: 2.7150e-04\n", "Epoch 43/300\n", "1000/1000 [==============================] - 196s 196ms/step - loss: 8.7188e-04 - val_loss: 7.4673e-04\n", "Epoch 44/300\n", "1000/1000 [==============================] - 161s 161ms/step - loss: 0.0015 - val_loss: 7.5668e-04\n", "Epoch 45/300\n", "1000/1000 [==============================] - 173s 173ms/step - loss: 9.5166e-04 - val_loss: 0.0014\n", "Epoch 46/300\n", "1000/1000 [==============================] - 173s 173ms/step - loss: 0.0013 - val_loss: 0.0012\n", "Epoch 47/300\n", "1000/1000 [==============================] - 160s 160ms/step - loss: 9.1945e-04 - val_loss: 5.3344e-04\n", "Epoch 48/300\n", "1000/1000 [==============================] - 169s 169ms/step - loss: 8.8755e-04 - val_loss: 7.3816e-04\n", "Epoch 49/300\n", "1000/1000 [==============================] - 153s 153ms/step - loss: 8.8659e-04 - val_loss: 7.5610e-04\n", "Epoch 50/300\n", "1000/1000 [==============================] - 170s 170ms/step - loss: 8.9620e-04 - val_loss: 8.2275e-04\n", "Epoch 51/300\n", "1000/1000 [==============================] - 161s 161ms/step - loss: 0.0011 - val_loss: 4.9366e-04\n", "Epoch 52/300\n", "1000/1000 [==============================] - 158s 158ms/step - loss: 8.8205e-04 - val_loss: 8.8835e-04\n", "Epoch 53/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 9.0199e-04 - val_loss: 8.3607e-04\n", "Epoch 54/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 7.6381e-04 - val_loss: 3.2534e-04\n", "Epoch 55/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0010 - val_loss: 0.0012\n", "Epoch 56/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 6.6245e-04 - val_loss: 7.1470e-04\n", "Epoch 57/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 0.0013 - val_loss: 6.0182e-04\n", "Epoch 58/300\n", "1000/1000 [==============================] - 167s 167ms/step - loss: 0.0011 - val_loss: 0.0022\n", "Epoch 59/300\n", "1000/1000 [==============================] - 170s 170ms/step - loss: 9.2330e-04 - val_loss: 6.4727e-04\n", "Epoch 60/300\n", "1000/1000 [==============================] - 163s 163ms/step - loss: 6.2011e-04 - val_loss: 0.0012\n", "Epoch 61/300\n", "1000/1000 [==============================] - 160s 160ms/step - loss: 6.5913e-04 - val_loss: 0.0012\n", "Epoch 62/300\n", "1000/1000 [==============================] - 154s 154ms/step - loss: 9.3856e-04 - val_loss: 7.9286e-04\n", "Epoch 63/300\n", "1000/1000 [==============================] - 178s 178ms/step - loss: 7.2428e-04 - val_loss: 4.2120e-04\n", "Epoch 64/300\n", "1000/1000 [==============================] - 171s 171ms/step - loss: 7.5848e-04 - val_loss: 6.7274e-04\n", "Epoch 65/300\n", "1000/1000 [==============================] - 172s 172ms/step - loss: 6.8676e-04 - val_loss: 7.7328e-04\n", "Epoch 66/300\n", "1000/1000 [==============================] - 165s 165ms/step - loss: 7.3854e-04 - val_loss: 6.7560e-04\n", "Epoch 67/300\n", "1000/1000 [==============================] - 176s 176ms/step - loss: 9.6422e-04 - val_loss: 5.5648e-04\n", "Epoch 68/300\n", "1000/1000 [==============================] - 176s 176ms/step - loss: 5.4281e-04 - val_loss: 7.4742e-04\n", "Epoch 69/300\n", "1000/1000 [==============================] - 169s 169ms/step - loss: 8.5061e-04 - val_loss: 7.6507e-04\n", "Epoch 70/300\n", "1000/1000 [==============================] - 166s 166ms/step - loss: 6.9837e-04 - val_loss: 0.0011\n", "Epoch 71/300\n", "1000/1000 [==============================] - 167s 167ms/step - loss: 0.0011 - val_loss: 4.1683e-04\n", "Epoch 72/300\n", "1000/1000 [==============================] - 173s 173ms/step - loss: 7.9944e-04 - val_loss: 5.3809e-04\n", "Epoch 73/300\n", "1000/1000 [==============================] - 174s 174ms/step - loss: 7.6002e-04 - val_loss: 3.8598e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 74/300\n", "1000/1000 [==============================] - 159s 159ms/step - loss: 6.5024e-04 - val_loss: 4.3174e-04\n", "Epoch 75/300\n", "1000/1000 [==============================] - 160s 160ms/step - loss: 7.7504e-04 - val_loss: 0.0016\n", "Epoch 76/300\n", "1000/1000 [==============================] - 169s 169ms/step - loss: 5.5019e-04 - val_loss: 3.4968e-04\n", "Epoch 77/300\n", "1000/1000 [==============================] - 176s 176ms/step - loss: 5.5958e-04 - val_loss: 7.5070e-04\n", "Epoch 78/300\n", "1000/1000 [==============================] - 181s 181ms/step - loss: 7.5687e-04 - val_loss: 0.0020\n", "Epoch 79/300\n", "1000/1000 [==============================] - 176s 176ms/step - loss: 6.6799e-04 - val_loss: 0.0016\n", "Epoch 80/300\n", "1000/1000 [==============================] - 168s 168ms/step - loss: 5.1327e-04 - val_loss: 4.2391e-04\n", "Epoch 81/300\n", "1000/1000 [==============================] - 181s 181ms/step - loss: 0.0011 - val_loss: 3.8226e-04\n", "Epoch 82/300\n", "1000/1000 [==============================] - 170s 170ms/step - loss: 5.7677e-04 - val_loss: 4.1385e-04\n", "Epoch 83/300\n", "1000/1000 [==============================] - 159s 159ms/step - loss: 7.3264e-04 - val_loss: 1.8495e-04\n", "Epoch 84/300\n", "1000/1000 [==============================] - 170s 170ms/step - loss: 5.4400e-04 - val_loss: 1.8024e-04\n", "Epoch 85/300\n", "1000/1000 [==============================] - 164s 164ms/step - loss: 6.8464e-04 - val_loss: 7.7304e-04\n", "Epoch 86/300\n", "1000/1000 [==============================] - 167s 167ms/step - loss: 4.4974e-04 - val_loss: 0.0018\n", "Epoch 87/300\n", "1000/1000 [==============================] - 166s 166ms/step - loss: 6.7004e-04 - val_loss: 0.0024\n", "Epoch 88/300\n", "1000/1000 [==============================] - 165s 165ms/step - loss: 8.1094e-04 - val_loss: 3.1285e-04\n", "Epoch 89/300\n", "1000/1000 [==============================] - 156s 156ms/step - loss: 7.5375e-04 - val_loss: 1.9024e-04\n", "Epoch 90/300\n", "1000/1000 [==============================] - 170s 170ms/step - loss: 7.0702e-04 - val_loss: 3.6026e-04\n", "Epoch 91/300\n", "1000/1000 [==============================] - 165s 165ms/step - loss: 9.9374e-04 - val_loss: 4.7180e-04\n", "Epoch 92/300\n", "1000/1000 [==============================] - 159s 159ms/step - loss: 8.7421e-04 - val_loss: 0.0020\n", "Epoch 93/300\n", "1000/1000 [==============================] - 167s 167ms/step - loss: 7.1033e-04 - val_loss: 6.3023e-04\n", "Epoch 94/300\n", "1000/1000 [==============================] - 167s 167ms/step - loss: 0.0011 - val_loss: 0.0016\n", "Epoch 95/300\n", "1000/1000 [==============================] - 134s 134ms/step - loss: 8.4801e-04 - val_loss: 0.0015\n", "Epoch 96/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 5.6559e-04 - val_loss: 7.0182e-04\n", "Epoch 97/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 8.2954e-04 - val_loss: 0.0016\n", "Epoch 98/300\n", "1000/1000 [==============================] - 136s 136ms/step - loss: 8.8581e-04 - val_loss: 1.5521e-04\n", "Epoch 99/300\n", "1000/1000 [==============================] - 159s 159ms/step - loss: 6.6731e-04 - val_loss: 3.6741e-04\n", "Epoch 100/300\n", "1000/1000 [==============================] - 165s 165ms/step - loss: 8.3144e-04 - val_loss: 4.5046e-04\n", "Epoch 101/300\n", "1000/1000 [==============================] - 176s 176ms/step - loss: 7.0033e-04 - val_loss: 7.3615e-04\n", "Epoch 102/300\n", "1000/1000 [==============================] - 170s 170ms/step - loss: 8.6165e-04 - val_loss: 7.8854e-04\n", "Epoch 103/300\n", "1000/1000 [==============================] - 174s 174ms/step - loss: 7.9161e-04 - val_loss: 3.9203e-04\n", "Epoch 104/300\n", "1000/1000 [==============================] - 174s 174ms/step - loss: 8.0000e-04 - val_loss: 5.7769e-04\n", "Epoch 105/300\n", "1000/1000 [==============================] - 159s 159ms/step - loss: 9.6345e-04 - val_loss: 1.4228e-04\n", "Epoch 106/300\n", "1000/1000 [==============================] - 160s 160ms/step - loss: 7.2526e-04 - val_loss: 8.8240e-04\n", "Epoch 107/300\n", "1000/1000 [==============================] - 162s 162ms/step - loss: 4.4623e-04 - val_loss: 0.0013\n", "Epoch 108/300\n", "1000/1000 [==============================] - 161s 161ms/step - loss: 5.3970e-04 - val_loss: 2.8558e-04\n", "Epoch 109/300\n", "1000/1000 [==============================] - 168s 168ms/step - loss: 8.5983e-04 - val_loss: 3.4408e-04\n", "Epoch 110/300\n", "1000/1000 [==============================] - 182s 182ms/step - loss: 7.1105e-04 - val_loss: 6.0029e-04\n", "Epoch 111/300\n", "1000/1000 [==============================] - 177s 177ms/step - loss: 6.8468e-04 - val_loss: 3.8481e-04\n", "Epoch 112/300\n", "1000/1000 [==============================] - 167s 167ms/step - loss: 5.2950e-04 - val_loss: 1.9326e-04\n", "Epoch 113/300\n", "1000/1000 [==============================] - 158s 158ms/step - loss: 5.8324e-04 - val_loss: 4.3470e-04\n", "Epoch 114/300\n", "1000/1000 [==============================] - 166s 166ms/step - loss: 7.1903e-04 - val_loss: 3.0503e-04\n", "Epoch 115/300\n", "1000/1000 [==============================] - 177s 177ms/step - loss: 5.4803e-04 - val_loss: 7.1596e-04\n", "Epoch 116/300\n", "1000/1000 [==============================] - 166s 166ms/step - loss: 9.3972e-04 - val_loss: 3.8128e-04\n", "Epoch 117/300\n", "1000/1000 [==============================] - 179s 179ms/step - loss: 5.5956e-04 - val_loss: 4.7099e-04\n", "Epoch 118/300\n", "1000/1000 [==============================] - 185s 185ms/step - loss: 5.6468e-04 - val_loss: 7.2823e-04\n", "Epoch 119/300\n", "1000/1000 [==============================] - 174s 174ms/step - loss: 5.7326e-04 - val_loss: 3.6034e-04\n", "Epoch 120/300\n", "1000/1000 [==============================] - 181s 181ms/step - loss: 4.2042e-04 - val_loss: 3.6971e-04\n", "Epoch 121/300\n", "1000/1000 [==============================] - 170s 170ms/step - loss: 8.2196e-04 - val_loss: 4.8501e-04\n", "Epoch 122/300\n", "1000/1000 [==============================] - 161s 161ms/step - loss: 7.3920e-04 - val_loss: 8.8715e-04\n", "Epoch 123/300\n", "1000/1000 [==============================] - 178s 178ms/step - loss: 5.1060e-04 - val_loss: 3.0111e-04\n", "Epoch 124/300\n", "1000/1000 [==============================] - 179s 179ms/step - loss: 7.0377e-04 - val_loss: 6.9330e-04\n", "Epoch 125/300\n", "1000/1000 [==============================] - 169s 169ms/step - loss: 7.5331e-04 - val_loss: 0.0012\n", "Epoch 126/300\n", "1000/1000 [==============================] - 185s 185ms/step - loss: 7.3613e-04 - val_loss: 2.7544e-04\n", "Epoch 127/300\n", "1000/1000 [==============================] - 173s 173ms/step - loss: 7.1473e-04 - val_loss: 2.4524e-04\n", "Epoch 128/300\n", "1000/1000 [==============================] - 188s 188ms/step - loss: 5.2157e-04 - val_loss: 3.8953e-04\n", "Epoch 129/300\n", "1000/1000 [==============================] - 177s 177ms/step - loss: 5.2843e-04 - val_loss: 4.2736e-04\n", "Epoch 130/300\n", "1000/1000 [==============================] - 176s 176ms/step - loss: 4.4128e-04 - val_loss: 0.0014\n", "Epoch 131/300\n", "1000/1000 [==============================] - 163s 163ms/step - loss: 5.2436e-04 - val_loss: 5.7519e-04\n", "Epoch 132/300\n", "1000/1000 [==============================] - 175s 175ms/step - loss: 5.6517e-04 - val_loss: 1.8978e-04\n", "Epoch 133/300\n", "1000/1000 [==============================] - 170s 170ms/step - loss: 4.7878e-04 - val_loss: 6.9794e-04\n", "Epoch 134/300\n", "1000/1000 [==============================] - 166s 166ms/step - loss: 5.8029e-04 - val_loss: 4.7285e-04\n", "Epoch 135/300\n", "1000/1000 [==============================] - 171s 171ms/step - loss: 7.5999e-04 - val_loss: 5.3144e-04\n", "Epoch 136/300\n", "1000/1000 [==============================] - 172s 172ms/step - loss: 5.2143e-04 - val_loss: 6.2687e-04\n", "Epoch 137/300\n", "1000/1000 [==============================] - 164s 164ms/step - loss: 4.8328e-04 - val_loss: 9.9024e-04\n", "Epoch 138/300\n", "1000/1000 [==============================] - 160s 160ms/step - loss: 5.4472e-04 - val_loss: 2.0566e-04\n", "Epoch 139/300\n", "1000/1000 [==============================] - 168s 168ms/step - loss: 6.5767e-04 - val_loss: 6.4200e-04\n", "Epoch 140/300\n", "1000/1000 [==============================] - 147s 147ms/step - loss: 6.8583e-04 - val_loss: 4.6648e-04\n", "Epoch 141/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 5.3011e-04 - val_loss: 0.0015\n", "Epoch 142/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 5.2353e-04 - val_loss: 5.4978e-04\n", "Epoch 143/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 6.0927e-04 - val_loss: 4.9622e-04\n", "Epoch 144/300\n", "1000/1000 [==============================] - 133s 133ms/step - loss: 4.7233e-04 - val_loss: 8.4693e-04\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 145/300\n", "1000/1000 [==============================] - 167s 167ms/step - loss: 4.2517e-04 - val_loss: 0.0033\n", "Epoch 146/300\n", "1000/1000 [==============================] - 145s 145ms/step - loss: 4.8189e-04 - val_loss: 1.9314e-04\n", "Epoch 147/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 4.7789e-04 - val_loss: 1.2785e-04\n", "Epoch 148/300\n", "1000/1000 [==============================] - 131s 131ms/step - loss: 4.7308e-04 - val_loss: 1.7115e-04\n", "Epoch 149/300\n", "1000/1000 [==============================] - 160s 160ms/step - loss: 5.2389e-04 - val_loss: 2.6525e-04\n", "Epoch 150/300\n", " 2/1000 [..............................] - ETA: 4:43 - loss: 5.1177e-05" ] } ], "source": [ "# 载入最好的模型继续训练一会\n", "model.load_weights('randlen_ctc_best.h5')\n", "\n", "# callbacks = [EarlyStopping(patience=5),\n", "# CSVLogger('ctc.csv', append=True), ModelCheckpoint('ctc_best.h5', save_best_only=True)]\n", "callbacks = [CSVLogger('ctc.csv', append=True), ModelCheckpoint('randlen_ctc_best.h5', save_best_only=True)]\n", "\n", "model.compile(loss={'ctc': lambda y_true, y_pred: y_pred}, optimizer=Adam(1e-4, amsgrad=True))\n", "model.fit_generator(train_data, epochs=300, validation_data=valid_data, workers=4, use_multiprocessing=True,\n", " callbacks=callbacks)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "ename": "NameError", "evalue": "name 'data' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload_weights\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'ctc_best.h5'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mNameError\u001b[0m: name 'data' is not defined" ] } ], "source": [ "model.load_weights('ctc_best.h5')\n", "# len(data)" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1000 2\n" ] } ], "source": [ "# 测试模型\n", "characters2 = characters + ' '\n", "# import time\n", "# i = 0\n", "# t1 = time.time()\n", "# pos = neg = 0\n", "# data = CaptchaSequence(characters, batch_size=1, steps=1001)\n", "# while i < 1000: \n", "# [X_test, y_test, _, _], _ = data[i]\n", "# # X_test = data\n", "\n", "# y_pred = base_model.predict(X_test)\n", "# # print(y_pred.shape)\n", "# out = K.get_value(K.ctc_decode(y_pred, input_length=np.ones(y_pred.shape[0])*y_pred.shape[1])[0][0])[:, :4]\n", "# # print(out.shape)\n", "# out = ''.join([characters[x] for x in out[0]])\n", "# y_true = ''.join([characters[x] for x in y_test[0] if x < len(characters)])\n", "# if out != y_true:\n", "# print('pred:' + str(out) + '\\ntrue: ' + str(y_true))\n", "# neg += 1\n", "# else:\n", "# pos += 1 \n", "# i += 1\n", "# t2 = time.time()\n", "# print('总耗时:',t2-t1)\n", "print(pos,neg)\n", "# plt.imshow(X_test[0])\n", "# plt.title('pred:' + str(out) + '\\ntrue: ' + str(y_true))\n", "\n", "argmax = np.argmax(y_pred, axis=2)[0]\n", "# list(zip(argmax, ''.join([characters2[x] for x in argmax])))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "evaluate(base_model,batch_size=100, steps=1000)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAusAAAH0CAYAAACEkWPuAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3XmYXFWd//HPqeolnU5naZKQFcIaQBBIyAAGUVkcBFFBBxCGxdEZ/YGjIDPqgwtBmZFxHFFE3NnMIIwoIMgmkgAhCiTskrAHspKls3R676rz+6Oqu+6turWltnO73q/nydNVt6pv3+6qdH/u937POcZaKwAAAADuidT6AAAAAAAEI6wDAAAAjiKsAwAAAI4irAMAAACOIqwDAAAAjiKsAwAAAI4irAMAAACOIqwDAAAAjiKsAwAAAI4irAMAAACOIqwDAAAAjiKsAwAAAI4irAMAAACOIqwDAAAAjiKsAwAAAI4irAMAAACOaqj1AVSTMeZNSWMlrarxoQAAAGBkmyVph7V2r1J2UldhXdLYlpaW9gMPPLC91gcCAACAkWvFihXq6ekpeT/1FtZXHXjgge3Lly+v9XEAAABgBJs7d66efvrpVaXuh551AAAAwFGEdQAAAMBRhHUAAADAUYR1AAAAwFGEdQAAAMBRhHUAAADAUYR1AAAAwFH1Ns86AACoI/F4XB0dHers7FRfX5+stbU+JISQMUbNzc1qa2tTe3u7IpHq1bsJ6wAAYESKx+NavXq1uru7a30oCDlrrXp7e9Xb26uuri7NnDmzaoGdsA4AAEakjo4OdXd3q6GhQVOmTFFra2tVK6IYOeLxuLq6urRhwwZ1d3ero6NDEydOrMrX5h0LAABGpM7OTknSlClT1NbWRlDHLotEImpra9OUKVMkpd5bVfnaVftKAAAAVdTX1ydJam1trfGRYKQYei8NvbeqgbAOAABGpKHBpFTUUS7GGEmq6kBl3r0AAABAAYbCejUR1gEAAABHEdZ3BXO0AgAAoAoI68W65xLpe/tLL9xe6yMBAAAoyKpVq2SM0QUXXFDrQ0GRCOvF6HhTWna91LVReuz7tT4aAAAAjHCE9WLsWJe63dNRu+MAAABAXSCsF6NrU+r2AEsXAwAAoLII68Xo3py6PdBTu+MAAAAog/Xr1+uiiy7SrFmz1NTUpEmTJun000/X8uXLM57b39+va665RnPmzNGECRM0evRozZo1Sx/96Ef10EMP+Z772GOP6dRTT9WMGTPU3NysKVOm6KijjtIVV1xRrW9txGio9QGESpcnrMf6pdigFOVHCAAAwufNN9/UMccco3Xr1um4447TJz/5Sa1evVq//e1v9cc//lG/+93v9OEPf3j4+RdccIF+85vf6OCDD9Z5552nlpYWrVu3TkuWLNH999+vE044QZJ0//3365RTTtHYsWP1kY98RNOnT1dHR4dWrFih6667TpdffnmtvuVQImkWw9sGIyVaYaJja3MsAAAAJfjc5z6ndevW6corr9TXvva14e0XXnihjj32WJ1//vl66623NGbMGG3fvl233nqr5s6dqyeeeELRaNS3ry1btgzf/sUvfqF4PK7Fixfr0EMP9T1v8+bNQnEI68XoSnuDDfRIowjrAACE0ayv/rHWh1CwVVedUtb9rVmzRg8++KD22GMPffnLX/Y99p73vEef/OQntXDhQv3+97/XeeedJ2OMrLVqbm5WJJLZRb3bbrtlbGtpacnYNnHixPJ9E3WCnvViZIR1BpkCAIDweeaZZyRJ733ve9XY2Jjx+HHHHed73tixY3Xqqadq6dKlOuyww/Stb31LixYtUnd3ZhY655xzJElHHnmkPve5z+m2227TmjVrKvWtjHiE9WJ0E9YBAED4bd++XZI0derUwMeHtm/btm1422233abLL79cPT09uvzyy3Xcccdpt91207nnnqt33nln+Hmnn3667rnnHh1++OG6/vrrddZZZ2nmzJk64ogj9Kc//amC39XIRBtMMTJ61pkRBgCAsCp3a0mYjBs3TpK0YcOGwMfXr1/ve56UaGtZsGCBFixYoNWrV+vRRx/VjTfeqIULF2rVqlV67LHHhp97yimn6JRTTlFXV5eeeOIJ3XPPPfrJT36iD3/4w3rmmWd00EEHVfC7G1nqu7L+1lLp5o9JT/4i/3PjMak7bSEkKusAACCEDj/8cEnSkiVLNDg4mPH4okWLJElz5swJ/PyZM2fqnHPO0QMPPKB9991XS5Ys8Q0yHdLa2qrjjjtO3//+93XZZZepv79f9913Xxm/k5GvvsP6g1+X3lgk3f/VzH70dN0dkqx/G5V1AAAQQjNmzNCJJ56oVatW6Qc/+IHvsSeeeEK33HKLJkyYoNNO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\n", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 250, "width": 373 }, "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import pandas as pd\n", "\n", "df = pd.read_csv('ctc.csv')\n", "df[['loss', 'val_loss']].plot()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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XCIiIqKui6U75RhyZP5tJ3wfaN6Wmfxq4szij2EN9MefB9R/1n7ZEphKd9Is3SEiIiLqqhjol6r/Z4DuffJv7zscuORh94/Ta1BmkO3OtQCEqXVmRYyq3GV23SEiIiLqsli6U4ru/YCxZ3r3eOf8Bjj4VODc3wL14715TFPpDgN9IiIioq6KGf1S9BsJnHajd483+qTMj5dMpTus0SciIiLqqpjRjxs1oy+Z0SciIiLqqhjox4xQA33W6BMRERF1WQz040YJ9AUz+kRERBRho0aNwqhRo8r62/nz50MIgdmzZ3u6TnHCQD9mRDLXdUdwMC4RERFRl8VAP244YRYRERERgYF+7AiW7hARERERGOjHjkgogT4z+kRERFSm1157DUIInH/++Y7LjBs3DtXV1WhsbERraytuv/12nHHGGRg5ciSqq6tRV1eHU089Fc8++2yAaw589NFHmDFjBoYOHYpu3bphyJAhmDFjBj766KO8ZZuamvDjH/8Yhx56KHr37o3a2locdNBBuOiii7BkyRLTsn//+99xyimn4IADDkB1dTWGDBmCE088EXfccUdQ/1pJ2Ec/ZpjRJyIiIi8cc8wxGDNmDJ555hls374d/fv3N93/xhtvYMWKFfjSl76Euro6bN68Gd/+9rdx3HHH4bTTTsPAgQOxadMmPPXUUzjjjDNw991344orrvB9vRcvXoxTTz0VTU1NOOecczB+/HisWLECDz74IJ588km88MILmDJlCgBASonTTz8dixYtwrHHHosrrrgCyWQS69evx7x58/C5z30OkyZNAgDcdddd+PrXv47Bgwfj7LPPxoABA7Blyxa8++67uPfee3HVVVf5/r+VioF+zKgZfYOBPhEREVXg8ssvx3XXXYeHH34Y//7v/2667/777+9cBgD69euHNWvWYNiwYabldu3ahalTp+L73/8+pk+fjpqaGt/WV0qJGTNmYPfu3XjwwQcxffr0zvseffRRXHzxxbjsssvwwQcfwDAMvPfee1i0aBHOO+88PP7446bHSqfT2LVrV+f1O++8E926dcM777yDQYMGmZbdtm2bb/9TJRjox4xIqF13WLpDREQe2bcD6N4XECLsNYmG2X3CXgP3Zu8qvoyDyy67DD/84Q9x//33mwL91tZWPPLIIxg0aBC++MUvAgCqq6vzgnwA6NOnD/7lX/4Fs2bN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\n", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 250, "width": 381 }, "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "df[['loss', 'val_loss']].plot(logy=True)" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [], "source": [ "# df['val_acc'].plot()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.0" } }, "nbformat": 4, "nbformat_minor": 2 }