自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 对抗神经网络(GAN)

对抗神经网络其实时两个网络的组合,可以理解为一个网络生成模拟数据,另一个网络判断生成的数据是真实的还是模拟的。生成模拟数据的网络要不断优化自己让判别的网络判断不出来,判别的网络也要优化自己让自己判断得更加准确。一、GAN的理论知识GAN有generator和discriminator两部分构成generator:主要是从训练数据中产生相同分布的samples,对于输入x,类别标签y,在生成式模型中估计器联合概率分布。discriminator:判断输入是真实数据还是generator生成的数据,即

2022-05-20 18:13:22 10062

原创 SRGAN——使用与超分辨率重建的GAN

  SRGAN数据GAN理论在超分辨率重建(SR)方面的应用。一、超分辨率技术1.SR技术介绍  SR技术,是指从观测到的低分辨率图像重建出相对应的高分辨率图像,在监控设备、卫星图像和医学影像等领域都有重要的应用价值,也可以应用于马赛克图片的恢复应用场景。  SR可分为两类:从多张低分辨率图像重建出高分辨率图像;从单张低分辨率图像重建出高分辨率图像。基于深度学习的SR,主要是基于单张低分辨率的重建方法,即Single Image Super-Resolution(SISR)。  SISR是一个逆问

2022-05-20 17:59:09 6186

原创 GAN-cls:具有匹配感知的判别器

  GAN-cls是一种GAN网络增强技术——具有匹配感知的判别器。在InforGAN中,使用了ACGAN的方式进行指导模拟数据与生成数据的对应关系。在GAN-cls中该效果会以更简单的方式来实现,即增强判别器的功能,令其不仅能判断图片的真伪,还能判断匹配真伪。一、GAN-cls的具体实现  GAN-cls具体做法是,在原有GAN网络上,将判别器的输入变为图片与对应标签的连接数据。这样判别器的输入特征中就会有生成图像的特征与对应标签的特征。然后用这样的判别器分别对真实标签与真实图片、假标签与真实图片、真

2022-05-17 07:41:38 1064

原创 LSGAN(最小乘二GAN):具有WGAN同样效果的GAN

  前面已经介绍GAN是以对抗的形式逼近概率分布。但直接使用该方法,对随着判别器越来越好而生成器无法与其对抗,进行形成梯度消失的问题。WGAN和LSGAN都是试图使用不同的距离度量,从而构建一个不仅稳定,同时还能快速收敛的生成对抗网络。1. LSGAN介绍  WGAN使用的是Wasserstein理论来构建度量距离。而LSGAN使用另一种方法,使用更加平滑和非饱和梯度的损失函数——最小乘二来代替原来的Sigmod交叉熵。这是由于L2正则独有的特性,在数据偏离目标时会有一个与其偏离距离成比例的惩罚,再将其

2022-05-15 16:40:11 1752

原创 WGAN-GP:更容易训练的GAN

  WGAN-GP又称为具有梯度惩罚的WGAN,一般可以替代WGAN1.WGAN:基于推土机距离原理的GAN(1)原始GAN的问题及原因  实际训练中,GAN存在训练困难、生成器和判别器的loss无法指示训练过程、生成样本缺乏多样性等问题。这与GAN的机制有关。  GAN最终达到对抗的纳什均衡只是一个理想状态,而实际情况中得到的结果都是中间状态。大部分情况是,随着训练的次数越多判别器D的效果越好,一直可以将生成器G的输出和真实样本区分开。  这是因为生成器G是从低维向高位空间映射,其生成的样本分布

2022-05-15 14:21:44 12826

原创 实例99:使用AEGAN对MNIST数据集压缩特征及重建

  本实例在MNIST数据集上使用AEGAN模型进行特征压缩及重建,并且加入标签信息loss实现AC-GAN网络。其中D和G都是通过卷积网络实现。实例描述  使用InfoGAN网络,在其基础上添加自编码网络,将InfoGAN的参数固定,训练反向生成器(自编码网络中的编码器),并将生成的模型用于MNIST数据集样本重建,得到相似的样本。1.添加反向生成器  添加反向生成器inversegenerator函数。该函数的功能是将图片生成特征吗,其结构与判别器相似,均为生成器的反向操作,即两个卷积层加上两个

2022-05-14 15:00:46 805

原创 实例88:构建InfoGAN生成MNIST模拟数据

在MNIST数据集上使用InfoGAN网络模型生活才能模拟数据,并且加入标签的loss函数同时实现AC-GAN网络。其中D和G都是卷积函数来生成,相当于在DCGAN基础上的InfoGAN例子。实例描述通过使用InfoGAN网络学习MNIST数据特征,生成以假乱真的MNIST的模拟样本,并发现内部潜在的特征信息。1.引入头文件并加载MNIST数据import numpy as npimport tensorflow as tfimport matplotlib.pyplot as pltfrom

