欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用TensorFlow 2識(shí)別驗(yàn)證碼過(guò)程中踩過(guò)的坑

Tensorflowers ? 來(lái)源:TensorFlow ? 作者:TensorFlow ? 2020-10-22 16:47 ? 次閱讀

在學(xué)習(xí)了 CNN 之后,我一直想去做一個(gè)驗(yàn)證碼識(shí)別。網(wǎng)上找了很多資料,雜七雜八的一大堆,但是好多是 tf1 寫的。我對(duì) tf1 不太熟悉,于是自己開始了基于 TensorFlow 2 的摸索實(shí)踐。

摸索的過(guò)程異常艱難,一開始我直接用 captcha 生成了 10080 張驗(yàn)證碼去識(shí)別,發(fā)現(xiàn) loss 一直停留在 2.3 左右,accuracy 一直是 0.1 左右,訓(xùn)練了 100 回合,也沒(méi)什么提升,電腦都快要跑廢了,咋辦呀?于是網(wǎng)上各種問(wèn)大佬,找到機(jī)會(huì)就提問(wèn),其中一位大佬的回答讓我受到了啟發(fā),他說(shuō):你可以先識(shí)別 1 位,然后 2 位,3 位,最后 4 位,一步一步來(lái)……。

本文主要描述我在驗(yàn)證碼識(shí)別過(guò)程中的一些摸索,整理出來(lái)以供大家參考:

第一回:搭建網(wǎng)絡(luò)結(jié)構(gòu)

首先我們需要搭建網(wǎng)絡(luò)結(jié)構(gòu),如下:

