1 回答

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊
我發(fā)現(xiàn)你的問(wèn)題非常有趣,因?yàn)槟阒惶峁┝司€索。所以這是我的調(diào)查。
使用您的代碼片段,我在 YouTube 上找到了GitHub 存儲(chǔ)庫(kù)和 3 部分視頻教程,主要關(guān)注在 Python 中使用生成器函數(shù)的好處。數(shù)據(jù)基于這個(gè) kaggle(我建議檢查該問(wèn)題的不同內(nèi)核,以將您已經(jīng)嘗試過(guò)的方法與另一個(gè) CNN 網(wǎng)絡(luò)進(jìn)行比較,并查看正在使用的 API)。
您不需要從頭開(kāi)始編寫數(shù)據(jù)生成器,雖然這并不難,但是發(fā)明輪子效率不高。
Keras 有ImageDataGenerator類。
此外,這里還有一個(gè)更通用的DataGenerator示例。
Tensorflow 提供了非常簡(jiǎn)潔的管道及其
tf.data.Dataset
.
盡管如此,為了解決 kaggle 的任務(wù),該模型只需要感知單個(gè)圖像,因此該模型是一個(gè)簡(jiǎn)單的深度 CNN。但據(jù)我了解,您將 8 個(gè)隨機(jī)字符(類別)組合到一張圖像中以一次識(shí)別多個(gè)類別。對(duì)于該任務(wù),您需要 R-CNN 或 YOLO 作為模型。我最近剛剛為自己打開(kāi)了YOLO v4,可以讓它非??焖俚赜糜谔囟ㄈ蝿?wù)。
關(guān)于您的設(shè)計(jì)和代碼的一般建議。
確保庫(kù)使用 GPU。它節(jié)省了很多時(shí)間。(盡管我在 CPU 上非常快地重復(fù)了存儲(chǔ)庫(kù)中的花實(shí)驗(yàn)——大約 10 分鐘,但結(jié)果預(yù)測(cè)并不比隨機(jī)猜測(cè)好多少。所以完整的訓(xùn)練需要大量的 CPU 時(shí)間。)
比較不同的版本以找到瓶頸。嘗試包含 48 張圖像(每個(gè)類 1 張)的數(shù)據(jù)集,增加每個(gè)類的圖像數(shù)量,然后進(jìn)行比較??s小圖像尺寸,改變模型結(jié)構(gòu)等。
在小的人工數(shù)據(jù)上測(cè)試全新模型以證明想法或使用迭代過(guò)程,從可以轉(zhuǎn)換為您的任務(wù)(手寫識(shí)別?)的項(xiàng)目開(kāi)始。
添加回答
舉報(bào)