2022-05-14 10:09:10 542

原创 卷积神经网络——解决参数太多问题

一、全连接网路的局限性图像变大导致色彩书变多,不好解决不便处理高维数据对于比较复杂的高维数据,如果按照全连接的方法,则只能通过增加节点、增加层数的方式来解决。增加节点会引起参数过多的问题。由于隐藏层神经网络使用的是sigmod或tanh激活函数,其反向传播的有效成层数只能在4~6层左右。二、理解卷积神经网络三、网络结构卷积神经网络的结构与全连接网络相比复杂很多。它的网络结构主要包括卷积层、池化层。细节又可以分为滤波器、步长、卷积操作、池化操作。1.网络结构描述对于一般的图片会使用多个卷积

2022-05-10 04:07:00 2148

原创 自编码网络——能够自学习样本特征的网络

深度学习领域主要有两种训练模式:监督学习:不仅有样本,还有对应的标签非监督学习:即只有样本没有标签此外还有半监督学习,也属于非监督学习非监督模型的网络——自编码网络一、自编码网络介绍及应用自编码网络时非监督学习领域中的一种,可以自动从无标注的数据中学习特征,是一种重构输入信号为目标的神经网路,它可以给出比原始数据更好的特征描述,具有较强的特征学习能力,在深度学习中常用自编码网络生成的特征来取代原始数据,以得到更好的结果。二、最简单的自编码网络自编码(Auto-Encoder,AE)网络是

2022-05-06 06:08:53 1579

原创 实例83:使用标签指导变分自编码网络生成MNIST数据

在编码阶段需要在输入端添加标签对应的特征,在解码阶段同样也需要将标签加入输入,这样,再解码的结果向原始的输入样本不断逼近,最终得到的模型将会把输入的标签特征当成MNIST数据的一部分,从而实现通过标签生成MNIST数据。在输入端添加标签时,一般是通过一个全连接层的变换将得到的结果使用contact函数连接到原始输入的地方,在解码阶段也将标签作为样本数据,与高斯分布的随机值一并运算,生成模拟样本。实例描述使用条件变分自编码模型,通过指定标签输入生成对应类型的MNIST模拟数据1.添加标签占位符x =

2022-05-06 04:09:33 286

原创 实例82:使用变分自编码模拟生成MNIST数据

实例描述使用变分自编码模型进行模拟MNIST数据的生成1.引入库,定义占位符编码器为两个全连接层:第一个全连接成有784个维度的输入变化为256个维度的输出;第二个全连接层并列连接了两个输出网络(mean与lg_var),每个网络都输出了两个维度的输出。然后将两个输出通过一个公式的计算,输入到以一个2节点为开始的解码部分,接着后面为两个全连接层的解码器。第一层由两维度的输入到256维度的输出,第二层由256个维度的输入到784个维度的输出。import numpy as npimport tens

2022-05-05 07:28:04 881

原创 实例81:添加模型存储支持分布训练

栈式自编码的另一个优点就是可以将神经网络模块化,便于分工。在实际过程中,为了得到更好的模型,需要将上述的每个环节分别单独训练。不同小组之间的对接通过模型文件来完成,需要将每个环节中的参数保存下来,在自己的步骤开始之前将上个步骤的环境加载进去。实例描述对自编码模型进行分布式模型存储与载入,使每一层都可以单个环节逐一训练。#定义保存模型的位置savedir = "/log/"saver = tf.train.Saver(tf.train.global_varibales(), max_to_keep

2022-05-04 06:41:16 108

原创 实例80:实现去噪自编码

首先建立一个去噪声自编码,然后对第一层的输出做一次简单的自编码压缩,然后再将第二层的输出做一个softmax的分类,最后,把这3个网络的中间层拿出来,组成一个新的网络进行微调。1. 引入头文件,创建网络模型及定义学习参数变量实例描述对MNIST集中的原始输入图片加入噪声,在自编码网络中进行训练,得到抗干扰更强的特征提取模型。import numpy as npimport tensorflow as tfimport matplotlib.pyplot as pltfrom tensorflo

2022-05-04 06:33:22 678

原创 实例79:使用去噪自编码网络提取MNIST特征

