1
我正在與Keras庫一起進行驗證碼識別項目。對於訓練集,我使用以下函數生成至多5位數驗證碼。如何重塑顏色通道的numpy圖像陣列
def genData(n=1000, max_digs=5, width=60):
capgen = ImageCaptcha()
data = []
target = []
for i in range(n):
x = np.random.randint(0, 10 ** max_digs)
img = misc.imread(capgen.generate(str(x)))
img = np.mean(img, axis=2)[:, :width]
data.append(img.flatten())
target.append(x)
return np.array(data), np.array(target)
然後,我正在嘗試重塑下面的訓練數據數組;
train_data = train_data.reshape(train_data.shape[0], 60, 60, 3)
我想我的驗證碼有3個顏色通道。但是,當我試圖重塑我所面臨的培訓數據時,出現以下錯誤;
ValueError: cannot reshape array of size 3600000 into shape (1000,60,60,3)
注:如果我嘗試用1而不是3的錯誤沒有發生,但我的精度甚至不是取平均接近1%
非常感謝您的建議。我沒有意識到採取的意思是將深度降低到1.我將繼續使用相同的結構,但我還有一個問題。我正在創建具有不同長度的驗證碼,因此每個圖像的大小都不相同。我是否需要分別爲每個長度訓練我的模型? @Wilmar – cano
沒有那會花費很多時間和精力。調整captha的大小以使它們大小相同更好。但是,你正在做的是減少寬度。最好通過增加零或任何值來增加驗證碼的寬度。比你不會丟失信息 –