model=tf.keras.models.Sequential([ tf.keras.Input(shape=(H, W, C)), layers.Conv2D(32, 3, activation='relu'), layers.MaxPooling2D((2, 2)), layers.Conv2D(64, 3, activation='relu'), layers.MaxPooling2D((2, 2)), layers.Conv2D(64, 3, activation='relu'), layers.MaxPooling2D((2, 2)), layers.Conv2D(64, 3, activation='relu'), layers.MaxPooling2D((2, 2)), layers.Conv2D(64, 3, activation='relu'), layers.MaxPooling2D((2, 2)), layers.Flatten(), layers.Dense(1024, activation='relu'), layers.Dense(D * N_LABELS, activation='softmax'), layers.Reshape((D, N_LABELS)), ]) model.compile(optimizer='adam', loss='categorical_crossentropy', metrics= ['accuracy']) callbacks=[ tf.keras.callbacks.TensorBoard(log_dir='logs'), tf.keras.callbacks.ModelCheckpoint(filepath=check_point_path, save_weights_only=True, save_best_only=True) ] history = model.fit(train_gen, steps_per_epoch=len(train_idx)//batch_size, epochs=100, callbacks=callbacks, validation_data=valid_gen, validation_steps=len(valid_idx)//valid_batch_size)

summary:

我的訓(xùn)練數(shù)據(jù)量:train count: 7408, valid count: 3176, test count: 4536

樣本圖:

訓(xùn)練結(jié)果:

Train for 231 steps, validate for 99 steps Epoch 1/100 1/231 […] - ETA: 4:18 - loss: 2.2984 - accuracy: 0.1328 231/231 [==============================] - 143s 618ms/step - loss: 2.3032 - accuracy: 0.0971 - val_loss: 2.3029 - val_accuracy: 0.0987 Epoch 2/100 230/231 [============================>.] - ETA: 0s - loss: 2.3026 - accuracy: 0.1014 231/231 [==============================] - 121s 525ms/step - loss: 2.3026 - accuracy: 0.1013 - val_loss: 2.3031 - val_accuracy: 0.0986 Epoch 3/100 230/231 [============================>.] - ETA: 0s - loss: 2.3026 - accuracy: 0.1029 231/231 [==============================] - 138s 597ms/step - loss: 2.3026 - accuracy: 0.1026 - val_loss: 2.3032 - val_accuracy: 0.0986 Epoch 4/100 230/231 [============================>.] - ETA: 0s - loss: 2.3025 - accuracy: 0.1031 231/231 [==============================] - 124s 537ms/step - loss: 2.3025 - accuracy: 0.1031 - val_loss: 2.3032 - val_accuracy: 0.0987 Epoch 5/100 230/231 [============================>.] - ETA: 0s - loss: 2.3025 - accuracy: 0.1040 231/231 [==============================] - 123s 532ms/step - loss: 2.3025 - accuracy: 0.1039 - val_loss: 2.3032 - val_accuracy: 0.0989 Epoch 6/100 230/231 [============================>.] - ETA: 0s - loss: 2.3025 - accuracy: 0.1039 231/231 [==============================] - 118s 509ms/step - loss: 2.3025 - accuracy: 0.1038 - val_loss: 2.3033 - val_accuracy: 0.0988 … Epoch 20/100 230/231 [============================>.] - ETA: 0s - loss: 2.3025 - accuracy: 0.1038 231/231 [==============================] - 120s 521ms/step - loss: 2.3025 - accuracy: 0.1038 - val_loss: 2.3034 - val_accuracy: 0.0988 Epoch 21/100 190/231 [=======================>…] - ETA: 20s - loss: 2.3025 - accuracy: 0.1032

loss 一直沒(méi)有變化,accuracy 也很低,不知道出現(xiàn)了什么原因,困擾一兩個(gè)星期,都想要放棄了,太難了。但是我不死心,非要把它搞出來(lái),4 位識(shí)別不出來(lái),能不能先識(shí)別一位呢?好,那就開始搞,一位比較簡(jiǎn)單,跟 Mnist 數(shù)據(jù)集很相似,在這我就不贅述了。

第二回:2 位彩色驗(yàn)證碼訓(xùn)練

接著來(lái)識(shí)別 2 位的驗(yàn)證碼。train count: 441, valid count: 189, test count: 270

樣本圖:

下面是我用 2 位驗(yàn)證碼進(jìn)行訓(xùn)練的結(jié)果:

30 張圖片進(jìn)行測(cè)試,結(jié)果:

哎呦,有感覺了,有了起色了,但是出現(xiàn)了過(guò)擬合的現(xiàn)象,解決過(guò)擬合的方法主要有:

Get more training data

Reduce the capacity of the network

Add weight regularization

Add dropout

Data-augmentation

Batch normalization

第三回:增加彩色驗(yàn)證碼數(shù)據(jù)集

于是我就增加了數(shù)據(jù)集。train count: 4410, valid count: 1890, test count: 2700

然后又出現(xiàn)了 loss 一直在 2.3,accuracy 在 0.09 左右,這是什么鬼呢?但是我還是不死心呀,繼續(xù)想辦法呀,既然彩色的有難度,我先識(shí)別黑白的樣本行不行呢,先試試吧。

第四回:2 位黑白驗(yàn)證碼訓(xùn)練

網(wǎng)絡(luò)結(jié)構(gòu)依然采用上面的,input_shape(100,120,3)。

這是我用 2 位的黑白圖片的驗(yàn)證碼進(jìn)行了訓(xùn)練,效果很好,收斂也很快。

訓(xùn)練第 50 回合時(shí):

Epoch 50/50 26/27 [============>…] - ETA: 0s - loss: 0.0150 - accuracy: 0.9940 27/27 [==============] - 8s 289ms/step - loss: 0.0212 - accuracy: 0.9936 - val_loss: 0.2348 - val_accuracy: 0.9446

隨機(jī)選取了 30 張圖片進(jìn)行了測(cè)試,2 張識(shí)別錯(cuò)了:

樣本圖:

看著這結(jié)果,我露出了潔白的大牙,信心大增呀,繼續(xù)搞,直接上 4 位驗(yàn)證碼。

第五回:4 位黑白驗(yàn)證碼訓(xùn)練

依然采用上面的網(wǎng)絡(luò)結(jié)構(gòu),這次使用的是 4 位黑白圖片的驗(yàn)證碼。train count: 2469, valid count: 1059, test count: 1512

訓(xùn)練第 20 回合:

Epoch 20/20 76/77 [====>.] - ETA: 0s - loss: 0.0409 - accuracy: 0.9860 77/77 [======] - 33s 429ms/step - loss: 0.0408 - accuracy: 0.9861 - val_loss: 0.3283 - val_accuracy: 0.9221

隨機(jī)選取 30 張圖片進(jìn)行測(cè)試,8 張錯(cuò)誤:

4 位驗(yàn)證碼的樣本圖:

從結(jié)果來(lái)看,有點(diǎn)過(guò)擬合,沒(méi)關(guān)系,繼續(xù)加大數(shù)據(jù)集。

第六回:增加黑白驗(yàn)證碼數(shù)據(jù)集

依舊采用上面的網(wǎng)絡(luò)結(jié)構(gòu),這次我增加了數(shù)據(jù)集 4939 張,依舊使用的是 4 位黑白的驗(yàn)證碼,訓(xùn)練結(jié)果還是挺好的:train count: 4939, valid count: 2117, test count: 3024

第 20 回合:

Epoch 20/20 153/154 [==>.] - ETA: 0s - loss: 0.0327 - accuracy: 0.9898 154/154 [====] - 75s 488ms/step - loss: 0.0329 - accuracy: 0.9898 - val_loss: 0.1057 - val_accuracy: 0.9740

可以看出 訓(xùn)練集的準(zhǔn)確率 跟驗(yàn)證集上很接近,隨機(jī)選取 30 張圖片進(jìn)行測(cè)試,6 張錯(cuò)誤圖如下:

好了,搞了這么多,由此我覺得是噪點(diǎn)影響了深度學(xué)習(xí)的識(shí)別,maxpool 的時(shí)候連帶著噪點(diǎn)也采樣了,我們需要將噪點(diǎn)處理掉,再喂入神經(jīng)網(wǎng)絡(luò)。

第七回:預(yù)處理

在上面的推理中,我感覺是噪點(diǎn)影響了神經(jīng)網(wǎng)絡(luò)的識(shí)別,于是乎我在送入網(wǎng)絡(luò)之前進(jìn)行了去噪,二值化操作,訓(xùn)練如下:train count: 4939, valid count: 2117, test count: 3024

從圖中可以看出,模型收斂了,但有點(diǎn)過(guò)擬合,第 20 回合訓(xùn)練結(jié)果如下:

Epoch 20/20 153/154 [==>.] - ETA: 0s - loss: 0.0407 - accuracy: 0.9861 154/154 [===] - 69s 450ms/step - loss: 0.0408 - accuracy: 0.9860 - val_loss: 0.3227 - val_accuracy: 0.9244

隨機(jī)選取了 30 張圖片進(jìn)行了測(cè)試,8 張錯(cuò)誤:

做到這里, 我對(duì)之前的推測(cè)有了猜疑:是噪點(diǎn)影響的嗎?我覺得不完全是。核心原因是我在嘗試的過(guò)程中對(duì)驗(yàn)證碼進(jìn)行了處理,從 RGB 的驗(yàn)證碼變成了單通道的黑白驗(yàn)證碼,使得圖片的信息減少了,神經(jīng)網(wǎng)絡(luò)的計(jì)算量也大大減少了,網(wǎng)絡(luò)模型很快得到了收斂,loss 顯著減少,accuracy 在不斷提高。

整個(gè)過(guò)程是使用 CPU 進(jìn)行訓(xùn)練的,電腦配置是 Intel_Corei7-6700HQ_CPU@_2.60GHz,8G 內(nèi)存。如果大家的電腦配置高,用 GPU 進(jìn)行訓(xùn)練,我覺得即使不做預(yù)處理,效果也能出來(lái)。


責(zé)任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • cnn
    cnn
    +關(guān)注

    關(guān)注

    3

    文章

    353

    瀏覽量

    22354
  • tensorflow
    +關(guān)注

    關(guān)注

    13

    文章

    329

    瀏覽量

    60637
  • 驗(yàn)證碼
    +關(guān)注

    關(guān)注

    2

    文章

    20

    瀏覽量

    4740

原文標(biāo)題:經(jīng)驗(yàn)總結(jié):使用 TensorFlow 2 識(shí)別驗(yàn)證碼過(guò)程中踩過(guò)的坑

文章出處:【微信號(hào):tensorflowers,微信公眾號(hào):Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    不管是LTC6912還是AFE5801通過(guò)SPI總線對(duì)reg進(jìn)行寫的時(shí)候,在寫的過(guò)程中,AFE5801還在工作狀態(tài)嗎?

    不管是LTC6912還是AFE5801通過(guò)SPI總線對(duì)reg進(jìn)行寫的時(shí)候,在寫的過(guò)程中,AFE5801還在工作狀態(tài)嗎?被寫的這個(gè)reg里的值是保持在上一時(shí)刻寫入的數(shù)據(jù)還是不定態(tài)?現(xiàn)在采用Static PGA模式寫TVG曲線,需要每隔一段時(shí)間更新增益值。在寫的
    發(fā)表于 02-11 07:24

    手機(jī)喇叭氣密性檢測(cè)儀選購(gòu)攻略,避免!

    在智能手機(jī)的生產(chǎn)過(guò)程中,手機(jī)喇叭作為其重要的發(fā)聲部件,其氣密性直接影響著手機(jī)的音質(zhì)和耐用性。為了確保產(chǎn)品質(zhì)量,企業(yè)需要采用氣密性檢測(cè)儀對(duì)手機(jī)喇叭進(jìn)行檢測(cè)。然而,市場(chǎng)上氣密性檢測(cè)儀品牌眾多,價(jià)格
    的頭像 發(fā)表于 02-05 17:04 ?92次閱讀
    手機(jī)喇叭氣密性檢測(cè)儀選購(gòu)攻略,避免<b class='flag-5'>踩</b><b class='flag-5'>坑</b>!

    ADC高速采樣電路設(shè)計(jì)詳解之STM32

    一、過(guò)程 最近用STM32F334做數(shù)字電源,用到了高速ADC采集電壓電流。設(shè)計(jì)的參考電壓VREF為3.3V,輸入信號(hào)經(jīng)運(yùn)放跟隨后直接接入單片機(jī)的采樣通道。一開始測(cè)試一切正常,但隨著輸入信號(hào)
    的頭像 發(fā)表于 12-02 09:27 ?1271次閱讀
    ADC高速采樣電路設(shè)計(jì)詳解之STM32<b class='flag-5'>踩</b><b class='flag-5'>坑</b>

    工業(yè)視覺在條碼/二維識(shí)別領(lǐng)域的應(yīng)用

    。以下是工業(yè)視覺在條碼/二維識(shí)別領(lǐng)域的具體應(yīng)用實(shí)例:質(zhì)量追溯和召回過(guò)程簡(jiǎn)化:條形碼常用于產(chǎn)品外包裝應(yīng)用跟蹤,使召回的產(chǎn)品能夠盡快被識(shí)別,簡(jiǎn)化召回的
    的頭像 發(fā)表于 11-18 16:28 ?324次閱讀
    工業(yè)視覺在條碼/二維<b class='flag-5'>碼</b><b class='flag-5'>識(shí)別</b>領(lǐng)域的應(yīng)用

    在學(xué)習(xí)go語(yǔ)言的過(guò)程過(guò)

    作為一個(gè)5年的phper,這兩年公司和個(gè)人都在順應(yīng)技術(shù)趨勢(shì),新項(xiàng)目慢慢從php轉(zhuǎn)向了go語(yǔ)言,從2021年到現(xiàn)在,筆者手上也先后開發(fā)了兩個(gè)go項(xiàng)目。在學(xué)習(xí)go語(yǔ)言的過(guò)程中也學(xué)習(xí)并總結(jié)了一些相關(guān)的東西,這篇文章就分享下自己過(guò)的一
    的頭像 發(fā)表于 11-11 09:22 ?206次閱讀

    物聯(lián)網(wǎng)產(chǎn)品在生產(chǎn)測(cè)試過(guò)程中快速讀取貼片SIM卡號(hào)的方案

    一、物聯(lián)網(wǎng)行業(yè)存在的問(wèn)題 蜂窩通信模組相關(guān)的開發(fā)項(xiàng)目過(guò)程中,經(jīng)常使用到2mm*2mm, 5mm*6mm物聯(lián)網(wǎng)貼片卡,由于貼片卡無(wú)法向普通插拔卡那樣, 將卡號(hào)打印在卡板上
    的頭像 發(fā)表于 09-23 16:14 ?432次閱讀
    物聯(lián)網(wǎng)產(chǎn)品在生產(chǎn)測(cè)試<b class='flag-5'>過(guò)程中</b>快速讀取貼片SIM卡號(hào)的方案

    康謀分享 | 在基于場(chǎng)景的AD/ADAS驗(yàn)證過(guò)程中,識(shí)別挑戰(zhàn)性場(chǎng)景!

    基于場(chǎng)景的驗(yàn)證是AD/ADAS系統(tǒng)開發(fā)過(guò)程中的重要步驟,然而面對(duì)海量駕駛記錄數(shù)據(jù)時(shí),如何實(shí)現(xiàn)自動(dòng)且高效地識(shí)別、分類和提取駕駛記錄的挑戰(zhàn)性場(chǎng)景?本文康謀為您介紹IVEX軟件
    的頭像 發(fā)表于 08-28 10:16 ?1168次閱讀
    康謀分享 | 在基于場(chǎng)景的AD/ADAS<b class='flag-5'>驗(yàn)證</b><b class='flag-5'>過(guò)程中</b>,<b class='flag-5'>識(shí)別</b>挑戰(zhàn)性場(chǎng)景!

    請(qǐng)問(wèn)AFE032使用過(guò)程中過(guò)沖和振鈴問(wèn)題怎么解決?

    在使用AFE032發(fā)送信號(hào)的過(guò)程中,發(fā)現(xiàn)在配置TX_PGA以及PA的寄存器時(shí),均會(huì)產(chǎn)生一個(gè)過(guò)沖。我們使用并沒(méi)有使用AFE032的內(nèi)部DAC,但是斷開DAC以及AFE032的后級(jí)電路,開關(guān)TX_PGA以及PA均會(huì)產(chǎn)生過(guò)沖,請(qǐng)問(wèn)是器件本身的問(wèn)題還是寄存器配置的問(wèn)題呢? AF
    發(fā)表于 08-08 06:08

    如何在Tensorflow實(shí)現(xiàn)反卷積

    TensorFlow實(shí)現(xiàn)反卷積(也稱為轉(zhuǎn)置卷積或分?jǐn)?shù)步長(zhǎng)卷積)是一個(gè)涉及多個(gè)概念和步驟的過(guò)程。反卷積在深度學(xué)習(xí)領(lǐng)域,特別是在圖像分割、圖像超分辨率、以及生成模型(如生成對(duì)抗網(wǎng)絡(luò)GANs)等任務(wù)
    的頭像 發(fā)表于 07-14 10:46 ?719次閱讀

    電容充放電過(guò)程中電壓的變化規(guī)律

    電容充放電過(guò)程中電壓的變化規(guī)律是一個(gè)非常重要的電子學(xué)課題,涉及到電容器的基本工作原理和特性。在這篇文章,我們將詳細(xì)探討電容充放電過(guò)程中電壓的變化規(guī)律,包括電容的基本特性、充電過(guò)程、放
    的頭像 發(fā)表于 07-11 09:43 ?6932次閱讀

    M16連接器12芯采購(gòu)如何避免

      德索工程師說(shuō)道在M16連接器12芯的采購(gòu)過(guò)程中,為了避免,確保采購(gòu)的順利進(jìn)行以及產(chǎn)品的高質(zhì)量,我們可以從以下幾個(gè)方面進(jìn)行考慮和規(guī)劃:
    的頭像 發(fā)表于 06-07 17:46 ?842次閱讀
    M16連接器12芯采購(gòu)如何避免<b class='flag-5'>踩</b><b class='flag-5'>坑</b>

    家庭路由器如何選?實(shí)用技巧讓你不再!

    家庭路由器選購(gòu)需考慮需求、預(yù)算、性能指標(biāo)、硬件配置、軟件功能、認(rèn)證與測(cè)試及售后服務(wù)。明確需求,選擇適合的型號(hào)和品牌,確保網(wǎng)絡(luò)穩(wěn)定、高速。遵循這些技巧,避免,享受網(wǎng)絡(luò)便利。
    的頭像 發(fā)表于 04-29 11:38 ?865次閱讀

    痛苦“電池電壓偵測(cè)電路”,含淚總結(jié)設(shè)計(jì)要點(diǎn)

    和大家分享這個(gè)電路的設(shè)計(jì)要點(diǎn),以及當(dāng)時(shí)的設(shè)計(jì)失誤,幫助大家積累經(jīng)驗(yàn),以后不要這種。 設(shè)計(jì)要點(diǎn)一:設(shè)定分壓電阻的大小 這種便攜式掌上閱讀器,當(dāng)然是內(nèi)置鋰電池的:
    的頭像 發(fā)表于 04-07 14:31 ?4057次閱讀
    痛苦<b class='flag-5'>踩</b><b class='flag-5'>坑</b>“電池電壓偵測(cè)電路”,含淚總結(jié)設(shè)計(jì)要點(diǎn)

    工業(yè)制造行業(yè)的DPM識(shí)讀要如何選擇固定讀器?

    在工業(yè)制造行業(yè),DPM是一種常見的標(biāo)識(shí)方式,它是將信息直接標(biāo)記在產(chǎn)品表面上,以便在生產(chǎn)過(guò)程中進(jìn)行追蹤和識(shí)別。不言而喻,在如今的產(chǎn)品質(zhì)量追溯管理應(yīng)用上,需要對(duì)多種復(fù)雜條碼進(jìn)行
    的頭像 發(fā)表于 03-06 13:52 ?725次閱讀
    工業(yè)制造行業(yè)<b class='flag-5'>中</b>的DPM<b class='flag-5'>碼</b>識(shí)讀要如何選擇固定讀<b class='flag-5'>碼</b>器?

    高低溫試驗(yàn)箱選購(gòu)指南—防秘籍

    選購(gòu)高低溫試驗(yàn)箱需要綜合考慮多方面因素。通過(guò)明確需求、選擇知名品牌、對(duì)比性能指標(biāo)、權(quán)衡價(jià)格與性價(jià)比、保障售后服務(wù)以及參考用戶評(píng)價(jià)與案例等步驟,可以幫助您避免風(fēng)險(xiǎn),選購(gòu)到一款性價(jià)比高、適合自己需求的高低溫試驗(yàn)箱。
    的頭像 發(fā)表于 02-24 09:22 ?645次閱讀
    高低溫試驗(yàn)箱選購(gòu)指南—防<b class='flag-5'>踩</b><b class='flag-5'>坑</b>秘籍