神经网络
文章平均质量分 75
迪迦 • 奥特曼
C/C++ coder
展开
-
MLP(多层感知机)只是CNN(卷积网络)的一个特例
很多书或论文也将MLP和CNN区别开来,但是实际MLP只是CNN的一个特例,也就是说MLP本身也是CNN,以下为简要的论述。上图为CNN的计算过程,这里的输入为 3x3 的图片,卷积核大小也为 3x3 ,这里的stride为0,计算公式为:下图为MLP的计算过程(为了方便MLP的计算过程图权重W被拆开了实际为9x3的矩阵,而输入计算时应该先转置,输出也是需要转置,即 1x9 dot 9x3 = 1x3)计算公式为(点号为点乘,dot)上面我们可以看到,CNN和MLP计算过程实际对应数值标号是转载 2021-03-12 16:47:38 · 3854 阅读 · 0 评论 -
AttributeError: ‘str‘ object has no attribute ‘decode‘ in keras when load model
错误是因为h5py的版本太高了导致的,降版本可以解决,例如pip install h5py==2.10.0转载 2021-03-10 10:35:59 · 963 阅读 · 0 评论 -
scikit-learn 之 kNN 分类
导语:scikit-learn是Python中一个功能非常齐全的机器学习库,本篇文章将介绍如何用scikit-learn来进行kNN分类计算。不费话from sklearn import neighbors开始吧。功能详解本篇中,我们讲解的是 scikit-learn 库中的 neighbors.KNeighborsClassifier,翻译为 k 最近邻分类功能,也就是我们常说的 kNN,k-nearest neighbors。首先进行这个类初始化:neighbors.KNeighborsClas转载 2021-03-08 12:14:40 · 1297 阅读 · 0 评论 -
高斯模糊的算法(高斯卷积 高斯核)
通常,图像处理软件会提供"模糊"(blur)滤镜,使图片产生模糊的效果。“模糊"的算法有很多种,其中有一种叫做"高斯模糊”(Gaussian Blur)。它将正态分布(又名"高斯分布")用于图像处理。本文介绍"高斯模糊"的算法,你会看到这是一个非常简单易懂的算法。本质上,它是一种数据平滑技术(data smoothing),适用于多个场合,图像处理恰好提供了一个直观的应用实例。一、高斯模糊的原理所谓"模糊",可以理解成每一个像素都取周边像素的平均值上图中,2是中间点,周边点都是1。“中间点"转载 2021-03-08 11:17:48 · 464 阅读 · 0 评论 -
交叉熵-机器学习
在介绍交叉熵损失函数之前, 我们首先来介绍信息学中熵(Entropy)的概念。1948 年,Claude Shannon 将热力学中熵的概念引入到信息论中, 用来衡量信息的不确定度。 熵在信息学科中也叫信息熵,或者香农熵。 熵越大,代表不确定性越大,信息量也就越大。 某个分布 P(i)P(i)P(i) 的熵定义为H(P)=−∑p(i)log2P(i)H(P) = -\sum p(i)log_2P(i)H(P)=−∑p(i)log2P(i)实际上, H(P)H(P)H(P)也可以使用其他底数的lo转载 2021-03-03 11:54:43 · 258 阅读 · 0 评论 -
从Keras开始掌握深度学习-6 如何使用训练好的模型
前言在使用Keras编程的时候,我们往往会将更多的精力放在如何解决实际的问题上面。由于Keras高层封装的好处,大部分低级的错误都被避免了,对学习来说减少了大量调试找错的时间。那么在前面几篇文章里面,我们讲了如何使用Keras实现一个卷积网络的模型,并且通过TensorBoard来可视化模型训练过程,从而进行对模型的优化工作。那么现在则是时候将我们训练好的模型投入使用了。保存模型在Keras中,训练好的模型可以通过model.save来将这个模型保存下来。在程序的最后加入如下代码来将模型保存下来:转载 2021-02-23 11:24:36 · 4529 阅读 · 0 评论 -
从Keras开始掌握深度学习-5 优化你的模型
前言在第3篇教程里面,我们所编写的CNN进行分类的模型准确度达到了80%。对于一个分类模型来说,80%的准确率不算很低了。但是,在现有的情况下,我们应该如何优化这个模型呢?在从零开始机器学习的系列里面,理论上的优化模型可以修改超参数。同样,在Keras的这个CNN程序中,我们可以指定其他的优化器(这里用的是ADAM)。修改卷积核大小、步长、修改激活函数的类型、加入/取消全连接层、修改每个层有多少神经元也是可行的方法。面对这么多可以修改的地方,修改现有的程序是必定需要做的。修改现有的程序首先确定要修转载 2021-02-23 11:19:15 · 419 阅读 · 0 评论 -
从Keras开始掌握深度学习-4 通过TensorBoard分析模型
前言TensorBoard是一个机器学习的可视化工具,能够有效地展示Tensorflow在运行过程中的计算图、各种指标随着时间的变化趋势以及训练中使用到的数据信息。通过使用TensorBoard,可以将训练过程中评价指标与训练次数绘制成折线图,从而观察诸如准确率提高的过程或损失下降的过程。同时,当我们更改模型的超参数(LearningRate等)时,TensorBoard还可以将不同的超参数对应的折线图分类,可以更加直观地观察超参数的选取对模型训练的影响。准备代码我们上一讲成果地编写了一个卷积网络的转载 2021-02-23 11:14:27 · 550 阅读 · 0 评论 -
从Keras开始掌握深度学习-3 实现卷积神经网络
前言在了解了卷积网络之后,不难发现,基本上所有的卷积网络都是按照:"卷积层->池化层->卷积层->池化层…->全连接层->输出层"这样的形式进行堆叠排列的。这样的层级结构在Keras中使用Sequential模型来实现极为方便。在Keras中实现卷积网络首先,卷积网络是神经网络的一种,因此卷及网络中需要有各种层与激活函数。这些层有全连接层(Dense Layer)、卷积层(Conv Layer)和池化层(Pooling Layer),因此需要导入Keras的Layers包转载 2021-02-23 11:04:46 · 453 阅读 · 0 评论 -
从Keras开始掌握深度学习-2 准备你的数据集
前言2013年的时候,Kaggle发布了这样的一个挑战(https://www.kaggle.com/c/dogs-vs-cats):In this competition, you’ll write an algorithm to classify whether images contain either a dog or a cat. This is easy for humans, dogs, and cats. Your computer will find it a bit more di转载 2021-02-23 10:58:52 · 260 阅读 · 0 评论 -
从Keras开始掌握深度学习-1 环境搭建与简单入门
什么是Keras,为什么要学Keras在学习深度学习的过程中,有些人用的是MatLab,有些人用的Python。而使用Python的同学必定也用过Tensorflow、PyTorch这些机器学习库。但通过Tensorflow等这些库来实现我们的深度学习模型的时候仍然需要大量的编程,对诸如前向传递、后向传递、优化算法等方法都要自己去通过编程实现。这对于初学者来说简直就是噩梦一样。相比来说,Keras是一个高层神经网络API,Keras由纯Python编写而成并基Tensorflow、Theano以及CNT转载 2021-02-23 10:49:51 · 410 阅读 · 0 评论 -
多维张量的几何理解
Tensor是Tensorflow中最基础的数据结构,常常翻译为张量,可以理解为n维数组或矩阵,相关函数:constant(value, dtype=None, shape=None, name='Const', verify_shape=False)0、零维张量import tensorflow as tf#零维张量const0 = tf.constant(1, tf.float16)print(const0)运行结果:Tensor("Const:0", shape=(), dty转载 2021-02-13 20:35:51 · 506 阅读 · 0 评论 -
偏导数的几何意义
偏导Pz/Px的几何意义Pz/Px是:通过该点且与ZOX平面平行的平面与Z(x,y)的交线上,该点切线的斜率。偏导Pz/Py的几何意义Pz/Py是:通过该点且与ZOY平面平行的平面与Z(x,y)的交线上,该点切线的斜率。当然,前提条件是在该点有偏导存在。偏导数是图中的两条切线的斜率(见教材:同济大学《高等数学》第五版下册15页):...转载 2019-04-03 09:37:30 · 32206 阅读 · 1 评论