本例为一个简单的自编码模型,让784维只通过一层256维。将原始的数据进行一些变换,每个像素点都乘以一个高斯噪声,然后再输出的位置仍然使用原始的输入样本,这样迫使网络在提取特征的同时将噪声去掉。为了防止其过拟合,还需要加入Dropout层。实例描述对MNIST集原始输入图片加入噪声,在自编码网络中进行训练,以得到抗干扰更强的特征提取模型。1.引入头文件,创建网络模型及定义学习参数变量import numpy as npimport tensorflow as tfimport matplotl

2022-05-03 04:01:22 639

原创 实例77:提取图片的二维特征,并利用二维特征还原图

将MNIST图片压缩成二维数据,这样也可以在直角坐标系上将其显示出来,让读者更加形象的了解自编码网络在特征提取方面的功能实例描述在自编码网络中使用线性解码器对MNIST数据特征进行再压缩,并将其映射到直角坐标系上。这里使用4层逐渐压缩784维度分别压缩成256、64、16、2这4个特征向量。如果想要得到更好的特征提取效果,可以将压缩的层数变得更多,但由于Sigmod函数“天生”缺陷,无法使用更深的层,可以使用栈式自编码器解决。1.引入头文件,定义参数变量建立4层网络,为每一层分配节点个数。

2022-05-02 18:48:20 1291

原创 实例76:提取图片的特征,并利用特征还原图片

通过构建一个两层降维的自编码网络,将MNIST数据集的数据特征提取出来,并通过这些特征再重建一个MNIST数据集1.引入头文件,并加载MNIST数据import tensorflow as tfimport numpy as npimport matplotlib.pyplot as plt #导入MINST数据集from tensorflow.examples.tutorials.mnist import input_dataminst = input_data.read_data_set

2022-05-01 19:18:20 1532 1

原创 C++——运算符重载

