ziyaxuanyi

Results 16 comments of ziyaxuanyi

这个模型训练出来,有多大啊

> > 这个模型训练出来,有多大啊 > > 103M 请问您也在做数学公式识别吗?有没有什么好的方案或者开源工程推荐呢?

for viterbi_search, I can get the right result by using this code: seq, path = viterbi_search(posteriors, alphabet) scores = [posteriors[path[i]][dict[seq[i]]] for i in range(len(path))] where dict can convert text-label into...

> 我说怎么V3版本的CRNN精度不如V2版本的,原来是head这里默认去掉了中间全连接层啊!!! 我训练也是V3版本不如V2,但也不一定是这个问题,V3版本我调整一些参数是基本能训练到精度和V2差不多的。 V3版本整个模型的输出是比V2版本的输出特征维度少一半的,也可能是这个原因,我正在做实验验证

> v3的核心点是svtr,由于neck部分使用了svtr结构,导致模型有所增大,为了保证整体模型不太大,所以去掉了mid_channels,你也可以试一下加上的效果 注意到相同的图片尺寸输入,V3版本是比V2版本要少一半特征,比如 32x96 尺度,V2版本最终输出结果是 (24x字典字符个数),而V3版本最终输出是(12x字典字符个数)。这是因为网络主干的backbone中加了参数 last_conv_stride:[1,2] 造成的吗?我看V2版本使用了默认的last_conv_stride:1 这样做也是为了保证模型不太大吗,感觉精度会有一定程度损失,最起码我输出的ctc解码定位的单个字符位置精度是不如V2版本的。

> > > v3的核心点是svtr,由于neck部分使用了svtr结构,导致模型有所增大,为了保证整体模型不太大,所以去掉了mid_channels,你也可以试一下加上的效果 > > > > > > 注意到相同的图片尺寸输入,V3版本是比V2版本要少一半特征,比如 32x96 尺度,V2版本最终输出结果是 (24x字典字符个数),而V3版本最终输出是(12x字典字符个数)。这是因为网络主干的backbone中加了参数 last_conv_stride:[1,2] 造成的吗?我看V2版本使用了默认的last_conv_stride:1 > > 这样做也是为了保证模型不太大吗,感觉精度会有一定程度损失,最起码我输出的ctc解码定位的单个字符位置精度是不如V2版本的。 > > 是的,都是为了保证模型不太大,如果对模型大小没要求,也可以修改这些参数试试效果 那V2版本在backbone网络之后使用的是默认maxpool最大池化,而V3版本在backbone之后则改为使用avgpool平均池化,这么做的理由是什么?两种池化策略有什么区别或者优劣吗?

哦,我看错,那FAQ对代码的解释是对的。 我想实现的功能是这样的,在训练的每个iter也就是一次前向反向传播用到的batch_size的数据,按照比例从不同的数据源采样而来。 比如说batch_size是256,有两个数据源,ratio_list为0.1:0.9,那一个iter迭代中的batch_size256的数据中有10%采样来自于数据源1,而90%采样来自于数据源2。 这种需求主要是这种场景,比方说我之前用的总数据量有2千万来训练模型,后来发现模型对某一个场景类型数据识别不好,就增加了一些这种场景数据比如50万,这样我可以把新增加的数据加到原本的2千万总数据当中,但这样效果不是很明显,因为相对于总数据量来说新增数据比较少,也可以采用微调,但会影响原来对其他数据的识别效果,模型训练会遗忘见过次数很少的数据。 而采用我说的方法,这样在一个iter的迭代训练中,能够保证模型学习覆盖到每个数据源,这样对于要针对性优化识别不好场景,效果会不会好点。 官方能实现这种功能,或者怎么修改代码吗?

debug了一下,应当这样改: neck部分应该修改成这样: Architecture: model_type: rec algorithm: SVTR Transform: Backbone: name: MobileNetV1Enhance scale: 0.5 last_conv_stride: [1, 2] last_pool_type: avg Neck: name: SequenceEncoder encoder_type: svtr dims: 64 depth: 2 hidden_dims: 120 use_guide:...

> @ziyaxuanyi 请问题主去掉GTC重新训练后,效果超过V2了嘛? 去掉GTC后,精度会提升到和V2差不多水平,但还是稍稍不如V2