Colab上跑CRNN代码,以及问题解决。

项目原始结构

在这里插入图片描述

代码

运行前提 data_my中用空的images文件夹,无txt文件

%cd /content/drive/MyDrive/CRNN-v1
# 在运行该文件时,必须采用绝对路径来执行,因为该文件中os.path.dirname(__file__) 采用相对路径的话会输出空字符串
!python /content/drive/MyDrive/CRNN-v1/src/new_utils.py
%cd /content/drive/MyDrive/CRNN-v1
!python src/train.py

笔记

python中的os.path.dirname与os.path.dirname(file)的用法

出现的坑

No module named ‘src’

解决方法:
import src. 语句前增加

import sys
sys.path.append("/content/drive/MyDrive/CRNN-v1")   就是src所在的路径

训练loss出现为nan

训练网络loss出现Nan解决办法
自己的解决方法就是降低batch,我们将训练batch从32降到12时,前两个batch都是有loss的,之后就没有了。我们继续降batch。

在这里插入图片描述
在colab把训练batch降到了4还是不行,可能是因为梯度爆炸。
在这里插入图片描述
后来发现方向不对,于是在输出loss出打断点。loss也没什么问题。
ctc要求解码长度必须小于等于原始输入长度,然后发现没什么问题。
问题应该就出在数据的问题上。
然后一步一步断点问题排除,知道了问题所在,原因是因为目标字符长度为24(CTC解码长度也为24)所导致,至于为什么现在还不清楚。
然后排查数据中,label标签长度大于等于24的数据,只有两个,然后全部剔除掉。就可以正常训练了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值