lumina37 / rotate-captcha-crack

CNN预测图片旋转角✨可用于破解旋转验证码
The Unlicense
297 stars 85 forks source link

'train_RotNetR.py'报错ZeroDivisionError: float division by zero #17

Closed Edmounds closed 1 year ago

Edmounds commented 1 year ago

<2023-06-06 22:31:01.163> [DEBUG] Epoch#0. Training process. 12%|████████████▋ | 15/128 [11:47<1:28:51, 47.18s/it] <2023-06-06 22:42:48.841> [DEBUG] Epoch#0. Validating process. 0it [00:00, ?it/s] Traceback (most recent call last): File "/home/cqc/baiducheck/rotate-captcha-crack/train_RotNetR.py", line 71, in <module> trainer.train() File "/home/cqc/baiducheck/rotate-captcha-crack/rotate_captcha_crack/trainer.py", line 209, in train val_loss = total_val_loss / eval_batch_count ZeroDivisionError: float division by zero

看了一下其他issue有可能是数据集的问题,但是我爬了900多张百度的验证图a。搞不懂。

Edmounds commented 1 year ago

应该是验证数据集的问题。是因为我没有创建验证数据集吗?我如何导入验证数据集呢?

lumina37 commented 1 year ago

900张不够塞牙缝的,大概率会过拟合 如果一定要训练的话可以把这两行的0.98调小第一点,让验证集大一点 https://github.com/Starry-OvO/rotate-captcha-crack/blob/5db1a3d04e9945654d45a0594c7aa6b226ce38bd/train_RotNetR.py#L30-L32 当验证集中的图片张数不足一个batch_size时就会导致用于验证的batch数量为0进而导致除0错误

Edmounds commented 1 year ago

意思是我要带上google 那个数据集一起吗(和百度安全验证图片放一个数据集下?)?问一下这个是基于Rotnet的二次训练吗?

Edmounds commented 1 year ago

意思是我要带上google 那个数据集一起吗(和百度安全验证图片放一个数据集下?)?问一下这个是基于Rotnet的二次训练吗?

话说验证集是自行导入还是自动生成的?

n0099 commented 1 year ago

https://github.com/Tang1705/Baidu-Rot-Validate/issues/4

Edmounds commented 1 year ago

Tang1705/Baidu-Rot-Validate#4

这都找到了,后面还是用scrapy+playwright了

Edmounds commented 1 year ago

已解决

lumina37 commented 1 year ago

虽然是自监督学习但还是得有图片素材,所以不是自动生成的。你可以用google街景因为这个数据集不至于那么大 不需要和验证码放一起,你可以将验证码作为测试集 这是改过backbone的RotNet,不是二次训练

Edmounds commented 1 year ago

测试集

十分感谢!