一、运算符重载的概念1.什么是运算符重载:运算符重载指的是对已有的运算符重新定义新的运算规则,已适应不同的数据类型,当然重载之后之前的运算规则还是有的2.为什么要进行运算符重载运算符重载之后可以让运算符去适应不同的数据类型,对于基本数据类型,系统给出了运算符的操作规则,对于自定义数据类型来说,系统是不知道给出什么规则的如下:class student{ int id; int age; char name[20];public: student(int id,int age,cosn

2022-04-20 11:32:39 847

原创 C++——继承

一、继承和派生1.继承的概念继承是一种创建新类的方式,新建的类可以继承一个或多个类。可以理解子承父业所以继承描述的是类和类之间的关系新建的类被称之为派生类(子)类,之前就存在的类被称之为基(父)类2.继承和派生继承和派生是同一个过程,从不同的角度来看的一个新类从已经存在的类哪里获取其已有的特性,这个叫继承(儿子继承父亲的财产)从已存在的类产生一个子类,这个叫派生(父亲把财产给儿子)3.继承分类新建的类继承一个类,这个是单继承新建的类继承多个类,这个叫多继承二、继承方式1

2022-04-20 11:32:21 1516

原创 C++——多态

实现同一方法的调用,完成不同的效果,方便程序的接口实现一、动态联编和静态联编1.什么是联编联编:指的是计算机自身彼此关联的过程,在这个过程中确定程序中的操作调用与之改操作的代码段之间的映射关系,比如:函数重载时,编译器会根据函数名和函数的参数来区别要执行的函数(那一段代码).这就是建立的一种映射关系,明确函数调用时会执行哪一个代码段。静态联编:指的时联编工作出现在写代码的阶段,又称之为早期联编,或静态约束。在编译时就确定了函数实现及函数调用的关联,比如C语言的函数,只需要函数名和参数就能确定能

2022-04-20 11:32:07 585

原创 C++——I/O流

一、流的概念1.什么是流流是一种抽象的概念,表示数据的无结构化传递C++流是指信息从外部输入设备(键盘)向计算机内部(如内存)输入和内存向外输出设备输出的过程。C++有I/O标准类库,用以完成流操作功能二、fstream的使用1.fstream的作用fstream是C++中常用的文件操作类2.C++文件操作包含头文件fstream,打开命名空间std,或是std::fstream使用fstream类来实例化对象,通过对象的成员来进行文件操作3.常用的成员函数(1)open(“

2022-04-20 11:31:37 2108

原创 C++——静态友元常量成员

一、静态成员1.知识点介绍静态成员:加上static关键字,静态成员分为静态数据成员和静态函数成员两种2.静态数据成员定义class node{public: static int id;//静态数据成员定义}int node::id=10;//静态数据成员类外初始化3.静态数据成员的特点类中静态数据成员,所有对象都共享该数据,只有一份内存存在内存中类中静态数据成员,必须要在类外初始化,因为它不属于对象,属于类,对象存在还是不存在这个静态成员都是存在的,而且静态数据成员声明周期时

2022-04-20 05:13:18 394

原创 C++——构造析构

通过学习构造析构函数来完成对对象数据成员进行初始化和清理工作一、构造函数1.知识点介绍构造函数:它是一种特殊的函数,主要用来创建对象时初始化对象,即为对象的成员变量赋初始值。2.构造函数的定义构造函数名和类名相同构造函数没有返回值类型和返回值构造函数可以重载class student{public: student(){}//无参(默认)构造 student(int a){}//有参(带参)构造}3.构造函数的调用时机在创建一个新的对象时会调用构造函数调用无参数构造

2022-04-19 17:05:18 151

原创 C++——面向对象

一、面向过程1.知识点介绍c语言编程就是一个面向过程的编程。它遵循一个“从上往下”的程序设计。2.用面向过程的方法解决问题的思路提出问题,分析问题的处理流程,将大问题分解成小问题,如果小问题比较复杂,那么就继续的分解为更小的问题,然后解决这些一个一个的小问题来解决大问题,最后解决所有的问题。这个从问题出发,从上往下的解决过程,一步一步的解决问题,这种开发思路我们称之为面向过程的设计思想,因为他主要是解决问题中的一个个的过程,而且它比较符合我们解决问题的方法(做好这一步,做下一步,直到做完所有)

2022-04-19 12:51:22 656

原创 实例56:使用RNN网络拟合回声信号序列

实例描述构建一组序列,生成其对应的模拟回声序列。网络描述:初始输入有5个,其中4个是中间状态,1个是x的序列值。通过一层具有4个节点的RNN网络,再接一个全连接成输出0、1分类。1.定义参数生成样本数据导入python库,定义相关参数,取50000个序列样本数据,每个测试数据截取15个序列,回声序列步长为3,最小批次为5。定义生成样本函数generateData,在函数里先随机生成50000个0、1数据的数组x,作为原始的序列,令x里的数据向右循环一定3个位置,生成数据y,作为x的回声序列。imp

2022-04-17 18:02:07 1045

原创 过拟合的处理方法

避免过拟合的方法early stopping :在发生拟合之前提前结束训练,理论上可行,但点不好把握数据集扩增:让模型见到更多的情况,最好的满足全样本,实际情况下不好弄正则化:通过引入范数的概念,增强模型的泛化能里,包括L1、L2dropout:一种模型方法,每次训练是会舍弃一些节点来增强泛化能力1.正则化正则化正则化,就是在计算损失值的过程中,在损失的后面在加上一项,使得到的误差得到干扰,使模型无法与样本完全拟合,从而达到防止过拟合的结果干扰项的特性:当欠拟合时,对模型的影响越小越好

2022-04-17 07:15:10 3026

原创 实例39:用胶囊网络识别黑白图中的服装图片

一、熟悉样本:了解Fashion-MNIST数据集FashionMNIST数据集的单个样本为28pixel*28pixel的灰度图片。训练集有60000张图片,测试集有10000张图片。样本内容为上衣、裤子、鞋子等服饰,一共分为10类。二、下载Fashion-MNIST数据集三、代码实现:读取及显示Fashion-MNIST数据集中的数据from tensorflow.examples.tutorials.mnist import input_datamnist = input_data.rea

2022-04-17 04:42:29 416

原创 卷积神经网络(CNN)——快速导读

一、认识卷积神经网络输入层:将每个像素点代表一个特征节点输入进来卷积层:有多个滤波器组成池化层:将卷积结果降维全局平均池化层:对生成的特征数据(feature map)取全平均值输出层:需要分几类就有几个输出节点。输出节点的值代表预测概率卷积神经网络的主要组成部分是卷积层,它的作用是从图像的像素中分析出主要特征。在实际应用中,有多个卷积层通过深度和高度两个方向分析和提取图像的特征。通过较深(多通道)的卷积网络结构,可以学习到图像边缘和颜色渐变的简单特征。通过较高(多层)的卷积网络结构,

2022-04-15 04:51:47 2651

原创 实例14:用静态图训练一个具有保存检查点功能的回归模型

实例14:用静态图训练一个具有保存检查点功能的回归模型回归任务:对输入数据进行计算,并输出某个具体值的任务。与之相对的还有分类任务一、准备开发步骤需要完成的具体步骤如下:生成模拟样本搭建全连接网络模型训练模型:在训练模型过程中,还需要完成对检查点文件的生产和载入二、生成检查点文件生产检查点文件步骤如下:实例化一个saver对象在会话中,调用saver对象的save方法保存检查点文件1.生产saver对象saver对象有tf.train.Saver类的实例化生成var_

2022-04-14 09:16:08 634

原创 用TensorFlow编写训练模型的程序——快速导读

1. 训练模型是怎么回事训练模型是指,通过程序的反复迭代来修正神经网络中各个节点的值,从而实现具有一定拟合效果的算法。在训练神经网络的过程中,数据流有两个方向:正向和反向。正向负责预测生成结果,沿着网络节点的运算方向一层层计算下去。反向负责优化调整模型参数,即用链式求导将误差和梯度从输出节点开始一层层传去,对每层的参数进行调整。训练模型的完整步骤如下:通过正向生成一个值,然后计算该值和真实标签之间的误差利用反向求导的方式,将误差从网络的最后一层传到前一层对前一层中的参数求偏导,并按照偏

2022-04-14 03:31:59 1386

原创 TensorFlow中的函数操作

TensorFlow函数手册tf.train.slice_input_producer()实现输入队列tf.read_file()和cv2.read()的区别tf.image.per_image_standardization():标准化,到0~1之间tf.train.batch()生成批次数据与tf.train.shuffle_batchtf.stack()将张量合并tf.TextLineReader()tf.decode_csv...

2022-04-12 20:38:54 1093

原创 实例3:将图片制作成内存对象数据集

3. 实例3:将图片制作成内存对象数据集将图片样本数据制成数据集,使用TensorFlow队列方式,好处:能充分使用cpu的多线程资源,让训练模型与数据读取平行同时运行1. 样本介绍MNIST手写数据集2. 代码实现:载入文件名称与标签import tensorflow.compat.v1 as tftf.compat.v1.disable_eager_execution()import os from matplotlib import pyplot as plt import num

2022-04-12 20:36:46 221

原创 实例4:将Excel文件制作成内存对象数据库

实例4:将Excel文件制作成内存对象数据库实例描述:有两个Excel文件:一个为训练数据,另一个为测试数据现在需要做的是:1,将训练数据按批次输出。2,将测试数据按样本顺序输出1. 样本介绍样本为两个csv文件——iris_training.csv和iris_test.csv2. 代码实现:逐行读取数据并分离标签定义read_data用于读取数据调用tf.TextLineReader函数,对单个Excel文件进行逐行读取调用tf.decode_csv,将Excel文件中的单行内容按指定

2022-04-12 20:36:30 596 1

原创 实例6:将内存对象制作成Dataset数据集

实例6:将内存对象制作成Dataset数据集tf.data.Dataset接口是一个可以生产Dataset数据集的高级接口实例描述生成一个模拟y=2x的数据集,将数据集的样本和标签分别以元组合字典类型存放为两份,建立两个Dataset数据集:一个被传入元组类型样本,另一个被传入字典数据类型的样本1. 如何生成Dataset数据集tf.data.Dataset接口通过创建Dataset对象生成数据集,有了Dataset对象后,就可以在其上面做乱序(shuffle)、元素变换(map)、迭代取值(it

2022-04-12 20:36:09 508

原创 实例7:将图片文件制作成Dataset数据集

实例7:将图片文件制作成Dataset数据集在图片训练过程中,一个变形丰富的数据集会使模型的精度与泛化性成倍提升1. 代码实现:读取样本文件的目录与标签定义load_sample函数,用来将样本图片的目录名称与对应的标签读入内存。...

2022-04-12 20:35:19 3326 2

原创 实例9:在动态图中读取Dataset数据集

实例9:在动态图中读取Dataset数据集在TensorFlow2.0版本中,动态图已经取代静态图成为系统默认开发框架1. 代码实现:添加动态图调用import osimport tensorflow as tffrom sklearn.utils import shuffle import numpy as npimport matplotlib.pyplot as plttf.compat.v1.enable_eager_execution()print("Tensorflow版本

2022-04-12 20:34:49 167

原创 实例8:将TFRecord文件制作成Dataset数据集

实例8:将TFRecord文件制作成Dataset数据集tf.data接口可以将多种格式的样本文件转换成Dataset数据集tf.data.TextLineDataset:根据文本文件生成Dataset对象。支持单个或多个文件读取,将文件中的每一行转换成Dataset对象中的每一个元素,该方法可以用来读入csv文件。tf.data.FixedLengthRecordDataset:该方法专门用于读入数据源是二进制格式文件,根据二进制文件生成Dataset对象。支持单个或多个文件读取。使用时,需要传入

2022-04-12 04:03:54 457

原创 实例5:将图片文件制作成TFRecord数据集

实例5:将图片文件制作成TFRecord数据集

2022-04-11 03:20:07 649

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除