
深度学习
文章平均质量分 84
此生辽阔
这个作者很懒,什么都没留下…
展开
-
微表情识别代码解读
str.format()方法的基本用法如下所示:>>> print 'We are the {} who say "{}!"'.format('knights', 'Ni')We are the knights who say "Ni!"花括号及其中的字符(称为格式字段)将被替换为传递给str.format()方法的对象。括号中的数字指传递给str.format()方法的对象的位置。>>> print '{0} and {1}'.format('spam', '原创 2021-03-15 23:24:27 · 1097 阅读 · 0 评论 -
尚学堂-卷积神经网络课程学习
人工智能开发课程之十二 卷积神经网络、CNN架构图与识别图片,LeNet5架构经过卷积,上一层的跟卷积核一样大的区域映射为下一层的一个点。每经过一个卷积层,都会把图片里面的信息进行整合,归纳总结,把一堆像素点整合计算形成一个像素点,经过多层卷积之后,把结果给全连接层卷积之后的结果叫特征图(feature map)不同的卷积核代表用不同的视角分析图片卷积核里的值相当于连线上面的权重,特征图是卷积层的输出,就相当于特征图上的一个像素和输入的9个像素相连池化没有权重(最大池化是直接判断的,平均池化就原创 2020-11-03 23:54:16 · 508 阅读 · 0 评论 -
PyTorch深度学习实践(十三)循环神经网络高级篇
用RNN做一个分类器,现在有一个数据集,数据集里有人名和对应的国家,我们需要训练一个模型,输入一个新的名字,模型能预测出是基于哪种语言的(18种不同的语言,18分类),在自然语言处理中,通常先把词或字编程一个one-hot向量,one-hot向量维度高,而且过于稀疏,所以一般来说呀先通过嵌入层(Embed)把one-hot向量转化成低维的稠密向量,然后经过RNN,隐层的输出不一定和最终要求的目标一致,所以要用一个线性层把输出映射成和我们的要求一致,我们的需求是输出名字所属的语言分类,我们对01-05这些原创 2020-10-24 11:18:41 · 1657 阅读 · 0 评论 -
秒懂神经网络系列课程笔记
秒懂神经网络(共二十一节)1人工神经网络VS生物神经网络人工神经网络通过正向和反向传播更新神经元,从而形成一个更好的神经系统,本质上是一个能让计算机处理和优化的模型生物神经网络通过刺激产生新的连接,让信号通过新的连接传递而形成反馈2什么是神经网络现代神经网络是一种基于统计学的数据建模工具,常用来对输入和输出间复杂的关系进行建模,或用来探索数据的模式神经网络是一种计算模型,由大量的结点和节点之间的联系构成,正如人类神经系统中的神经元,负责传递信息和加工信息,神经元也可以被训练或者强化,形成固定的神原创 2020-10-11 23:59:52 · 268 阅读 · 0 评论 -
最是不胜清怨
每一个卷积核只能提取到到一个特征。所以,卷积层会有多个卷积核,来提取不同种类的特征。假设现在原图的大小为 10 × 10,使用卷积核的大小为3 × 3,卷积核的个数为 5 个,用来提取 5 个不同的特征,那么得到的特征图大小为 8×8(10-3+1),如果使用padding 方法,那么得到的特征图为10 × 10,但是,在运算过程中卷积核所使用的权重参数的个数仅仅为:3 × 3 × 5 = 45个权重参数。我们大部分人都是在后知后觉中发现这个问题很简单,但是只有大神才能做先驱者!LeNet首次把卷积的思原创 2020-09-11 19:29:38 · 328 阅读 · 0 评论 -
CNN笔记
大白话讲解卷积神经网络工作原理卷积神经网络可以用来处理图像,音频,文本,只要数据能变成图像格式,它都能处理可以把卷积神经网络堪称一个函数或者是黑箱,有输入和输出,输入就是二维的像素阵列(图片),输出就是图片是什么从下图可以看出,左边的图经过某些变换得到了右边的图,但是右边的图中任然保留了一些原来的特征计算机通过这些特征来发现它和原图的相似性比如把3个特征提取出来叫做一个卷积核(或者叫特征提取器),假设要提取原图的这3种特征如果用左上角这个卷积核对原图进行卷积操作,就相当于把原图中包含这种卷积原创 2020-10-09 22:24:38 · 259 阅读 · 0 评论 -
卷积神经网络(CNN)
Fukushima在感受野概念的基础之上提出了神经认知机的概念,可以看作是卷积神经网络的第一个实现网络卷积神经网络(Convolutional Neural Networks, CNN)是多层感知机(MLP)的变种感受野:视觉皮层的细胞存在一个复杂的构造。这些细胞对视觉输入空间的子区域非常敏感,我们称之为感受野CNN由纽约大学的Yann LeCun于1998年提出。CNN本质上是一个多层感知机,其成功的原因关键在于它所采用的局部连接和共享权值的方式,一方面减少了的权值的数量使得网络易于优化,另一方面降原创 2020-09-30 22:17:28 · 4539 阅读 · 0 评论 -
如何入门人工智能?AI学习路线推荐
python:小甲鱼(b站)/ 慕课网机器学习:吴恩达(Coursera/b站)liuyubobobo(慕课网)深度学习:吴恩达(Coursera/b站)pytorch:七月褚则伟(b站)IBM AI(Coursera)计算机视觉:斯坦福CS231n(b站)自然语言处理: 斯坦福CS224n(b站)CV顶会:CVPR/ICCV/ECCVNLP顶会:ACL/EMNLP/NAACL基础的算法和数据结构Coursera上有哪些课程值得推荐: https://www.zhihu.com/que原创 2020-09-05 21:57:14 · 386 阅读 · 0 评论 -
PyTorch深度学习实践(十二)循环神经网络基础篇
对线性层的复用Dense网络:稠密网络RNN专门用来处理带有序列模式的数据,也使用权重共享减少需要训练的权重的数量RNN Cell本质是一个线性层,把一个维度映射到另一个维度循环神经网络的激活函数用的是tanh,因为tanh的取值在-1到+1之间把RNN Cell以循环的方式把序列(x1,x2,…)一个一个送进去,然后依次算出隐藏层(h1,h2…)的过程,每一次算出来的h会作为下一个RNN Cell的输入,这就叫循环神经网络把字符转成向量...原创 2020-09-03 20:44:06 · 1269 阅读 · 3 评论 -
PyTorch深度学习实践(十一)卷积神经网络高级篇
上一讲的神经网络网络架构是一个串行的结构,上一层的输出是下一层的输入在神经网络里面有更为复杂的结构,比如有分支,或者输出会返回来GoogleNet:蓝色的块是卷积,红色的块是池化,黄色的是softmax减少代码冗余:函数/类当网络结构复杂,对于类似或者相同的子结构,就可以把这个子结构(块)封装成一个类在GoogleNet里面,这一个构造卷积神经网络的超参数:卷积核的大小:GoogleNet的下面这个块出发点是不知道多大的卷积核好用,那就在一个块里面把这几种卷积都用一下,然后把它们的结果摞原创 2020-09-03 16:51:49 · 449 阅读 · 0 评论 -
PyTorch深度学习实践(十)卷积神经网络基础篇
介绍全连接网络:指的是网络里面用的都是线性层,如果一个网络全都由线性层串行连接起来,就叫做全连接网络在线性层里面输入和每一个输出值之间都存在权重,即每一个输入节点都要参与到下一层输出节点的计算上,这样的线性层也叫全连接层 Fully Connected卷积神经网络把图像按照原始的空间结构保存,能保留原始的空间信息经过一个卷积层把12828的图像变成42424使用下采样(subsampling)时,通道数不会改变,图像的宽度和高度会改变,下采样的目的是减少数据的数据量,减少特征图(Feature原创 2020-09-02 22:21:04 · 891 阅读 · 0 评论 -
PyTorch深度学习实践(九)多分类问题-MNIST数据集
多分类问题用SoftMax分类器要求输出的分类概率都大于0且总和为1把输出经过sigmoid运算就可以上图的交叉熵损失就包含了softmax计算和右边的标签输入计算(即框起来的部分)所以在使用交叉熵损失的时候,神经网络的最后一层是不要做激活的,因为把它做成分布的激活是包含在交叉熵损失里面的,最后一层不要做非线性变换,直接交给交叉熵损失如上图,做交叉熵损失时要求y是一个长整型的张量,构造时直接用criterion = torch.nn.CrossEntropyLoss()3个类别,分别是2,0,1原创 2020-09-01 22:37:53 · 1723 阅读 · 0 评论 -
深度学习实战博文收藏
Titanic生存预测kaggle泰坦尼克号生存预测(附代码、数据集和答案)机器学习实战进阶:泰坦尼克号乘客获救预测Kaggle–泰坦尼克号失踪者生死情况预测源码(附Titanic数据集)kaggle 泰坦尼克号生存预测——六种算法模型实现与比较关于titanic数据集(一)...原创 2020-09-01 16:23:16 · 239 阅读 · 0 评论 -
PyTorch深度学习实践(八)加载数据集
Dataset and DataLoader是加载数据的两个工具类Dataset:构造数据集(数据集应该支持索引,能够用下标操作快速把数据拿出来) DataLoader:主要目标是拿出一个MiniBatch(一组数据)供我们训练的时候快速使用在上面的代码中,训练时,每次给Model做前馈的时候都是把所有的数据(x_data)传进去的在做梯度下降的时候有两种选择:①全部的数据都用(Batch)②随机梯度下降:只用一个样本只用一个样本可以得到比较好的随机性,可以帮助我们跨越在优化中所遇到的鞍点而用B原创 2020-09-01 15:27:03 · 644 阅读 · 2 评论 -
PyTorch深度学习实践(七)处理多维特征的输入
单维:输入x是一个实数多维输入:x有多个不同的特征,预测对应的分类对于回归问题:输出值y是一个实数对于分类问题:输出y属于一个离散的集合对于下面这个数据集,在机器学习中每一行叫做一个样本,每一列叫做一个特征在数据库中,每一行叫做一个记录,每一列叫做一个字段在机器学习里面,拿到数据表之后,把内容分成两部分,一部分作为输入x,另一部分作为输入y如果训练是从数据库读数据,就把x读出来构成一个矩阵,把y字段读出来构成一个矩阵,就把输入的数据集准备好了如下图:Anaconda的安装目录下已经给我们准备原创 2020-08-31 22:33:10 · 869 阅读 · 0 评论 -
win10+Anaconda离线安装tensorflow cpu版本
安装Anaconda查询python版本以上两步请参考我的博文win10+Anaconda离线安装CPU版本的PyTorch下载Tensorflow离线包下载地址:https://pypi.org/project/tensorflow/#files 这是cpu版本的链接Gpu版本链接:https://pypi.org/project/tensorflow-gpu/#history在浏览器下实在太慢了,于是想到了迅雷下载,直接在迅雷里面输入下载地址选择自己需要的版本,注意与python版本对应原创 2020-08-31 16:26:54 · 1773 阅读 · 1 评论 -
一个调试通过的用pytorch实现mnist数据集数字识别
手写数字识别是深度学习界的“HELLO WORLD”。网上代码很多,找一份自己读懂,对整个学习网络理解会有帮助。这是自动下载mnist数据集的,如果下载过慢,可以自己把mnist数据集下载好放到相应目录下面import torchimport torch.nn as nnimport torch.nn.functional as Fimport torch.optim as optimfrom torchvision import datasets, transformsfrom torch.转载 2020-08-30 21:19:21 · 165 阅读 · 0 评论 -
PyTorch深度学习实践(六)逻辑斯蒂回归
虽然叫回归,但是是做分类的线性回归模型单样本损失在线性空间,我们的估计值y属于一个连续的空间,这种任务叫做回归任务,但是在很多的机器学习任务中,我们要做的是分类比如ministr数据集,训练集60000个,测试集10000个,有10个分类,我们模型估算出来的结果是一个0…9离散值的集合,我们要估算的是y属于哪一个,这种问题叫做分类问题然而我们并不是输出输入的样本所属的类别,而是输出它属于每个类别的概率,概率最大的一项作为我们分类的结果逻辑斯蒂函数要把y^从实数空间映射到[0,1],即需要找到一原创 2020-08-30 20:29:52 · 548 阅读 · 0 评论 -
PyTorch深度学习实践(五)用PyTorch实现线性回归
①准备数据集②设计模型③构造损失函数和优化器④训练周期:前馈反馈更新,前馈算损失,反馈算梯度,用梯度下降算法更新权重准备数据设计模型PyTorch定义模型①首先把模型定义成一个类②③构造损失函数和优化器训练过程:先算y^ ,再算损失,这两个叫前馈,然后是后向传播,更新构造损失函数和优化器代码展现import torchx_data=torch.Tensor([[1.0],[2.0],[3.0]])#构建数据集y_data=torch.Tensor([[2.0],[4.0]原创 2020-08-30 17:25:50 · 544 阅读 · 0 评论 -
PyTorch深度学习实践(四)反向传播
把网络看成一个图,在图上传播梯度,然后根据链式法则把梯度求出来—反向传播算法权重可以是权重矩阵,偏置通常定义成向量形式上图加非线性函数做变换,让每一个x值都带入非线性函数,此处 的非线性函数用的是sigmoidpytorch是把梯度存在变量里面的 得到了导数,后面就可以用梯度下降算法对权重进行更新# -*- coding: utf-8 -*-"""Created on Sun Aug 30 09:14:18 2020@author: """import torchx_data=[1.原创 2020-08-30 10:49:58 · 867 阅读 · 0 评论 -
PyTorch深度学习实践(三)梯度下降算法
分治算法比如要搜索100个点,我先把横纵坐标分成4份,先取16个点,看那一个点得到的值最接近真实值,然后在该点所在区域划分区域继续取值跑上几轮,这个区域就足够小了像这种图,用分治法的话l可能会错过非常好的一些目标点MxNet有500万个未知数,如果用分治法划分空间去搜索,这个数量也是非常大的,所以需要另外一种寻找最优值的算法优化问题:寻找使目标函数权重最小的组合,求函数的最小值非凸函数:在函数取两点画一条线,不能保证两点之间的点都在直线下方梯度下降只能找到局部最优点,整个目标函数最优的点叫做全原创 2020-08-29 20:50:29 · 224 阅读 · 0 评论 -
PyTorch深度学习实践(二)线性模型
①准备数据集.②模型选择设计③训练(大部分模型都需要训练,KNN不需要训练(因为推理时间长,就看新的样本跟数据集里哪一个数据特征最接近,根据训练样本决定它的类别))④应用推理一般拿到数据集,我们将其分成两个部分,训练集和测试集过拟合:在训练集上误差很小,可能训练的时候模型把噪声也学习了泛化:模型对没见过的图片也能很好地识别开发集:比如比赛的时候我们不知道测试集的标签,就把训练集中的一部分提取出来做测试集这个损失函数是针对一个样本的 (预测值-真实值)的平方针对整个数据集模型训练可视化原创 2020-08-29 20:03:50 · 265 阅读 · 0 评论 -
深度学习文章
22 张图总结深度学习全部知识原创 2020-08-29 19:29:36 · 275 阅读 · 0 评论 -
win10+Anaconda离线安装CPU版本的PyTorch
我也尝试过在线安装Pytorch,但是出现各种错误,于是找到一位老哥的离线安装方法安装Anaconda首先,我是先安装了Anaconda,Anaconda安装完也不用自己配环境变量啥的,就很好用,但是安装的时候要选择配置环境变量,就是这里了,一定要选添加环境变量Anaconda详细安装及使用教程(带图文)然后,就是下载pytorch离线包了,那么你需要知道自己的python版本,以及需要的pytorch版本查询python版本win+R 输入cmd输入 python,如图,我的python版原创 2020-08-29 14:52:58 · 966 阅读 · 0 评论 -
PyTorch深度学习实践-(一)介绍
课程链接 《PyTorch深度学习实践》完结合集PyTorch版本:0.4,目前最新1.5,跟着课程可以用1.0,1.2,1.5的应该也行(重点:要会看文档)大学学的课程为何普遍与企业脱轨如上图,一门技术需要经历发展期,下降期,冰河期,应用期,一门技术的出现在使用过程中,会出现个各种各样的问题和缺陷,就会陷入下降期,冰河期,很多技术在冰河期就会死掉,而熬过了冰河期,就是一门成熟的技术,达到了应用期,我们在大学所学的技术都是处于应用期的技术,已经非常稳定,实用,如果去学处于发展期的技术,这门技术如果在冰原创 2020-08-28 22:28:20 · 723 阅读 · 0 评论 -
深度学习初探(六)一些知识点
BroadcastingBroadcasting 也叫广播机制(自动扩展也许更合适),它是一种轻量级张量复制的手段, 在逻辑上扩展张量数据的形状,但是只要在需要时才会执行实际存储复制操作。对于大部分场景,Broadcasting 机制都能通过优化手段避免实际复制数据而完成逻辑运算,从而相对 于 tf.tile 函数,减少了大量计算代价。标量在TensorFlow 中,标量最容易理解,它就是一个简单的数字,维度数为 0,shape 为 []。标量的典型用途之一是误差值的表示、各种测量指标的表示,比如准确原创 2020-07-30 11:19:29 · 326 阅读 · 0 评论 -
深度学习初探(五)神经网络
卷积神经网络如何识别、分析并理解图片、视频等数据是计算机视觉的一个核心问题,全连接层在 处理高维度的图片、视频数据时往往网络参数量巨大,训练非常困难。通过利用局部相关性和权值共享的思想,Yann Lecun 在 1986 年提出了卷积神经网络(Convolutional Neural Network,CNN)。随着深度学习的兴盛,卷积神经网络在计算机视觉中的表现几乎碾压了 所有其他的模型算法,呈现统治计算机视觉领域之势。循环神经网络除了具有空间结构的图片、视频等数据之外,序列信号也是非常常见的一种数据原创 2020-07-30 11:10:34 · 266 阅读 · 0 评论 -
深度学习初探(四)TensorFlow 基础
TensorFlow 是一个面向于深度学习算法的科学计算库,内部数据保存在张量(Tensor)对 象上,所有的运算操作(Operation, OP)也都是基于张量对象进行。复杂的神经网络算法本质 上就是各种张量相乘、相加等基本运算操作的组合,在深入学习深度学习算法之前,熟练 掌握 TensorFlow 张量的基础操作方法十分重要。TensorFlow 2 与 1.xTensorFlow 2 是一个与 TensorFlow 1.x 使用体验完全不同的框架,TensorFlow 2 不兼容 TensorFl原创 2020-07-30 11:04:39 · 289 阅读 · 0 评论 -
深度学习初探(三)深度学习开发环境安装--TensorFlow
TensorFlow 框架支持多种常见的操作系统,如 Windows 10, Ubuntu 18.04, Mac OS 等等,同时也支持运行在 NVIDIA 显卡上的 GPU 版本和仅适用 CPU 完成计算的 CPU 版本。一般来说,开发环境安装分为 4 大步骤:安装 Python 解释器 Anaconda,安装 CUDA 加速库,安装 TensorFlow 框架,安装常用编辑器。Anaconda 安装Python 解释器是让 Python 语言编写的代码能够被 CPU 执行的桥梁,是 Python原创 2020-07-30 10:49:26 · 164 阅读 · 0 评论 -
深度学习初探(二)深度学习框架
主流框架Theano 是最早的深度学习框架之一,是一个基于 Python 语言、定位底层运算的计算库,Theano 同时支持 GPU 和 CPU 运 算。由于Theano 开发效率较低,模型编译时间较长,同时开发人员转投TensorFlow 等原因,Theano 目前已经停止维护Scikit-learn 是一个完整的面向机器学习算法的计算库,内建了常见的传统机器学习算法支持,文档和案例也较为丰富,但是 Scikit-learn 并不是专门面向神经网络而设计的,不支持 GPU 加速,对神经网络相关层实现也原创 2020-07-30 10:38:38 · 317 阅读 · 0 评论 -
深度学习初探(一)机器学习与深度学习
机器学习是一门通过让机器自动从数据中学习规则的研究学科在机器学习中,有一门通过神经网络来学习复杂、抽象逻辑的方向,称为神经网络。深层神经网络有了一个新名字,叫做深度学习,深度学习特指基于深层神经网络实现的模型或算法机器学习可以分为有监督学习(Supervised Learning)、无监督学习(Unsupervised Learning)和强化学习(Reinforcement Learning)。常见的有监督学习有线性回归,逻辑回归,支持向量机,随机森林等常见的无监督学习算法有自编码器,生成对原创 2020-07-30 10:33:11 · 916 阅读 · 0 评论