当前位置:   article > 正文

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

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
  • 1
  • 2
  • 3
%cd /content/drive/MyDrive/CRNN-v1
!python src/train.py
  • 1
  • 2

笔记

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所在的路径
  • 1
  • 2

训练loss出现为nan

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/362587
推荐阅读
相关标签
  

闽ICP备14008679号