神经网络
ZJE_ANDY
这个作者很懒,什么都没留下…
展开
-
Batch Normalization (BN层)-----批归一化
1.数据分布在讲BN层之前,我们得先了解何为数据分布,数据分布跟网络训练又有什么关系。(1)抛砖引玉我曾经在做一个分类网络时,遇到一个问题,就是训练的时候,精度一直是0,百思不得其解。后来看了下数据的输入顺序,原来是这样的,数据共500张,顺序是100张苹果,然后100张香蕉,然后100张橘子,然后100张梨,然后100张桃子。我们的batch size是5。这时候会出现什么问题呢,就是每个batch的数据输入网络的数据,会一直是苹果,然后苹果数据没了,就会是一直是香蕉...如此类推。这样子网络原创 2020-08-23 22:34:02 · 7441 阅读 · 3 评论 -
L1和L2正则化------直观和全面的解释--解决过拟合和提高模型泛化能力
1. 1范数和2范数L1和L2正则化,其实就是在损失函数后面加一个1范数或2范数约束。1-范数:,1范数表示向量元素绝对值之和。2-范数:也称欧几里得范数。即向量元素绝对值的平方和再开方。2. L1正则化假设有如下带L1正则化的损失函数:令,则 J = J0 + L其中J0为原来损失函数,J为加了L1正则项后的损失函数。α是正则化系数。注意到L...原创 2020-04-12 12:08:55 · 1922 阅读 · 0 评论 -
pytorch GAN伪造手写体mnist数据集
一,mnist数据集形如上图的数字手写体就是mnist数据集。二,GAN原理(生成对抗网络)GAN网络一共由两部分组成:一个是伪造器(Generator,简称G),一个是判别器(Discrimniator,简称D)一开始,G由服从某几个分布(如高斯分布)的噪音组成,生成的图片不断送给D判断是否正确,直到G生成的图片连D都判断以为是真的。D每一轮除了看过G生成的假图片以外,...原创 2019-07-08 10:36:16 · 2187 阅读 · 6 评论 -
修改pytorch提供的resnet接口实现Kaggle猫狗识别
一,数据集Kaggle猫狗大战的数据集下载链接:https://www.kaggle.com/c/dogs-vs-cats-redux-kernels-edition二,导入resnet(以resnet18为例)from torchvision.models.resnet import resnet18resnet = resnet18(pretrained=True)pr...原创 2019-07-10 15:17:29 · 5839 阅读 · 18 评论 -
tensorflow 处理mnist手写体数据集(训练+预测代码)
一,tensorflow提供了自动下载mnist数据集的接口,若下载不了,请尝试翻墙后再试,或者从其他网站下载。二,训练代码:import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_dataimport numpy as npimport os"""---------------...原创 2019-07-15 18:08:45 · 4957 阅读 · 3 评论 -
keras 识别mnist手写体(用CNN之lenet网络)
一,lenetlenet是CNN的开山鼻祖,可以说是第一个实现CNN的网络:(lenet网络结构如下:)二,mnist手写体数据集形如上图的数字手写体就是mnist数据集。尺寸大写都是28x28,都是灰度图,所以通道数都为1。三,keras训练代码:import numpy as npimport kerasfrom keras.datasets import...原创 2019-07-29 21:41:27 · 1051 阅读 · 0 评论 -
keras 利用vgg16处理kaggle的猫狗大战二分类问题
一,kaggle的猫狗打大战数据集Kaggle猫狗大战的数据集下载链接:https://www.kaggle.com/c/dogs-vs-cats二,vgg网络vgg是拥有比较深层数的cnn网络(当然比不上resnet),其中vgg按照层数的不同分为了vgg11,vgg13,vgg16,vgg19,举例说明vgg11就是卷积层加上全连接层一共11层,具体如下图,其中红色框框住的C,...原创 2019-07-30 16:42:40 · 4878 阅读 · 15 评论 -
tensorflow kaggle猫狗大战识别猫狗
一,Kaggle猫狗大战数据集:下载地址:https://www.kaggle.com/c/dogs-vs-cats下载解压后会有两个文件目录,一个测试数据,一个训练数据:训练数据:二,训练代码:第一部分:读取数据:from PIL import Imageimport numpy as npimport tensorflow as tfimport os...翻译 2019-07-22 19:27:21 · 4974 阅读 · 3 评论 -
pytorch中VGG网络的源码解读
一,简单介绍VGG网络VGG网络是由多个卷积神经网络堆叠而成的分类网络。分为几类:VGG11,VGG13,VGG16,VGG19。结构如下图:VGG11,13,16,19这些数字表示VGG网络中的卷积层+全连接层的个数。同样从上图我们也可以看到,每个VGG都有5个卷积block,其中卷积层的个数从1个~3个不等。二,VGG源码在源码中可供外界直接调用的vgg网络接口有...原创 2019-09-19 17:11:45 · 5716 阅读 · 4 评论 -
pytorch简单孪生网络识别脸部
一,孪生网络结构:input1和input2都输入到两个一模一样的姊妹网络中,输出的结果,再通过对比损失函数(Contrastive Loss)中。得到差异值。下面的代码是用cnn作为一个简单姊妹网络。Contrastive Loss损失函数:二,数据集用AT&T面部数据集。数据集一共有40个人的不同面部照片:每个人有十来张:三,训练代...原创 2019-07-02 15:39:43 · 5299 阅读 · 16 评论 -
python用matploblib库画准确率、损失率折线图
import matplotlib.pyplot as pltepochs = [0,1,2,3]acc = [4,8,6,5]loss = [3,2,1,4]plt.plot(epochs,acc,color='r',label='acc') # r表示红色plt.plot(epochs,loss,color=(0,0,0),label='loss') #也可以用...原创 2019-06-26 21:45:32 · 11011 阅读 · 1 评论 -
BP网络推导过程以及例子
*****(不关心推导过程的,可以直接从“四”开始看例子)*****BP神经网络:以只有一个隐藏层的BP神经网络为例:1.隐藏层和输出层的激活函数f1和f2都用Sigmodi函数,即:,因为BP网络的激活函数必须可导,所以Sigmoid函数是可取的选择。2.当BP网络反向调整网络权值时,激活函数的导数是经常用到的,因此我们先对激活函数f(x)求导:所以:重要:...原创 2019-03-20 14:06:26 · 4678 阅读 · 2 评论 -
卷积神经网络的特征图可视化
原图:Keras代码:from keras.models import Sequentialfrom keras.layers.convolutional import Convolution2D,MaxPooling2D,AveragePooling2Dfrom keras.layers import Activationimport cv2import osimpor...原创 2019-04-11 15:50:49 · 4554 阅读 · 11 评论 -
mnist手写体数据集里的标准化参数transforms.Normalize((0.1307,), (0.3081,))
很多人在处理mnist数据集时,看别人的代码都会看到这么一串数字:其中,0.1307和0.3081是mnist数据集的均值和标准差,因为mnist数据值都是灰度图,所以图像的通道数只有一个,因此均值和标准差各一个。要是imagenet数据集的话,由于它的图像都是RGB图像,因此他们的均值和标准差各3个,分别对应其R,G,B值。例如([0.485, 0.456, 0.406], [0.229...原创 2019-05-30 17:23:26 · 11143 阅读 · 9 评论 -
pytorch用LeNet5识别Mnist手写体数据集(训练+预测单张输入图片代码)
首先,在论文上的LeNet5的结构如下,由于论文的数据集是32x32的,mnist数据集是28x28的,所有只有INPUT变了,其余地方会严格按照LeNet5的结构编写程序:训练代码:import torchimport torch.nn as nnimport torch.nn.functional as Fimport torch.optim as optimfrom t...原创 2019-05-30 23:07:48 · 9675 阅读 · 20 评论 -
pytorch用VGG11识别Kaggle的猫狗大战数据集(训练+预测单张输入图片代码)
Kaggle猫狗大战的数据集下载链接:https://www.kaggle.com/c/dogs-vs-cats-redux-kernels-edition这是VGG的结构,红色框的则是VGG11。一,写VGG代码时,首先定义一个vgg_block(n,in,out)方法,用来构建VGG中每个block中的卷积核和池化层:n是这个block中卷积层的数目,in是输入的通道数,ou...原创 2019-06-12 17:03:58 · 6220 阅读 · 1 评论 -
pytorch用LeNet5识别cifar10数据集(训练+预测单张输入图片代码)
先找到LeNet5的模型结构训练代码:import torchimport torch.nn as nnimport torch.nn.functional as Ffrom torch.autograd import Variableimport torchimport torchvisionimport torchvision.transforms as transfo...原创 2019-06-04 15:59:49 · 4531 阅读 · 4 评论 -
pytorch用VGG11识别cifar10数据集(训练+预测单张输入图片代码)
首先这是VGG的结构图,VGG11则是红色框里的结构,共分五个block,如红框中的VGG11第一个block就是一个conv3-64卷积层:一,写VGG代码时,首先定义一个vgg_block(n,in,out)方法,用来构建VGG中每个block中的卷积核和池化层:n是这个block中卷积层的数目,in是输入的通道数,out是输出的通道数有了block以后,我们还需要一个方...原创 2019-06-11 14:17:26 · 6057 阅读 · 8 评论 -
语义分割数据集label的读取
例如这次用得是cityscapes数据集。第一步首先要找到数据集label颜色对应类别的列表:(这个一般在官网或者是github上会有,cityscapes我就是从github上找的)Label = namedtuple('Label', [ 'name', 'id', ...原创 2019-06-23 12:56:27 · 8535 阅读 · 2 评论 -
图像卷积和池化操作后的特征图大小计算方法
一,卷积操作若图像为正方形:设输入图像尺寸为WxW,卷积核尺寸为FxF,步幅为S,Padding使用P,经过该卷积层后输出的图像尺寸为NxN:若图像为矩形:设输入图像尺寸为WxH,卷积核的尺寸为FxF,步幅为S,图像深度(通道数)为C,Padding使用P,则:卷积后输出图像大小: , , ...原创 2018-12-20 16:52:48 · 31071 阅读 · 11 评论