
深度学习
CNN、RNN、LSTM、NLP
shitoucoming
这个作者很懒,什么都没留下…
展开
-
ckpt学习下
TensorFlow的模型文件文件结构介绍:–checkpoint_dir | |–checkpoint | |–MyModel.meta | |–MyModel.data-00000-of-00001 | |–MyModel.index Tensorflow模型主要包括两个方面内容:1)神经网络的结构图graph;2)已训练好的变量参数。因此Tensorflow模型主要包含两个文件:.meta文件该文件保存了tensorflow完整的网络图结构,.meta文件是pb格式,包转载 2020-09-23 17:12:05 · 403 阅读 · 0 评论 -
FocalLoss学习一下
FocalLossFocalLoss是对分类交叉熵损失函数的优化为什么能做难负样本挖掘呢?γ>0,会减少相对于好区分样本(就是负样本,也就是背景比较多的样本)的损失,而将重心转移到难区分的,而且比较容易误分类的样本(也就是正样本:背景不会占太多,或者叫难负样本:难区分的负样本,一般数据集中它们的数量少)上面来。下面来具体理解下。当预测概率值在0.6-1之间时,不管是预测物体还是背景,置信度比较高,也就是容易区分样本(远远大于0.5当然可信了)。当概率在0.5左右时,就比如特殊一点0.5吧,一原创 2020-09-13 16:15:22 · 424 阅读 · 0 评论 -
了解focal loss
Focal Loss理解 1. 总述Focal loss主要是为了解决one-stage目标检测中正负样本比例严重失衡的问题。该损失函数降低了大量简单负样本在训练中所占的权重,也可理解为一种困难样本挖掘。 2. 损失函数形式Focal loss是在交叉熵损失函数基础上进行的修改,首先回顾二分类交叉上损失:是经过激活函数的输出,所以在0-1之间。可见普通的交叉熵对于正样本而言,输出概率越大损失越小。对于负样本而言,输出概率越小则损失越小。...转载 2020-09-10 17:07:09 · 272 阅读 · 0 评论 -
ValueError: Object arrays cannot be loaded when allow_pickle=False
代码是Deep Learning with Python中的:from keras.datasets import imdb(train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)错误最后一行如下Object arrays cannot be loaded when allow_pickle=Fal...转载 2020-07-20 10:23:09 · 335 阅读 · 0 评论 -
tensorflow slim库的使用
slim库的导入:import tensorflow as tfimport tensorflow.contrib.slim as slim常用函数:与tensorflow自带的函数相比,slim能够让我们不用重复写函数的参数。那么函数的参数写在哪里呢?核心方法就是slim.arg_scope。slim.arg_scopedef arg_scope(list_ops_or_scope, **kwargs) list_ops_or_scope:要用的函数的作用域,可以在需要使用的地方用@ad转载 2020-07-13 11:33:08 · 353 阅读 · 0 评论 -
Opencv 中 waitkey()& 0xFF,“0xFF”的作用解释
这几日学习OpenCV,刚碰到这个表达式时,对于0xFF的作用不太理解,难道下面两个语句还有区别?(Esc的ASCII码为27,即判断是否按下esc键)if cv2.waitkey(30)==27if cv2.waitkey(30)&0xff==27疑惑首先&运算即“and”运算。其次0xFF是16进制数,对应的二进制数为1111 1111。然后cv2.waitkey(delay)函数1....转载 2020-05-08 18:35:31 · 2371 阅读 · 0 评论 -
图片标注工具LabelImg的使用
安装方式是windows方式(下载labelImg.exe,不用安装,双击直接使用),没有用python方式。。。原创 2020-05-06 10:06:43 · 1198 阅读 · 0 评论 -
解决labelImg闪退
labelImg路径中不能出现中文,如果有,换个不带中文的路径。原创 2020-05-05 16:11:53 · 1172 阅读 · 0 评论 -
python3.7 -openCV安装与测试(Windows)
1.首先进行whl文件下载,下载地址是:https://www.lfd.uci.edu/~gohlke/pythonlibs/因为我安装的是python3.7版本,所以我下载的是opencv_python-4.2.0-cp37-cp37m-win_amd64.whl注意:安装时要下载与python版本相匹配的opencv文件,且opencv要安装后要复制到Anaconda3\Lib\site-...原创 2020-05-04 22:07:38 · 597 阅读 · 0 评论 -
pytorch必须掌握的4种边界Padding方法
卷积操作作为卷积神经网络的核心模块,在其计算过程中必须考虑图像“边缘像素”的卷积方式。查阅资料发现,我们可以采用“卷积之前进行边界填充”或“卷积之后进行边界填充两种方式”,同时边界填充的具体手段包含常量填充、零填充、镜像填充以及重复填充等。在具体分析各种Pad之前,先创建一个2dTensor用于测试后面的填充操作:x = torch.Tensor([[1, 2], [3, 4]])创建的Tenso...转载 2020-05-01 16:30:39 · 2943 阅读 · 1 评论 -
pytorch 之 __call__, __init__,forward
要学习pytorch,一个前提是 知道python calss中的**call__和__init**方法.简单的说就是:init: 类的初始化函数,类似于c++的构造函数call_: 使得类对象具有类似函数的功能。__init__比较好理解,现在主要看一下 __call__的功能示例:class A(): def __call__(self): print('i ...转载 2020-05-01 15:43:44 · 336 阅读 · 0 评论 -
tf.truncated_normal_initializer()和tf.random_normal_initializer()的区别和使用
两个初始器的使用和区别tf.random_normal_initializer:正态分布tf.truncated_normal_initializer:截取的正态分布原创 2020-03-25 00:39:35 · 4235 阅读 · 0 评论 -
CNN过程举例(手写版)
# 定义一个网络结构: input -> conv1 -> relu1 -> pooling1 -> conv2 -> relu2 -> pooling2 -> FC1 -> FC2手写CNN过程:原创 2020-03-21 00:32:52 · 431 阅读 · 2 评论 -
CNN(多种CNN结构,为什么用引入CNN,卷积层不考虑过拟合)
1.多种CNN结构好多CNN结构都是在原来基础上做了深度和宽度方向上的扩展,从而将网络结构变得复杂,同时通过这种方式使模型效果变得好一点。常见的CNN结构有LeNet-5、 AlexNet、ZFNet、VGGNet、GoogleNet、ResNet、DenseNet、SENet、 Residual Attention Networks、MobileNet、ShuffleNet等等。从Goog...原创 2020-03-20 17:56:15 · 624 阅读 · 0 评论 -
CNN中窗口,通道,feature map,激活函数 理解
CNN中的窗口理解窗口大小,就是局部感知视野图片的深度depth,也叫channeldepth深度:图片是从几个方面进行描述的。feature map一个卷积核相当于从一个方面考虑这个图像具有什么特征,10个卷积核就是从10个方面去描述图像,然后得到10个feature mapCNN中的激活函数ReLU效果不好的话再考虑用Leaky ReLUMaxout不是纯粹的激活函数,但可以把...原创 2020-03-20 17:55:03 · 759 阅读 · 0 评论 -
BP体系
BP体系小理解不管什么神经网络,底层的求解。都属于BP这个体系,只是有时候稍微改个名字,比如BPTT,属于BP体系,用反向传播过程,进行参数更新,过程就是求导的过程。...原创 2020-03-20 17:54:18 · 821 阅读 · 0 评论 -
模型过拟合和模型退化理解
模型过拟合和模型退化模型过拟合:指在训练集上效果还可以,在测试集上效果不好;模型退化:在训练集上效果就不好了。原创 2020-03-20 17:45:51 · 1772 阅读 · 0 评论 -
CNN基础的小总结
总结CNN中,卷积层主要目的是提取图像的局部高阶特征信息,其他不考虑。在激活层,由于卷积层提取的是线性的特征。所以需要做一个非线性的转换。如果不做转换的话,多层还是相当于一层,没有什么区别。池化层可以理解为对前面卷积层提取那么多的局部特征信息做一个压缩,压缩的过程中会把一些噪声特征信息,包括冗余特征信息给剔除掉。使模型相对稳定一些。迭代速度更快一些。也可以稍微缓解一些过拟合的问题。前面提取的是...原创 2020-03-20 17:44:38 · 171 阅读 · 0 评论 -
CNN中用到的灰度图和RGB图的理解
灰度图片和RGB图片灰度图像是一个方面,彩色图像是三个方面灰度图:把白色与黑色之间按对数关系分为若干等级,称为灰度。灰度分为256阶。(数字越大越接近白色,越小越接近黑色 )RGB图:是通过对红R、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色。(每像素颜色16777216(256 * 256 * 256)种)...原创 2020-03-20 17:39:27 · 3646 阅读 · 0 评论 -
对CNN中池化层的理解
14.为什么要引入池化层?例如一张图片中,有天空。天空那一大片区域颜色是很接近的。用卷积层提取出的局部特征也很相近。这样的话会造成特征信息的冗余。带来计算量大的问题。如何将冗余的信息删除,那就要用到池化层。池化层的作用主要是:为了提高重要的特征信息,压缩特征,降低计算量,缓解过拟合的情况。池化有最大池化和最小池化(其中最小池化自己根据最大池化进行改编得到)最大池化认为每个窗口中值越大,越...原创 2020-03-20 17:37:15 · 2022 阅读 · 0 评论 -
对CNN中padding零填充的理解
11.padding为什么用padding进行填充?原因:2个一:卷积的时候,希望图像大小不发生变化;二:有的时候可能原始图像是除不尽的,如果不填充的话,余的像素就直接丢弃了,这样信息可能会丢失。那为了防止信息丢失,我们做一个填充。注意:零填充填几层卷积自己会自己计算的(计算是在滑动窗口滑动之前就计算好的)。也就是说:不管哪种情况,padding的取值,先计算好,然后窗口才滑动 。。。 ...原创 2020-03-20 17:29:35 · 12672 阅读 · 1 评论 -
损失函数运行出nan和inf,原因是学习率过大引起的
损失函数也是有可能导致输出nan,inf(由于梯度爆炸造成Loss爆炸引起)原因很简单,学习率较高的情况下,直接影响到每次更新值的程度比较大,走的步伐因此也会大起来。过大的学习率会导致无法顺利地到达最低点,稍有不慎就会跳出可控制区域,此时我们将要面对的就是损失成倍增大(跨量级)。...原创 2020-03-09 22:23:57 · 3640 阅读 · 0 评论