
python与深度学习
以《深度学习入门——基于Python的理论与实现》为依托,基础学习深度学习相关知识
武松111
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
关于Python中可变参数**a的理解和三种调用方式
定义一个简单的函数如下def f(**a): print(a)**a表示若干个关键字参数a表示由若干个关键字参数构成的字典变量上述函数的作用就是打印字典变量a# 三种调用方式1.传入若干个关键字参数f(i=1,j=2) 这里的a就是由关键字参数i=1,j=2构成的字典变量{'i':1,'j':2}2.直接传入一个字典变量f(**{'i':1,'j':...原创 2020-02-14 19:21:44 · 2921 阅读 · 0 评论 -
深度学习笔记---简单三层CNN的自制框架实现以及对MNIST数据集的训练实现
# 1.简单三层CNN的简易计算图如下下面的源代码来自《深度学习入门——基于python的理论与实现》# 2.CNN类的实现import sys,ossys.path.append(os.pardir)import numpy as npfrom layers import * # 导入加权和层类Affine、激活函数层类ReLU、卷积层类Convolution、池化层...原创 2020-02-10 18:34:00 · 3357 阅读 · 1 评论 -
深度学习笔记---卷积层和池化层的实现
# 1.卷积层这里为了叙述简便,仅考虑一个数据(三维)。卷积层前向函数实现原理:将输入三维数据的每个应用滤波器的部分展平为一行得到输入数据矩阵,将每个滤波器展平为一列得到权重矩阵,再将输入数据矩阵与权重矩阵相乘得到二维的中间数据,最后将二维中间数据reshape为三维输出数据。(其中展平三维数据至二维数据用到了im2col函数。这种降维的方法可以有效利用线性代数库,以实现高效的运算)i...原创 2020-02-08 11:48:21 · 1283 阅读 · 0 评论 -
深度学习笔记---池化层简单介绍
# 1.池化的基本概念池化是缩小高、长方向上的空间的运算。下图是Max池化的一个例子,将2*2的区域集约成一个元素。上述池化过程:按照步幅为2的间隔,依次对每一个2*2的区域取最大值,并将结果存到对应位置。一般来说,池化窗口的大小会和步幅设为相同的值。除了Max池化,还有Average池化等。Average池化就是计算目标区域的平均值。但在图像识别领域,主要使用Max池化。...原创 2020-02-06 13:22:32 · 1895 阅读 · 0 评论 -
pip install 第三方库出现ReadTimeoutError: HTTPSConnectionPool
网上看了很多解决方案,很多都是用设置超时范围解决的就是这样pip --default-timeout=100 install -U 第三方库名但是我运行安装matplotlib时候只不过是运行的时间变长了,但结果依然是ReadTimeError又或者是更新pip版本,但结果依然是ReadTimeError又或者是下载安装包...(要付费...)后来我将命令改为cond...原创 2020-02-05 22:00:03 · 244 阅读 · 0 评论 -
深度学习笔记---卷积层运算
# 1.二维数据的卷积运算(对应图像的通道数为1时)直接上图最上方一行表示的是运算总过程,第一个框是输入数据,第二个框是滤波器(权重),它们之间是卷积运算符,第三个框是输出数据。后面四行展示该例卷积运算的分步骤实现:间隔一行或一列,逐步应用滤波器(应用滤波器就是将输入数据的灰框部分与滤波器进行乘积累加运算),然后将计算结果输出到对应位置。# 填充的概念在进行卷积层的处理之前...原创 2020-02-05 09:59:02 · 2666 阅读 · 1 评论 -
深度学习笔记---简单卷积神经网络的整体结构
# 1.从普通神经网络到CNN# 基于全连接层(Affine层)的5层神经网络结构图的例子# 基于CNN的5层神经网络结构图的例子从上图可见,CNN(卷积神经网络)中的计算层新增了卷积层(Convolution)和池化层(Pooling)。前3个隐藏层将Affine-ReLU结构替换成了Conv-ReLU-(Pooling)结构,最后一个隐藏层依然是Affine-ReLU结构,...原创 2020-02-03 11:42:45 · 1598 阅读 · 2 评论 -
深度学习笔记---误差反向传播法版 对MNIST数据集的二层神经网络的学习实现
# 1.神经网络的学习前提和步骤前提神经网络存在合适的权重和偏置。步骤一(挑选mini-batch)从训练数据中随机选出一部分数据,这部分数据称为mini-batch。我们的目标是减少mini-batch这部分数据的损失函数的值。步骤二(计算梯度)为了减小mini-batch这部分数据的损失函数的值,需要求出有关各个权重参数的梯度。步骤三(更新参数)将权重参数沿梯...原创 2020-01-31 16:07:20 · 1234 阅读 · 1 评论 -
深度学习笔记---在计算图思想下实现简单神经网络的各个计算层
# 1.导入在上篇博客中,例子z = (x+y)^2的计算层就是两个节点。二层神经网络利用计算图的思想可以按照如下简单表示上图中的黑色框均表示计算层,Affine表示加权和层,ReLU表示ReLU激活函数层,SoftmaxWithLoss表示Softmax激活函数和Loss损失函数的组合层。# 2.用Python实现各个计算层1.Affine层的实现求加权和的过程就...原创 2020-01-31 14:50:22 · 1031 阅读 · 0 评论 -
深度学习笔记---利用计算图的正向传播和反向传播高效地计算导数
# 1.计算图的正向传播与反向传播计算图计算图就是一种表示计算过程的数据结构图。计算图通过节点表示某种运算,用带箭头的边表示运算的方向,箭头上标有与运算相关的数据。上图就是一张计算图。正向传播上图中黑色箭头表示的就是正向传播。将输入数据x通过某种运算f转化为输出数据y,再传给下一个节点(或输出为最后结果)。反向传播上图中灰色箭头表示的就是反向传播。沿着与正向传播相反的方...原创 2020-01-30 19:13:57 · 1478 阅读 · 0 评论 -
深度学习笔记---数值微分版 对MNIST数据集的二层神经网络的学习实现
# 1.神经网络的学习前提和步骤前提神经网络存在合适的权重和偏置。步骤一(挑选mini-batch)从训练数据中随机选出一部分数据,这部分数据称为mini-batch。我们的目标是减少mini-batch这部分数据的损失函数的值。步骤二(计算梯度)为了减小mini-batch这部分数据的损失函数的值,需要求出有关各个权重参数的梯度。步骤三(更新参数)将权重参数沿梯...原创 2020-01-30 11:50:27 · 1286 阅读 · 0 评论 -
深度学习笔记---简单神经网络的求梯度介绍
先构造一个如下图所示的简单神经网络图中的直线均表示从左到右的箭头。我们的目标是求字典型变量grads,grads['W']表示损失函数关于权重W的梯度,grads['b']表示损失函数关于偏置b的梯度。如下图所示我们构造一个神经网络类simpleNet来实现求梯度的的目标,代码如下所示import sys,ossys.path.append(os.pardir)imp...原创 2020-01-29 17:41:38 · 1219 阅读 · 0 评论 -
深度学习笔记---梯度法简单介绍与实现
# 1.导入偏导数详细介绍参考百度百科https://baike.baidu.com/item/%E5%81%8F%E5%AF%BC%E6%95%B0/5536984?fr=aladdin求f(x0,x1,x2)关于x0的偏导数,就是将x1,x2看作常数再对x0求导。利用定义求偏导可用如下数学式表示这也就是数值微分。数值微分就是利用微小的差分求导数的过程。梯度详细介...原创 2020-01-29 13:19:27 · 1894 阅读 · 0 评论 -
深度学习笔记---交叉熵误差函数介绍(深度学习的指标)
# 1.导入机器学习中,一般将数据分为训练数据和测试数据两部分来进行学习和实验。首先,使用训练数据进行学习,寻找最优的参数;然后,使用测试数据评价训练得到模型的实际能力。神经网络的“学习”是指从训练数据中自动获取最优权重参数的过程。损失函数是表示神经网络性能“恶劣程度”的指标,即当前神经网络对监督数据(训练数据)多大程度上不拟合。简单来讲,就是损失函数值越小,代表权重参数越优。...原创 2020-01-28 19:04:52 · 2594 阅读 · 0 评论 -
深度学习笔记---对MNIST数据集实现神经网络的推理处理
# 1.简要概述对MNIST数据集的介绍与使用以及三层神经网络的推理实现,前面的文章已分别有详细介绍。本篇博客例子中使用到的神经网络依然是三层神经网络,不过各层的神经元数根据应用实例有所变化。输入层有784个神经元,对应一张图像的784个像素。(MNIST数据集中图像大小为28*28=784)输出层有10个神经元,对应数字0到9这十个分类。隐藏层1有50个神经元,隐藏层2有10...原创 2020-01-28 14:12:18 · 2185 阅读 · 1 评论 -
深度学习笔记---MNIST数据集的介绍以及下载使用
# 1.MNIST数据集简介1.MNIST数据集即MNIST手写数字图像集,是机器学习领域非常经典的一个数据集。2.MNIST数据集由0到9的数字图像构成。训练图像有六万张,测试图像有一万张。这些图像可以用于学习和推理。3.MNIST的图像数据是28px*28px的灰度图像,各个像素的取值在0到255之间。每个图像都相应地标有“0”、“1”、“2”、“3”、“4”、“5”...等标签。...原创 2020-01-28 11:58:43 · 5835 阅读 · 4 评论 -
深度学习笔记---三层神经网络的推理过程实现(前向处理)
# 1.三层神经网络推理过程示意图上图从左到右依次是输入层、隐藏层1、隐藏层2和输出层。由于有权重的只有三层,故称之为三层神经网络。x1,x2表示整个神经网络的输入信号,y1,y2表示整个神经网络的输出信号。内含1的神经元以及bij标识是为了表示偏置,bij表示第i层偏置的第j个元素。比较大的神经元中aij表示它的输入信号,zij表示它的输出信号。图中的直线均表示从左到右的箭头,各...原创 2020-01-27 15:55:28 · 3547 阅读 · 0 评论 -
深度学习笔记---神经网络输出层的激活函数简介
# 1.导入神经网络可以用在分类问题和回归问题上。分类问题:数据属于哪一个类别的问题。 回归问题:根据某个输入预测一个数值(连续的)的问题。一般而言,分类问题用softmax函数,回归问题用恒等函数。# 2.恒等函数的介绍及其实现恒等函数会将输入按原样输出。恒等函数的实现如下:def identity_function(a): return a# 3.softm...原创 2020-01-27 14:24:01 · 2224 阅读 · 0 评论 -
深度学习笔记---激活函数介绍(从感知机到神经网络)
# 1.导入感知机的数学式可以如下表示:上述h(x)函数会将输入信号的总和转换为输出信号。这就是一种激活函数。激活函数的作用在于决定如何来激活输入信号的总和。上述激活函数h(x)被称为阶跃函数,输出的切换是很剧烈的很突然的。如果将激活函数从阶跃函数换成其他平滑变化的函数,就进入神经网络范畴了。# 2.sigmoid函数简介及其实现神经网络中经常使用的一个激活函数就是如下...原创 2020-01-26 17:05:23 · 1137 阅读 · 0 评论 -
深度学习笔记---感知机简单概述
感知机是具有输入和输出的一个算法。感知机将权重和偏置设定为参数。# 一个具体的单层感知机的介绍该感知机的图形化表示:该感知机的数学式表示:该感知机接收x1,x2两个输入信号,输出y。b是被称为偏置的参数,用于控制神经元被激活的容易程度;而w1和w2是表示各个信号的权重的参数,用于控制各个信号的重要性。# 关于感知机的一些其他概念1. 感知机可以表示与门和或门等逻...原创 2020-01-26 15:25:29 · 385 阅读 · 0 评论 -
深度学习笔记---Matplotlib的简单应用
在深度学习的实验中,图形的绘制和数据的可视化非常重要。Matplotlib是用于绘制图形的库,使用Matplotlib可以轻松地绘制图形和实现数据的可视化。# 1.绘制简单图形我们通常使用matplotlib的pyplot模块绘制图形。下面是一个绘制sin函数曲线的例子。import numpy as npimport matplotlib.pyplot as plt # 将mat...原创 2020-01-26 12:25:40 · 315 阅读 · 0 评论 -
深度学习笔记---NumPy数组
NumPy的数组类(numpy.array)中提供了很多便捷的方法,在实现深度学习时,我们将使用这些方法。# 1.导入NumPyimport numpy as np这条语句就是“将numpy作为np导入”的意思。通过写成这样的形式,之后NumPy相关的方法均可通过np来调用。# 2.生成NumPy数组A = np.array([1,2,3])np.array()接收Py...原创 2020-01-26 11:43:21 · 657 阅读 · 0 评论