![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
人工智能与机器学习
文章平均质量分 77
w²大大
这个作者很懒,什么都没留下…
展开
-
神经网络量化与反量化( int8与float32之间的转换)+C语言实现
神经网络量化与反量化(int8与float32之间的转换)一、背景知识量化反量化一、背景知识量化并不是什么新知识,我们在对图像做预处理时就用到了量化。回想一下,我们通常会将一张 uint8 类型、数值范围在 0~255 的图片归一成 float32 类型、数值范围在 0.0~1.0 的张量,这个过程就是反量化。类似地,我们经常将网络输出的范围在 0.0~1.0 之间的张量调整成数值为 0~255、uint8 类型的图片数据,这个过程就是量化。所以量化本质上只是对数值范围的重新调整,可以「粗略」理解为是一原创 2021-11-15 10:36:32 · 23597 阅读 · 3 评论 -
python+tensorflow对mnist数据集的神经网络训练和推理 加参数提取(图片、权重、偏置)----规范版
python+tensorflow对mnist数据集的神经网络训练和推理 加参数提取----规范版一、数据集获取二、训练1.前向传播2.反向传播三、预测四、参数提取1.权重和偏置2.图片参数提取(归一化)五、完整工程下载一、数据集获取extract_mnist.pyfrom tensorflow_core.examples.tutorials.mnist import input_datafrom scipy import miscimport numpy as npimport osmni原创 2021-11-05 20:15:32 · 1064 阅读 · 0 评论 -
全连接神经网络用C语言实现
全连接神经网络用C语言实现一、分析输入输出二、分析神经网络层数三、分析神经元数量四、分析参数数量五、分析传递过程连接方式六、代码框架七、完整代码实现:关于参数的获取:已经在上篇博客中提出,请参照相关链接请点击一、分析输入输出1、手写体输入为28x28的黑白图片,所以输入为784个x2、输出为识别0-9的数字的概率,所以有10个输出3、输入只能是-1~1的小数,主要是防止计算溢出二、分析神经网络层数如果只是一层,输入784,输出10,中间能记录的神经元只能是10个,很难达到识别0-9这10个数字原创 2021-10-29 09:44:17 · 2232 阅读 · 0 评论 -
python+tensorflow对mnist数据集的神经网络训练和推理 加参数提取(图片、权重、偏置)----简易版
python+tensorflow对mnist数据集的神经网络训练和推理 加参数提取一、数据集的获取python+tensoflow的训练三、预测predict四、参数提取成 c头文件的形式(例:input_0.h)①权重和偏置的提取②图片参数保存一、数据集的获取from tensorflow_core.examples.tutorials.mnist import input_datafrom scipy import miscimport numpy as npimport os#获取数原创 2021-10-29 09:29:36 · 2158 阅读 · 0 评论 -
Pytorch深度学习(九):卷积神经网络跑Minst数据集
卷积神经网络(Minst数据集)一、代码实现(CPU版)二、代码实现(GPU版)用一下例子来表示:一、代码实现(CPU版)import torchfrom torchvision import transformsfrom torchvision import datasetsfrom torch.utils.data import DataLoaderimport torch.nn.functional as Fimport torch.optim as optim#1.准备数据集原创 2020-08-25 14:23:12 · 1273 阅读 · 1 评论 -
Pytorch深度学习(八):用Softmax和CrossEntroyLoss解决多分类问题(Minst数据集)
用Softmax和CrossEntroyLoss解决多分类问题(Minst数据集)一.SoftMax分类器1.函数原型:2.上述例子用Numpy实现:3.用pytorch实现4.设置batch_size为3时做的一个简单分类模型:二、完成MNIST识别手写体数字1.准备数据集2.构建训练模型class3.构造损失函数和优化器4.训练和测试5.运行结果如下:一.SoftMax分类器1.函数原型:这是我们常见的一个神经网络模型。在输出的时候我们常常会遇到多分类问题,这时就需要我们应用Softmax函数来原创 2020-08-24 15:53:43 · 2662 阅读 · 1 评论 -
Pytorch深度学习(七):加载数据集
加载数据集一、概念二、实现代码:一、概念数据集和数据加载器(Dataset and DataLoader)我们在以前讲解的例子中因为我们的数据集比较小,所以我们把所有的数据就直接不做任何处理就进行相关的训练也是可以的,但是如果我们的数据集比较大,就需要对数据集进行相关的操作才能提高我们的效率。如上图,我们可以先对数据进行shuffle(即进行打乱顺序),然后把这些数据加载并且将其分为不同的batch以下是相关概念的解释:二、实现代码:import torchfrom torch.util原创 2020-08-24 11:12:49 · 1858 阅读 · 0 评论 -
Pytorch深度学习(六):多维特征的输入
多维特征的输入一、概念二、完整实现代码:一、概念我们来看看多维输入(Multiple Dimension Input),我们先看看多维Logistic回归模型:假设我们有一个8维的输入,于是就可以改变我们的Logistic回归模型。运用相关矩阵的知识我们便可以分析出Z矩阵的相关维度,并且b矩阵可以运用广播机制来参与相关的运算。下面是对糖尿病病人的病情进行预测,预测未来是否会加重。输入有8个指标,也就是8个维度,输出只有一个维度即是否加重病情。维度的变化其实就是线性代数中矩阵乘法的作用:[m原创 2020-08-21 17:01:23 · 1869 阅读 · 0 评论 -
Pytorch深度学习(五):Logistic 回归(实现二分类)
Logistic回归实现二分类一、概念二、完整代码如下:三、测试模型一、概念从下面的例子来进行,假设只要得到一定分数就可以看作可以通过考试:相当于我们不再预测学习4小时可以得到的成绩,而是判断学习4小时是否可以通过考试。在分类中,模型的输出是输入属于确切类别的概率。我们可以引入sigmond函数:可以进行归一化处理,方便我们可以进行相关的分类任务。Loss Function也发生了上述的变化。我们也可以使用mini-batch二、完整代码如下:import torch#1.准原创 2020-08-21 15:41:05 · 2296 阅读 · 0 评论 -
Pytorch深度学习(四):用Pytorch实现线性回归
用Pytorch实现线性回归一、概念1.准备数据集2.使用Class设计模型3.构建损失函数和优化器的选择4.进行训练的迭代。二、完整代码如下:一、概念上图主要介绍了使用Pytorch解决问题的四个步骤:1.准备数据集#1.准备数据集x_data = torch.Tensor([[1.0],[2.0],[3.0]])y_data = torch.Tensor([[2.0],[4.0],[6.0]])2.使用Class设计模型#2.使用Class设计模型class LinearMod原创 2020-08-21 11:45:23 · 3114 阅读 · 3 评论 -
Pytorch深度学习(三):反向传播
反向传播一、概念二、代码如下:一、概念Tensor:data 和 gradw.dataw.grad.data:数值计算,不构建计算图。w.grad.item():取出数值。w.grad.data.zero():清零。训练的目的,是为了让损失更小,即在训练过程中不断更新ω的值,以使得loss最小。所以我们在梯度下降的过程中,就是观察,并使其取向最小的趋势训练。根据上一节我们可以得到一般简单的线性更新计算的解析式为:Update为:其中,α称为学习率。(采用贪心策略)对应的Loss F原创 2020-08-20 16:30:34 · 21294 阅读 · 5 评论 -
Pytorch深度学习(二):梯度下降算法和随机梯度下降
梯度下降算法和随机梯度下降一、梯度下降算法1.概念:2.代码如下:二、随机梯度下降1.演变过程2.代码如下一、梯度下降算法1.概念:梯度下降法简单来说就是一种寻找目标函数最小化的方法。在神经网络中,局部最优点比较小,但是会存在很多的鞍点,即g=0,此时就很难再进行迭代。因此,鞍点是深度学习当中最需要解决的难点。计算梯度:最后获得更新后的w,其中α是学习率2.代码如下:import numpy as npimport matplotlib.pyplot as pltx_data =原创 2020-08-20 12:16:18 · 663 阅读 · 0 评论 -
Pytorch深度学习(一):线性模型
线性模型一、线性模型概念二、实现代码如下:三、运行结果一、线性模型概念Linear Model : y=x*ω机器会随机生成一个a random guess,ω = random value找一个评估模型LOSS,用loss来评价预测模型与已知模型之间的差别。试图找mean loss(平均损失值)趋于0MSE(Mean Square Error)平均平方误差:cost(代表所有样本的平均损失误差)二、实现代码如下:import numpy as npimport matplotl原创 2020-08-20 11:32:44 · 408 阅读 · 0 评论 -
python+基于Jupyter notebook完成卷积神经网络和Dlib的笑脸识别+口罩识别
这里写自定义目录标题一、理解人脸图像特征提取的各种方法(至少包括HoG、Dlib和卷积神经网络特征);1.HOG①HOG定义:②HOG提取的图像信息③HOG算法的基本流程2.Dlib①Dlib实现的人脸检测方法便是基于图像的Hog特征,结合支持向量机算法实现的人脸检测功能。该算法的大致思路如下:③卷积神经网络特征二、 掌握笑脸数据集(genki4k)正负样本的划分、模型训练和测试的过程(至少包括SVM、CNN),输出模型训练精度和测试精度(F1-score和ROC);三、完成一个摄像头采集自己人脸、并对表情原创 2020-07-05 20:15:06 · 5966 阅读 · 0 评论 -
windows10 显卡GTX1060+Anaconda安装tensorflow-gpu教程: win10+CUDA9.2+CUDNN9.2+tensorflow1.8.0
windows10 显卡GTX10660安装tensorflow-gpu教程: win10+CUDA9.2+CUDNN9.2+tensorflow1.8.0一、安装cuda9.2二、安装cudnn9.2三、配置cuda环境变量四、安装Anaconda3(已安装的可以跳过这一步)五、安装tensorflow-gpu1.在命令行中使用命令:conda create -n tensorflow-gpu python=3.6 安装python3.6 的tensorflow-gpu环境,可以在Anaconda/env原创 2020-06-10 23:58:49 · 952 阅读 · 0 评论 -
windows10(64位)Anaconda3+Python3.6搭建Tensorflow(cpu版本)及keras+用Jupyter notebook运行Kaggle狗猫数据集+提高模分类模型精度
windows10(64位)Anaconda3+Python3.6搭建Tensorflow(cpu版本)及keras一、安装TensorFlow1.打开Anaconda Prompt2.要安装TensorFlow的纯CPU版本,输入以下命令:(激活下)3.查看目前安装了哪些环境,确保名叫tensorflow的环境已经被成功添加:二、安装keras一、安装TensorFlow1.打开Anaconda Promptconda --version //检查Anaconda是否成功安装(如果成功会显示版本原创 2020-06-10 00:49:26 · 1292 阅读 · 3 评论 -
解决:执行pip install --ignore-installed --upgrade tensorflow 出现ModuleNotFoundError: No module named pip
问题:File “E:\MyDownloads\Anaconda3\Anaconda3\envs\tensorflow\Scripts\pip-script.py”, line 6, in from pip._internal.cli.main import mainModuleNotFoundError: No module named ‘pip._internal.cli.main’这个命令,没有成功,权限不够,然后就没有打算继续更新。殊不知,这个操作好像已经把我的pip中的包或者是pip直接删掉了,原创 2020-06-09 21:15:39 · 4656 阅读 · 0 评论 -
支持向量机(SVM算法)详细讲解
SVM算法一、线性数据处理1、未标准化的原始数据显示2、决策边界绘制3、再次实例化一个SVC,并传入一个较小的 CC二、非线性数据处理1、生成月亮数据(1)月亮数据生成(2)月亮数据显示2、增加噪声点3、通过多项式特征的SVM分类4、高维空间线性SVM处理三、核函数1.核函数定义2.高斯核函数定义3.测试数据集生成4、数据集升维处理四、超参数1、超参数定义2、生成数据集3、定义一个RBF核的SVM4、修改γγγ值(1)γγγ=100(2)γγγ=10(3)γγγ=0.15、预测准确度一、线性数据处理1、原创 2020-05-25 21:17:44 · 2153 阅读 · 0 评论 -
基于Jupyter 对鸢尾花数据集和月亮数据集,分别采用线性LDA、k-means和SVM算法进行二分类可视化分析(python)
对鸢尾花数据集和月亮数据集,分别采用线性LDA、k-means和SVM算法进行二分类可视化分析.原创 2020-05-19 09:45:33 · 1822 阅读 · 1 评论 -
基于Jupyter 完成聚类输出可视化效果+Excel数据处理输出分布饼图
基于Jupyter 完成聚类输出可视化效果+Excel数据处理输出分布饼图一、根据计科18大类学生的成绩数据(选取两个特征:1、平均成绩GPA; 2、面向对象程序设计成绩),将计科18大类学生分成 3~4个类型。将其可视化显示出来二、根据18级物联网分流名单,计算物联1801、物联1802两个班的学生的学生类型占比,输出物联18两个班的学生类型分布饼图。一、根据计科18大类学生的成绩数据(选取两个特征:1、平均成绩GPA; 2、面向对象程序设计成绩),将计科18大类学生分成 3~4个类型。将其可视化显示出原创 2020-05-13 17:04:38 · 6952 阅读 · 1 评论 -
Fisher判别的推导概念和过程+python代码实现(三分类)
python代码完成Fisher判别的推导一、Fisher算法的主要思想二、Fisher数学算法步骤①计算各类样本均值向量mim_imi,mim_imi是各个类的均值,NiN_iNi是wiw_iwi类的样本个数。②计算样本类内离散度矩阵SiS_iSi和总类内离散度矩阵SwS_wSw③计算样本类间离散度矩阵SbS_bSb④求投影方向向量 WWW (维度和样本的维度相同)。我们希望投影后...原创 2020-05-05 09:56:33 · 4577 阅读 · 0 评论 -
用Jupyter notebook完成Iris数据集的 Fisher线性分类,并学习数据可视化技术
这里写自定义目录标题一、关于Fisher算法的主要思想与数学计算步骤已在上次博客中有讲到。二、用scikit-learn库中也有LDA的函数,下面给出测试代码三、完成Iris数据集的 Fisher线性分类,及实现可视化一、关于Fisher算法的主要思想与数学计算步骤已在上次博客中有讲到。若不会清楚,请访问次链接二、用scikit-learn库中也有LDA的函数,下面给出测试代码from s...原创 2020-05-04 18:33:14 · 843 阅读 · 0 评论 -
Fisher(LDA)判别的推导+python代码实现二分类
Fisher判别的推导一、Fisher算法的主要思想二、Fisher数学算法步骤①计算各类样本均值向量mim_imi,mim_imi是各个类的均值,NiN_iNi是wiw_iwi类的样本个数。②计算样本类内离散度矩阵SiS_iSi和总类内离散度矩阵SwS_wSw③计算样本类间离散度矩阵SbS_bSb④求投影方向向量 WWW (维度和样本的维度相同)。我们希望投影后,在一维YYY空间里...原创 2020-05-04 18:09:40 · 5535 阅读 · 2 评论 -
机器学习中模型评估与旋转概念及利用Jupyter编程完成对手写体Mnist数据集中10个字符 (0-9)的分类识别
机器学习概念及分类识别一、阅读“机器学习”(周志华著)第二章“模型评估与旋转”,理解“查准率”、“查全率”、“F1-Score”、“ROC”、“混淆矩阵”的定义。1.查准率定义2.查全率定义3.F1-Score定义4.ROC定义5.混淆矩阵定义二、学习“机器学习实战”第三章-分类器,Jupyter编程完成对手写体Mnist数据集中10个字符 (0-9)的分类识别1.使用sklearn的函数来获取M...原创 2020-04-26 23:18:06 · 792 阅读 · 0 评论 -
凸优化基础概念解释
凸优化基础一、计算几何是研究什么的?二、计算几何理论中(或凸集中)过两点的一条直线的表达式,是如何描述的?与初中数学中那些直线方程有什么差异?有什么好处?(按自己的体会)三、凸集是什么? 直线是凸集吗?是仿射集吗?四、三维空间中的一个平面,如何表达?五、更高维度的“超平面”,如何表达?六、什么是“凸函数”定义?什么是Hessen矩阵? 如何判别一个函数是凸函数?f(x)=x^3 函数是凸函数吗?七...原创 2020-04-22 19:11:27 · 1057 阅读 · 0 评论 -
基于Jupyter 实现python对拉格朗日和KKT条件求极值
python对拉格朗日和KKT条件求极值一、拉格朗日乘子法和KKT条件是两种最常用的方法概念二、手工推导方法三、利用python代码实现四、分析一、拉格朗日乘子法和KKT条件是两种最常用的方法概念求解最优化问题中,拉格朗日乘子法和KKT条件是两种最常用的方法。在有等式约束时使用拉格朗日乘子法,在有不等式约束时使用KKT条件。这个最优化问题指某一函数在作用域上的全局最小值(最小值与最大值可以相互...原创 2020-04-20 16:42:56 · 1601 阅读 · 0 评论 -
基于Jupyter python实现梯度下降和最小二乘法
实现梯度下降和最小二乘法一、利用梯度下降算法求解多元线性回归方程梯度下降法 (Gradient Descent)二、最小二乘法法求解多元线性回归方程的python代码实现最小二乘法概念:三、分析一、利用梯度下降算法求解多元线性回归方程梯度下降法 (Gradient Descent)接下来我们使用梯度下降法来求解上文中的目标函数 J(θ) ,步骤如下1.随机初始化 θ2.沿着负梯度方向...原创 2020-04-04 22:48:14 · 733 阅读 · 0 评论