CNN
LS_learner
业精于勤,荒于嬉;
行成于思,毁于随。
展开
-
每次迭代,loss的波动很大的解决办法
每次迭代,loss的波动很大,有如下几方面:(1)学习率选取较大;(2)在loss不再下降的时候降低学习率;(3)每个epoch训练之前,对数据进行重新打乱,如果你的 batch 的内容和顺序都是固定的,可能造成模型 overfit 这个顺序;(4)各个 batch 的 loss 有不同是正常的,但如果波动太大,可能说明你的各个 batch 不是 homogeneous 的(即内容差别太大),不能代表整体数据。可以试试加大 batch size。总结就是:当loss不下降时,降低学习率,一般降低原创 2021-03-09 20:07:09 · 22493 阅读 · 0 评论 -
深度学习存在的瓶颈
深度神经网络目前的瓶颈:1、 需要大量标注数据2、 过度拟合基准数据3、 对图像变化过度敏感问题:1、怎样在有限的数据集里训练,才能让AI在复杂的真实世界里也有很好的表现?2、怎样在有限的数据集里,高效地给算法做测试,才能保证它们承受得了现实里大量数据的考验?...原创 2021-03-09 19:35:43 · 589 阅读 · 1 评论 -
win10下安装visual studio2015以及cuda10.2和cudnn10.0
参考博客:https://blog.csdn.net/shuiyixin/article/details/99935799CUDA10.2下载:(天翼云盘)https://cloud.189.cn/t/nqQVZjMRR3Qncudnn10.0下载:(百度云盘)https://pan.baidu.com/s/1C1SWx5EFlfmW7aa_C1-E9A提取码:hxli注意:在安装之前CUDA之前,请先安装visual studio2015(我使用的是2015版本,尽量选取高版本的,如2017原创 2020-10-07 17:30:30 · 875 阅读 · 0 评论 -
CRNN序列图像识别过程(二)
上图中纵坐标是可能出现的字符,横坐标是输出的序列,上图表示:输出结果要求为zoo时,在网络输出的序列长度为9的前提下,网络可以输出的序列情况。从图中可以看出,第一个出现的字符为空格或者z,如果第一个字符为空格,那么第二个出现的字符可以为空格或者z,箭头表示下一个可以出现的字符情况,比如,网络输出的序列可以为:空格空格空格空格空格zo空格o或者zz空格o空格o空格空格空格最终经过转录,可以得到zoo在此说明一下,在网络中,每一个序列字符的输出都是有概率的,比如,在 空格空格空格空格空格zo空格o这条输.原创 2020-08-20 22:57:02 · 486 阅读 · 0 评论 -
pytorch模型的保存与加载注意事项:
保存和加载模型:torch.save(net,'./model.pth') #保存整个模型及其参数net=torch.load('./model.pth') #加载整个模型及其参数#或者torch.save(net.state_dict(),'./model-dict.pth')#仅仅保存模型参数net.load_state_dict(torch.load('./model-dict.pth')) #仅仅加载模型参数(所以需要事先定义一个模型net)net.load_state_dict原创 2020-08-17 10:15:45 · 1781 阅读 · 16 评论 -
BatchNorm2d原理、作用及其pytorch中BatchNorm2d函数的参数讲解
BN原理、作用:函数参数讲解:BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)1.num_features:一般输入参数为batch_sizenum_featuresheight*width,即为其中特征的数量,即为输入BN层的通道数;2.eps:分母中添加的一个值,目的是为了计算的稳定性,默认为:1e-5,避免分母为0;3.momentum:一个用于运行过程中均值和方差的一个估原创 2020-08-16 17:05:00 · 72592 阅读 · 18 评论 -
CRNN序列图像识别过程(一)
CRNN是一种卷积循环神经网络结构,用于解决基于图像的序列识别问题,特别是场景文字识别问题。文章认为文字识别是对序列的预测方法,所以采用了对序列预测的RNN网络。通过CNN将图片的特征提取出来后采用RNN对序列进行预测,最后通过一个CTC的翻译层得到最终结果。 说白了就是CNN+RNN+CTC的结构。CRNN 全称为 Convolutional Recurrent Neural Network,主要用于端到端地对不定长的文本序列进行识别,不用先对单个文字进行切割,而是将文本识别转化为时序依赖的序列学习问原创 2020-08-16 13:47:27 · 4248 阅读 · 0 评论 -
如何解析模型代码的调用关系——以“ResNet网络模型的代码运行过程解析”为例
ResNet网络模型的代码运行解析过程本博客以ResNet50为例子,来解析代码运行的过程与函数解析:源码:如下之前一直为代码的复杂调用关系而感到头疼,看完之后虽然在脑子里能回想起来代码的流程,但是过了几天之后,这些典型的深度学习网络模型的代码又就忘记了,为了解决这个问题,我使用思维导图,来整理模型代码的整个流程,得到了很不错的效果,而且整个模型的函数调用也是一目了然!!!下次再看,也能很快想起来。我是用的是鱼骨思维导图:效果如下:与中间一跟鱼骨相连的骨刺是最先被运行的代码,然后在这个代码中如原创 2020-07-12 16:41:25 · 623 阅读 · 2 评论 -
ResNet网络模型的详细过程解析
ResNet网络模型的详细过程解析以ResNet50为例,详细解析网络的连接过程:224x224x3的图片作为输入,经过7x7的卷积核,进行步长为2的卷积,得到大小112x112通道数为64的卷积层。然后经标准化BN和激活函数Relu。然后经过3x3的最大池化层进行步长为2的池化。得到大小为56x56,通道数64保持不变的输出结果,记为stage0_1。然后对stage0_1进行1x1步长为1的卷积,得到通道数为64的卷积层,然后BN标准化,再Relu,得到输出结果,再对结果进行3x3的卷积核步长为原创 2020-07-11 22:13:35 · 2952 阅读 · 3 评论