![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深度学习
文章平均质量分 91
盼小辉丶
记录学习历程,分享学习心得,关注深度学习,欢迎交流学习.
展开
-
我的Go+语言初体验——Go+语言构建神经网络实战手写数字识别
Go+语言初体验,想要学习一门新语言也有一段时间了,最近看到 Go+ 融合了数据科学领域的 Python,那作为人工智能领域的相关从业人员和 Python 使用者,探索 Go+ 在人工智能领域的应用,同时也有很平滑的学习曲线,学习Go+就成了理所当然的事了。本文,首先简要概述下神经网络的相关概念,然后使用 Go+ 语言构建神经网络实战手写数字识别。原创 2021-12-09 09:43:31 · 5720 阅读 · 99 评论 -
TensorFlow实时任意风格迁移,送女朋友的创意礼物有了
神经风格迁移一经提出,便引起了业界的巨大兴趣,一些网站允许用户上传照片以进行风格迁移,甚至有一些有人将其用于商品销售(例如某宝的“DIY数字油画定制照片”等等)。当七夕来临,又到了挠头想送女朋友什么礼物的时候了,虽然定制照片很有意义,但是并不能保证风格是自己想要的呀,这种固定的风格怎么能是技术宅的 Style?当然是用 TensorFlow 实现实时任意风格迁移,为女朋友用心选一张最合适的风格化照片了。原创 2021-08-01 09:47:51 · 3984 阅读 · 153 评论 -
TensorFlow实现条件批归一化(Conditional Batch Normalization)
批归一化 (Batch Normalization, BN) 是深度学习中常用的网络训练技巧,它可以加快了模型的收敛速度,从而使得训练深层网络模型更加容易和稳定,但是在生成对抗网络 (Generative Adversarial Networks, GAN) 中使用 BN 会导致生成图片在一定程度上出现同质化的缺点。利用条件批归一化可以解决此问题,本文讲解了条件批归一化,并使用TensorFlow2进行实现。原创 2021-07-26 19:28:34 · 14036 阅读 · 60 评论 -
TensorFlow实现去噪自编码器(Denoising Autoencoder)
当我们在夜晚拍照时,或者其他黑暗环境时,我们的照片总是被大量的噪点所充斥,严重影响了图像质量,而去噪自编码器 (Denoising Autoencoder, DAE) 的目的就是用来去除这些图像中的噪声。本文将利用Tensorflow2实现使用 MNIST 数据集的 DAE。原创 2021-07-22 10:33:18 · 10663 阅读 · 40 评论 -
TensorFlow实现自注意力机制(Self-attention)
自注意力机制 (Self-attention) 随着自然语言处理 (Natural Language Processing, NLP) 模型(称为“Transformer”)的引入而变得流行。可以利用自注意力来观察特征图中的每个像素,并将注意力集中在更加重要的像素上。原创 2021-07-19 17:39:23 · 23735 阅读 · 67 评论 -
Python机器学习、深度学习库总结(内含大量示例,建议收藏)
目前,随着人工智能的大热,吸引了诸多行业对于人工智能的关注,同时也迎来了一波又一波的人工智能学习的热潮,虽然人工智能背后的原理并不能通过短短一文给予详细介绍,但是向所有学科一样,我们并不需要从头开始”造轮子“,可以通过使用丰富的人工智能框架来快速构建人工智能模型,从而入门人工智能的潮流。为了大家能够对人工智能常用的库有一个初步的了解,以选择能够满足自己需求的库进行学习,本博客对目前较为常见的人工智能库进行全面的介绍。原创 2021-07-16 08:34:14 · 98734 阅读 · 289 评论 -
TensorFlow2实现空间自适应归一化(Spatial Adaptive Normalization, SPADE)
GauGAN的主要创新是用于分割图的层归一化方法,称为空间自适应归一化(Spatial Adaptive Normalization, SPADE)。自此,GAN归一化家族中又添加了一个新秀归一化技术。原创 2021-07-14 18:50:56 · 6113 阅读 · 32 评论 -
Tensorflow2实现像素归一化与频谱归一化
归一化技术的改进是生成对抗网络(Generative Adversarial Networks, GAN)中众多改进的一种,本文介绍常用于当前GAN中的像素归一化(Pixel normalization, 或称为像素规范化)和频谱归一化(Spectral normalization, 或称频谱规范化),在高清图片生成中,这两种归一化技术得到了广泛使用,最后使用Tensorflow2实现像素归一化和频谱归一化。原创 2021-07-10 16:29:28 · 6483 阅读 · 49 评论 -
学会CycleGAN进行风格迁移,实现自定义滤镜
我们已经在多篇博客中讲解了有关CycleGAN的原理,同时也应用CycleGAN完成了多种有趣的应用,包括图片上色以及性别转换,那么CycleGAN在风格迁移的应用中有怎样的表现呢?在本文中我们将利用CycleGAN实现风格迁移的应用,来探索CycleGAN的更多可能性。本文利用Tensorflow2实现风格迁移。原创 2021-07-05 10:13:43 · 4789 阅读 · 117 评论 -
改进神经风格迁移
神经风格迁移使用CNN将一幅图像的艺术风格转移到另一幅图像。但神经风格迁移存在两个缺陷,首先是神经风格迁移基于神经网络训练反向传播,因此速度较慢,同时风格迁移会获取风格图像所有风格信息,包括颜色和笔触等,不能进行更好的控制。因此许多论文和应用针对原始的神经风格迁移的缺点进行了改进。学会神经风格迁移,免费获取价值百元DIY数字油画定制照片。原创 2021-07-04 10:06:32 · 10315 阅读 · 37 评论 -
TensorFlow2 实现神经风格迁移,DIY数字油画定制照片
图像可以分解为内容和风格,内容描述了图像中的构成,例如图像中的花草树木,风格是指图片的细节,例如湖面的纹理和树木的颜色。在一天的不同时间同一建筑的照片具有不同的色调和亮度,可以被视为具有相同的内容但风格不同。神经风格迁移使用CNN将一幅图像的艺术风格转移到另一幅图像。神经风格迁移仅需要两个图像——内容图像和样式图像。可以使用经过训练的CNN模型(例如VGG)将风格从风格图像迁移到内容图像上。原创 2021-07-01 10:38:43 · 10521 阅读 · 244 评论 -
BicycleGAN详解与实现
由于GAN固有的特性,诸如pix2pix、cycleGAN等都有一个缺点——图像的输出看起来几乎总是相同的,这是它学会过滤了噪声的随机性。为了进行多样化图像转换,本文详解了BicycleGAN如何解决此问题以生成更丰富的图像变化。BicycleGAN可以找到潜在编码z与目标图像B之间的关系,因此生成器可以在给定不同的z时学会生成不同的图像,BicycleGAN通过组合cVAE-GAN和cLR-GAN这两种模型来做到这一点,本文利用Tensorflow2实现BicycleGAN。原创 2021-06-25 16:05:45 · 8648 阅读 · 155 评论 -
还没有女朋友的朋友们,你们有福了,学会CycleGAN把男朋友变成女朋友
转眼又到了毕业季,还在为没有女朋友而着急么?还在为没有谈一场青春的恋爱而遗憾么?还没有女朋友的朋友们,你们有福了!!!没有女朋友,还能没有男朋友么?学会CycleGAN,把男朋友变成女朋友,赶快学起来吧。原创 2021-06-13 15:45:48 · 3654 阅读 · 181 评论 -
图文详解WGAN及其变体WGAN-GP并利用Tensorflow2实现WGAN与WGAN-GP
自GAN提出以来,许多论文尝试通过使用启发式方法(例如尝试不同的网络体系结构,超参数和优化器)来解决GAN训练的不稳定性。WGAN缓解甚至消除了许多GAN训练过程中存在的问题。相较于原始GAN的其根本的改进是对损失函数的修改。从理论上讲,如果两个分布不相交,则JS散度将不再是连续的,因此将不可微,从而导致梯度为零。 WGAN通过使用一个新的损失函数来解决此问题,该函数在任何地方都是连续且可微的!本文通过对WGAN及其变体WGAN-GP的详解与实现,介绍了解决GAN训练过程中存在问题的一种有效方法。原创 2021-05-25 15:58:05 · 18475 阅读 · 73 评论 -
生成模型应用——使用变分自编码器(VAE)控制人脸属性生成人脸图片
变分自编码器(VAE)属于生成模型家族。VAE的生成器能够利用连续潜在空间的矢量产生有意义的输出。通过潜在矢量探索解码器输出的可能属性。在VAE中,重点在于潜编码的变分推理。我们将使用VAE生成一些人脸图片,并且可以通过修改潜变量来控制人脸属性。例如,如果知道了微笑属性的方向向量,则可以将其添加到潜在变量中以在人脸图片中添加微笑表情。原创 2021-05-23 22:09:40 · 5939 阅读 · 24 评论 -
自编码器模型详解与实现(采用tensorflow2.x实现)
自编码器(autoencoder)于1980年代Geoffrey Hinton等人首次推出,自编码器的基本构建块是编码器和解码器。编码器负责将高维输入减少为一些低维潜(隐)变量。解码器是将隐变量转换回高维空间的模块。编码器-解码器体系结构还用于其他机器学习任务中,例如语义分割,其中神经网络首先了解图像表示,然后生成像素级标签。本文对自编码器的原理进行详解,同时使用tensorflow2.3.0实现自编码器模型。原创 2021-05-22 14:28:51 · 3171 阅读 · 4 评论 -
生成模型——自回归模型详解与PixelCNN构建
本位将介绍鲜为人知的自回归模型(Autoregressive models),自回归意味着我们使用模型基于模型的过去数据点来预测新数据点。尽管自回归在图像生成中并不常见,但自回归仍然是研究的活跃领域,DeepMind的WaveNet使用自回归来生成逼真的音频。在本文中,将介绍自回归模型并构建PixelCNN模型。原创 2021-05-21 14:20:12 · 14143 阅读 · 8 评论 -
新颖性搜索(Novelty Search,NS)算法详解与实现
大多数机器学习方法(包括进化算法)都基于目标函数的优化进行训练。个体性能的度量标准由适应度函数定义,适应度函数是生物体适应其环境的进化压力,适应度最高的个体更适合其环境,并且最适合于寻找解决方案。而新颖性搜索没有定义特定的适应度函数或将其用于解决方案搜索;相反,每个发现的解决方案的新颖性都会在神经进化过程中得到直接奖励。因此,所发现的解决方案的新颖性将神经进化引导至最终目标。这种方法可以独立于适应度压力来利用进化的创造力。详细介绍新颖性搜索,并通过解决迷宫导航问题来实践新颖性搜索算法。原创 2021-04-24 21:46:33 · 3229 阅读 · 5 评论 -
新颖性搜索(Novelty Search,NS)算法实践——利用NS算法解决迷宫导航问题
大多数机器学习方法(包括进化算法)都基于目标函数的优化进行训练。个体性能的度量标准由适应度函数定义,适应度函数是生物体适应其环境的进化压力,适应度最高的个体更适合其环境,并且最适合于寻找解决方案。而新颖性搜索没有定义特定的适应度函数或将其用于解决方案搜索;相反,每个发现的解决方案的新颖性都会在神经进化过程中得到直接奖励。因此,所发现的解决方案的新颖性将神经进化引导至最终目标。这种方法可以独立于适应度压力来利用进化的创造力。详细介绍新颖性搜索,并通过解决迷宫导航问题来实践新颖性搜索算法。原创 2021-04-24 21:44:37 · 7916 阅读 · 3 评论 -
神经进化算法——利用NEAT算法解决迷宫导航问题(基于NEAT-Python)
迷宫导航问题是经典的计算机问题,与创建可以在模糊环境中找到路径的自主导航智能体密切相关。迷宫环境中,面向目标的适应度函数在迷宫中接近最终目标点的死角中可以具有较大的适应度得分梯度。迷宫的这些区域成为基于目标搜索算法的局部最优解,这些目标算法可能会收敛于这些区域。利用神经进化算法NEAT来解决迷宫导航问题。基于NEAT-python利用NEAT算法得到最终的人工神经网络来控制智能体的速度和角速度,最终到达迷宫的出口点。原创 2021-04-24 15:26:11 · 8458 阅读 · 3 评论 -
Ubuntu18.04系统中python3.7安装MultiNEAT库
学习新奇搜索等进化神经算法时,需要用到MultiNEAT库,MultiNEAT支持标准的NEAT算法和两个关键的扩展:HyperNEAT和ES-HyperNEAT。另外,MultiNEAT库提供新奇搜索方法的实现。该库使用C ++编程语言编写,但提供了全面的Python接口,介绍了MultiNEAT库的安装过程,同时针对安装过程中遇到的问题和解决方法进行详细介绍。原创 2021-04-22 20:35:17 · 555 阅读 · 6 评论 -
NEAT(NeuroEvolution of Augmenting Topologies)算法详解与实践(基于NEAT-Python)
NEAT(NeuroEvolution of Augmenting Topologies, 增强拓扑的神经进化)属于神经进化算法家族,能够对神经网络的拓扑结构和连接权重进行进化。其用于进化复杂人工神经网络(Artificial neural networks, ANN),旨在通过在进化过程中逐步完善ANN的结构来减少参数搜索空间的维数。进化过程始于一群简单的基因组,并随着世代的发展逐渐增加其复杂性。本文详细介绍了NEAT算法的基本原理,并基于NEAT-python完成XOR实验来验证NEAT算法的有效性。原创 2021-04-12 19:34:23 · 9637 阅读 · 3 评论 -
深度学习与遗传算法的碰撞——利用遗传算法优化深度学习网络结构(详解与实现)
近年来,深度学习模型性能取得了飞跃,可以在单个网络中使用大量隐藏层。训练深度学习模型可能会占用大量计算资源,并且通常在图形处理单元(GPU)上进行,同时为了获得最优的模型性能,可能需要网络架构和超参数的反复修改和调整,通常此过程取决于实际问题和网络架构设计人员的经验,而利用遗传算法可以将此过程自动化,同时可以在可接受的时间开销内找到更好的网络架构。本文使用MNIST数据集和Tensorflow构建简单的全连接网络,利用遗传算法优化隐藏层数和每层的节点数,使用的原理同样适用于更复杂的网络和数据集。原创 2021-01-06 15:58:17 · 5860 阅读 · 15 评论 -
Ubuntu为julia安装深度学习框架MXNet(支持CUDA和OPenCV编译)
Ubuntu18.04为julia安装支持GPU的深度学习框架MXNet,Ubuntu为18.04,julia为1.53,安装的MXNet版本为1.5.3。原创 2020-12-16 22:02:57 · 768 阅读 · 1 评论 -
使用Julia进行图像处理--图像分割
使用Julia进行图像处理--图像分割。使用Julia的ImageSegmentation包,学习如何使用有监督和无监督的方法来简化或表示图像,使其更易于分析。有时,图像分割被称为图像识别中的第一步。原创 2020-12-10 16:38:45 · 4601 阅读 · 1 评论 -
使用Julia进行图像处理--使用形态学运算进行图像调整
使用Julia进行图像处理--使用形态学运算进行图像调整,形态学转换是应用于二进制或灰度图像的简单数学运算。它们用于消除小噪音;缩小,分离或识别对象;并增加对象大小或背景空间。原创 2020-12-09 18:32:20 · 1377 阅读 · 2 评论 -
使用Julia进行图像处理--用于扩充训练集的图像增强
使用Julia进行图像处理--用于扩充训练集的图像增强,可用于深度学习的数据增强技术,使用julia language实现,主要包括图片模糊,锐化,填充和修改图片饱和度等。原创 2020-12-09 13:16:33 · 2603 阅读 · 0 评论 -
StackGAN详解与实现(使用tensorflow2.x实现)——利用文本合成逼真的图像
StackGAN具有两个GAN堆叠在一起形成了一个能够生成高分辨率图像的网络。它分为两个阶段,Stage-I和Stage-II。 Stage-I网络生成具有基本颜色和粗略草图的低分辨率图像,并以文本嵌入为条件,而Stage-II网络获取由Stage-I网络生成的图像并生成以文本嵌入为条件的高分辨率图像。基本上,第二个网络可以纠正缺陷并添加细节,产生更逼真的高分辨率图像。原创 2020-11-03 14:34:57 · 2916 阅读 · 13 评论 -
CycleGAN详解与实现(采用tensorflow2.x实现)
源域中的图像通过变换转移到目标域,从而生成新的转换图像。使用跨域转换,可以通过转换现有图像来生成接近真实的新合成图像。与其他跨域转换算法(如pix2pix)不同,CycleGAN不需要成对的训练图像即可工作。在成对的图像中,训练数据应该是由源图像及其对应的目标图像组成的一对图像。原创 2020-10-25 12:31:24 · 5189 阅读 · 16 评论 -
变分自编码器(VAE)详解与实现(tensorflow2.x)
变分自编码器(VAE)属于生成模型家族。VAE的生成器能够利用连续潜在空间的矢量产生有意义的输出。通过潜在矢量探索解码器输出的可能属性。在VAE中,重点在于潜编码的变分推理。因此,VAE为潜在变量的学习和有效贝叶斯推理提供了合适的框架。在结构上,VAE与自编码器相似。它也由编码器(也称为识别或推理模型)和解码器(也称为生成模型)组成。 VAE和自编码器都试图在学习潜矢量的同时重建输入数据。但是,与自编码器不同,VAE的潜在空间是连续的,并且解码器本身被用作生成模型。原创 2020-10-24 20:32:14 · 3609 阅读 · 10 评论 -
StackedGAN详解与实现(采用tensorflow2.x实现)
StackedGAN提出了一种用于分解潜在表示以调节生成器输出的方法。与InfoGAN学习如何调节噪声以产生所需的输出,StackedGAN将GAN分解为GAN堆栈。每个GAN均以通常的区分生成器生成图片的方式进行独立训练,并带有自己的潜在编码。原创 2020-10-19 10:26:04 · 4078 阅读 · 5 评论 -
InfoGAN详解与实现(采用tensorflow2.x实现)
最初的GAN能够产生有意义的输出,但是缺点是它的属性无法控制。例如,无法明确向生成器提出生成女性名人的脸,该女性名人是黑发,白皙的肤色,棕色的眼睛,微笑着。这样做的根本原因是因为使用的100-dim噪声矢量合并了生成器输出的所有显着属性。如果能够修改原始GAN,从而将表示形式分为合并和分离可解释的潜在编码向量,则可以告诉生成器要合成什么。InfoGAN可以学习分离的离散编码和连续编码,以修改生成器输出属性。原创 2020-10-16 13:23:21 · 5156 阅读 · 56 评论 -
ACGAN(Auxiliary Classifier GAN)详解与实现(tensorflow2.x实现)
ACGAN的原理GAN(CGAN)相似。对于CGAN和ACGAN,生成器输入均为潜在矢量及其标签,输出是属于输入类标签的伪造图像。对于CGAN,判别器的输入是图像(包含假的或真实的图像)及其标签, 输出是图像属于真实图像的概率。对于ACGAN,判别器的输入是一幅图像,而输出是该图像属于真实图像的概率以及其类别概率。原创 2020-10-15 13:42:09 · 16678 阅读 · 3 评论 -
深度残差网络(ResNet)详解与实现(tensorflow2.x)
深层网络在学习任务中取得了超越人眼的准确率,但是,经过实验表明,模型的性能和模型的深度并非成正比,是由于模型的表达能力过强,反而在测试数据集中性能下降。ResNet的核心是,为了防止梯度弥散或爆炸,让信息流经快捷连接到达浅层。原创 2020-10-08 12:57:21 · 2541 阅读 · 0 评论 -
Ubuntu安装jupyter,启动出现ModuleNotFoundError: No module named ‘pysqlite2‘ 错误
Ubuntu安装jupyter,启动出现ModuleNotFoundError: No module named 'pysqlite2'错误原创 2020-10-03 12:26:06 · 988 阅读 · 1 评论 -
OpenCV图像处理基础(变换和去噪)
在计算机中通常使用像素矩阵表示图像,像素的位置对应图像的坐标,像素深度用于定义表示像素值的位数,图像通道在RGB色彩模式下就是指那单独的红色、绿色、蓝色部分。原创 2020-10-01 19:40:49 · 2351 阅读 · 3 评论 -
CNN训练可视化特征图(tensorflow2.x实现)
卷积层由多个卷积核组成,可以将每个卷积核视为一种特征提取方式。当一个卷积核处理图像数据后,卷积核会提取图中的特征,形成新的特征图。原创 2020-10-01 11:46:51 · 4104 阅读 · 7 评论 -
深度卷积生成对抗网络(DCGAN)原理与实现(采用Tensorflow2.x)
Ian Goodfellow 在首次提出GAN,使用了形象的比喻来介绍 GAN 模型:生成网络 G 的功能就是产生逼真的假钞试图欺骗鉴别器 D,鉴别器 D 通过学习真钞和生成器 G 生成的假钞来掌握钞票的鉴别方法。这两个网络在相互博弈中进行训练,直到生成器 G 产生的假钞使鉴别器 D 难以分辨。而DCGAN是使用卷积操作和反卷积操作来替代原始GAN中的全连接操作。原创 2020-09-30 19:05:49 · 3824 阅读 · 0 评论 -
深度学习常用性能评价指标
深度学习性能指标是用于评价深度学习模型性能的依据,是设计模型的重要依据。原创 2020-09-29 21:19:37 · 7026 阅读 · 4 评论 -
Ubuntu18.04安装python3.7.7和tensorflow-gpu 2.2.0
目前而言,对于深度学习,python还是具有相当的优势,虽然Julia在人工智能方面开始展露头角,但是python的支持度还是更好些,社区更加完善。因此,作为学习深度学习而言,python还是首选,在此基础上,进行深度学习库的选择,此分享选择tensorflow.原创 2020-07-03 20:24:06 · 3422 阅读 · 11 评论