- 博客(62)
- 收藏
- 关注
原创 TensorFlow2.0学习笔记-6.深度神经网络
6.深度神经网络6.1.卷积神经网络简介在CNN出现之前,图像对于人工智能来说是一个难题,有2个原因:•图像需要处理的数据量太大,导致成本很高,效率很低•图像在数字化的过程中很难保留原有的特征,导致图像处理的准确率不高需要处理的数据量太大:现在随随便便一张图片都是1000×1000像素以上的, 每个像素都有RGB 3个参数来表示颜色信息。假如我们处理一张1000×1000像素的图片,我们就需要处理3百万个参数!1000×1000×3=3,000,000这么大量...
2020-08-06 13:43:43
1431
原创 TensorFlow2.0学习笔记-5.数据构建
5.数据构建tf.data简介面对一堆格式不一的原始数据文件?读入程序的过程往往十分繁琐?运行的效率上不尽如人意?T e n so r F l ow提供了tf.data这一模块,包括了一套灵活的数据集构建API,能够帮助我们快速 、高效地构建数据输入的流水线 ,尤其适用于数据量巨大的场景。tf.data包含三个类:• tf.data.Dataset类• tf.data.TFRecordDataset类• tf.data.TextLineDataset类5.1.Da...
2020-08-06 13:42:38
1329
原创 TensorFlow2.0学习笔记-4.模型的自定义
4.模型的自定义4.1.自定义层使用的主要数据结构是Layer实现自定义层的最佳方法是扩展tf.keras.layers.Layer类并实现:• __init__:可以在其中进行所有与输入无关的初始化,定义相关的层• build: 知道输入张量的形状并可以进行其余的初始化• call: 在这里进行前向传播注意:不一定需要在build中创建变量时,也可以在__init__中创建它们。tf.keras.Model和tf.keras.layers.Layer有什么区别和联系?•通...
2020-08-06 13:42:05
2311
1
原创 TensorFlow2.0学习笔记-3.模型训练
3.模型训练3.1.Keras版本模型训练•构建模型(顺序模型、函数式模型、子类模型)•模型训练:model.fit()•模型验证:model.evaluate()•模型预测:model.predict()•使用样本加权和类别加权回调函数• ModelCheckpoint:定期保存模型。• EarlyStopping:当训练不再改善验证指标时,停止培训。• TensorBoard:定期编写可在TensorBoard中可视化的模型日志(更多详细信息,请参见“可视化”...
2020-08-06 13:41:24
2405
1
原创 TensorFlow2.0学习笔记-2.建模方式
2.建模方式2.1.常用层tf.keras.layers:tf.keras.layers是基于tf.nn的高度封装。tf.keras.layers.LSTM(100)tf.keras.layers.Dense(10)tf.keras.layers.Dense(64, kernel_regularizer=tf.keras.regularizers.l1(0.01))tf.nn:底层的函数库,其他各种库可以说都是基于这个底层库来进行扩展的tf.nn.softmax(b)tf.kera
2020-08-03 00:34:23
343
原创 TensorFlow2.0学习笔记-1.张量
1.张量TensorFlow2.0 API文档:https://www.tensorflow.org/api/r2.0TensorFlow使用一种叫tensor的数据结构去定义所有的数据,我们可以把tensor看成是n维的array或者list。在TensorFlow的各部分图形间流动传递的只能是tensor。编写TensorFlow程序时,操纵并传递的主要对象是tf.Tensor:importtensorflowastfprint(tf.__version_...
2020-08-03 00:34:02
394
2
原创 TensorFlow2.0学习笔记-目录
TensorFlow2.0学习笔记 此笔记涉及TensorFlow的基础语法、张量、模型搭建、模型训练、模型自定义、数据构建、深度神经网络等知识, 适合有一定深度学习基础的同学学习。 有一起学习人工智能的伙伴,可以添加好友一起学习1.张量1.1.张量的创建1.2.张量的操作2.建模方式2.1.常用层2.2.三种建模方式3.模型训练3.1.Keras版本模型训练3.2.自动求导3.3.AutoGraph机制3.4.模型保存与加载4.模型的自定义4.1..
2020-08-03 00:33:55
208
原创 PyTorch学习笔记-8.PyTorch深度体验
8.PyTorch深度体验8.1.图像分类预测模型如何完成图像分类?将图像转换为tensor -->模型-->输出向量-->取向量的最大值作为预测结果代码基本步骤:1.获取数据与模型2.数据变换,如RGB → 4D-Tensor3.前向传播4.输出保存预测结果注意事项:1.确保model处于eval状态而非training2.设置torch.no_grad(),减少内存消耗3.数据预处理需保持一致,RGB orBGR...
2020-08-03 00:33:44
828
原创 PyTorch学习笔记-7.PyTorch训练技巧
7.PyTorch训练技巧7.1.模型保存与加载保存:torch.save主要参数:• obj:对象• f:输出路径保存分为两种模式:1:保存整个Module,即保存了整个模型的框架和参数torch.save(net, path)2:保存模型参数,即只保存模型的参数,下次使用时需要自己重新构建框架state_dict = net.state_dict()torch.save(state_dict , path)加载:2. torch.load主要参数• f:..
2020-08-03 00:33:36
2489
1
原创 PyTorch学习笔记-6.PyTorch的正则化
6.PyTorch的正则化6.1.正则项为了减小过拟合,通常可以添加正则项,常见的正则项有L1正则项和L2正则项L1正则化目标函数:L2正则化目标函数:PyTorch中添加L2正则:PyTorch的优化器中自带一个参数weight_decay,用于指定权值衰减率,相当于L2正则化中的λ参数。权值未衰减的更新公式:权值衰减的更新公式:下面,分别通过不添加L2正则与添加L2正则进行比较:代码实现:# -*- coding:utf-8 -*-import
2020-08-03 00:33:25
5498
原创 PyTorch学习笔记-5.PyTorch可视化
5.PyTorch可视化5.1.TensorBoard安装TensorBoard是一个可视化工具,它可以用来展示网络图、张量的指标变化、张量的分布情况等。特别是在训练网络的时候,我们可以设置不同的参数(比如:权重W、偏置B、卷积层数、全连接层数等),使用TensorBoader可以很直观的帮我们进行参数的选择。TensorBoard的执行流程为:1.通过python脚本,记录可视化的数据2.运行代码,可以生成了一个或多个事件文件(event files)3.启动TensorBo...
2020-08-03 00:33:16
1191
原创 PyTorch学习笔记-4.PyTorch损失优化
4.PyTorch损失优化4.1.权值初始化4.1.1.梯度消失与爆炸对于一个含有多层隐藏层的神经网络来说,当梯度消失发生时,接近于输出层的隐藏层由于其梯度相对正常,所以权值更新时也就相对正常,但是当越靠近输入层时,由于梯度消失现象,会导致靠近输入层的隐藏层权值更新缓慢或者更新停滞。这就导致在训练时,只等价于后面几层的浅层网络的学习。梯度爆炸与之相反。例如下图的神经网络:其中,,,对求导得:从上式可以看出,损失函数对求导是由多个求导累乘的结果,对于其中的每个求导,如果此部分小
2020-08-03 00:33:07
1500
原创 PyTorch学习笔记-3.PyTorch模型搭建
3.PyTorch模型搭建3.1.卷积层3.1.1.卷积-1d/2d/3d卷积运算:卷积核在输入信号(图像)上滑动,相应位置上进行乘加卷积核:又称为滤波器,过滤器,可认为是某种模式,某种特征。卷积过程类似于用一个模版去图像上寻找与它相似的区域,与卷积核模式越相似,激活值越高,从而实现特征提取例如:AlexNet卷积核可视化,发现卷积核学习到的是边缘,条纹,色彩这一些细节模式卷积维度:一般情况下,卷积核在几个维度上滑动,就是几维卷积下面分别为一维、二维、三维卷积示意图.
2020-08-03 00:32:57
1271
原创 PyTorch学习笔记-2.PyTorch数据处理
2.PyTorch数据处理2.1.数据读取机器学习模型训练步骤分为:数据,模型,损失函数,优化器,迭代训练首先是数据,又可以分为:数据收集,数据划分,数据读取,数据预处理DataLoader就是用来进行数据读取的。torch.utils.data.DataLoader功能:构建可迭代的数据装载器• dataset: Dataset类,决定数据从哪读取及如何读取• batchsize :批大小• num_works:是否多进程读取数据• shuffle:每个epoc...
2020-08-03 00:32:38
5241
1
原创 PyTorch学习笔记-1.PyTorch基础概念
1.PyTorch基础概念1.1.PyTorch简介与安装1.1.1.PyTorch简介2017年1月,FAIR(Facebook AI Research)发布PyTorchPyTorch是在Torch基础上用python语言重新打造的一款深度学习框架Torch是采用Lua语言为接口的机器学习框架,但因Lua语言较为小众,导致Torch知名度不高PyTorch发展• 2017年1月正式发布PyTorch• 2018年4月更新0.4.0版,支持W indows系统,ca..
2020-08-02 13:08:03
865
原创 PyTorch学习笔记-目录
PyTorch学习笔记 此笔记涉及PyTorch的基础语法、模型搭建、损失优化、可视化、正则化、训练技巧等知识,比较完整PyTorch学习笔记。 适合有一定深度学习基础的同学学习 有一起学习人工智能的伙伴,可以添加好友一起学习1.PyTorch基础1.1.PyTorch简介与安装1.1.1.PyTorch简介1.1.2.Anaconda安装1.1.3.Pycharm安装1.1.4.PyTorch安装1.2.Tensor(张量)1.2.1.张量概念1.2.2.直接创建张量
2020-08-02 13:01:52
366
原创 Python基础学习笔记-15.时间复杂度
15.时间复杂度编程建议:Beautiful is better than ugly整齐、易读胜过混乱、晦涩Simple is better than complex简约胜过复杂Complex is better than complicated复杂胜过晦涩Flat is better than nested扁平胜过嵌套Now is better than never.Although never is often better thanrightnow...
2020-08-02 12:56:18
475
原创 Python基础学习笔记-14.scikit-learn 库
14.scikit-learn库scikit-learn库是当今最流行的机器学习算法库之一可用来解决分类与回归问题本章以鸢尾花数据集为例,简单了解八大传统机器学习分类算法的sk-learn实现八大传统分类算法:K近邻:最近的k个邻居朴素贝叶斯:后验概率最大化决策树:向着纯净的类别,不断分裂逻辑回归:特征映射成概率,全体概率之积最大化支持向量机:最小间隔的最大化集成方法-随机森林:多次有放回取样,弱分类器组合强分类器集成方法-Adaboost:根据上轮弱分...
2020-08-02 12:55:37
601
原创 Python基础学习笔记-13.Matplotlib库
13.Matplotlib库13.1.基本配置数据可视化是数据分析的一个重要工具,最常用的就是Matplotlib库【1】 要不要plt.show()ipython中可用魔术方法%matplotlib inline,这样可以无需plt.show()pycharm中必须使用plt.show()%matplotlibinlineimportmatplotlib.pyplotaspltplt.style.use("seaborn-whitegrid")x=...
2020-08-02 12:55:01
914
原创 Python基础学习笔记-12.Pandas库
12.Pandas库12.1.对象创建12.1.1.Pandas Series对象基于Numpy构建的Pandas库,提供了使得数据分析变得更快更简单的高级数据结构和操作工具Series 是带标签数据的一维数组Series对象的创建通用结构: pd.Series(data, index=index, dtype=dtype)data:数据,可以是列表,字典或Numpy数组index:索引,为可选参数dtype: 数据类型,为可选参数1、用列表创建index缺省,默
2020-08-02 12:47:16
876
原创 Python基础学习笔记-11.Numpy库
11.Numpy库11.1.Numpy概述低效的Python for循环【例】 求100万个数的倒数defcompute_reciprocals(values):res =[]forvalue invalues: # 每遍历到一个元素,就要判断其类型,并查找适用于该数据类型的正确函数res.append(1/value)returnresvalues =list(range(1, 1000000))%...
2020-08-02 12:47:02
1746
原创 Python基础学习笔记-10.Python标准库
10.Python标准库10.1.time库Python自身提供了比较丰富的生态,拿来即用,可极大的提高开发效率time库为Python处理时间的标准库1、获取现在时间(1)time.localtime() 本地时间(2)time.gmtime() UTC世界统一时间北京时间比时间统一时间UTC早8个小时importtimet_local =time.localtime()t_UTC =time.gmtime()print("t_local", t_loca...
2020-08-02 12:46:51
331
原创 Python基础学习笔记-9.原理与拓展
9.原理与拓展9.1.数据类型的底层实现9.1.1.列表的实现1、错综复杂的复制list_1 =[1, [22, 33, 44], (5, 6, 7), {"name": "Sarah"}]浅拷贝# list_3 = list_1 # 错误!!!list_2 =list_1.copy() # 或者list_1[:] \ list(list_1) 均可实习浅拷贝对浅拷贝前后两列表分别进行操作list_2[1].append(55)print...
2020-08-02 12:46:43
393
原创 Python基础学习笔记-8.文件、异常和模块
8.文件、异常和模块8.1.文件的读写8.1.1.文件的打开实际应用中,我们绝大多数的数据都是通过文件的交互完成的首先,来看文件打开的通用格式withopen("文件路径", "打开模式", encoding ="操作文件的字符编码") asf:"对文件进行相应的读写操作"#使用with 块的好处:执行完毕后,自动对文件进行close操作。例如:一个简单的文件读取withopen("E:\ipython\测试文件.txt", "r", encoding ="gb...
2020-08-02 12:46:25
679
原创 Python基础学习笔记-7.类-面向对象的编程
7.类-面向对象的编程7.1.类的定义7.1.1.类的概述面向对象更符合人类对客观世界的抽象和理解一切皆对象一只小狗,一把椅子,一张信用卡,一条巧克力。。。一切对象,都有自己内在的属性狗狗的品种、椅子的质地、信用卡的额度、巧克力的口味。。。一切行为,皆是对象的行为狗狗蹲下、椅子移动位置、刷信用卡、巧克力融化了。。。类是对象的载体不同年龄、肤色、品质的猫,每一只都是一个对象他们有一个共同的特征:都是猫我们可以把一类对象的公共特征抽象出来,创建通用的类# 创建类
2020-08-01 00:12:59
491
原创 Python基础学习笔记-6.函数
6.函数6.1.函数的基本语法6.1.1.为什么要用函数1、提高代码复用性——抽象出来,封装为函数2、将复杂的大问题分解成一系列小问题,分而治之——模块化设计的思想3、利于代码的维护和管理顺序式代码# 5的阶乘n =5res =1fori inrange(1, n+1):res *=iprint(res)# 20的阶乘n =20res =1fori inrange(1, n+1):res *=iprint(res)...
2020-08-01 00:11:48
877
原创 Python基础学习笔记-5.程序控制语句
5.程序控制语句5.1.运算符非顺序式的程序控制,往往需要根据一定的条件,决定程序运行的路线。因此,我们首先来认识一下运算符。5.1.1.比较运算比较运算符有>、<、>=、<=、==、!=,返回值为布尔类型a =10b =8print(a >b) # 大于print(a <b) # 小于print(a >=b) # 大于等于print(a <=b) # 小于等于print(a ...
2020-08-01 00:11:06
717
原创 Python基础学习笔记-4.组合数据类型
4.组合数据类型4.1.列表4.1.1.列表的表达序列类型:内部元素有位置关系,能通过位置序号访问其中元素列表是一个可以使用多种类型元素,支持元素的增、删、查、改操作的序列类型ls=["Python",1989,True, {"version":3.7}]ls['Python', 1989, True, {'version': 3.7}]另一种产生方式:list(可迭代对象)可迭代对象包括:字符串、元组、集合、range()等字符串转列表list("人工...
2020-08-01 00:09:59
1887
原创 Python基础学习笔记-3.基本数据类型
3.基本数据类型3.1.数值类型3.1.1.数值类型的组成整数型——不同进制的转换默认输入十进制二进制0b、八进制0o、十六进制0x16==0b10000==0o20==0x10True十进制与其他进制的转换a=bin(16) #转二进制b=oct(16) #转八进制c=hex(16) #转十六进制print(a, b, c)0b10000 0o20 0x10#注意:上述转换后结果为字符串类型type(a...
2020-08-01 00:08:24
1733
原创 Python基础学习笔记-2.python基本语法
2.python基本语法2.1.数据类型数据类型分为基本数据类型和组合数据类型2.1.1.基本数据类型数值、字符串、布尔类型数值int整型整数例如:218 66 ....float浮点型带小数的数例如:2.018.866.666 ....complex复数a+bj例如:3+4j字符串str字符串 视作文本组成:由数字、字母、空格、其他字符等组合而成表达:用" "或' '例如:"python ...
2020-08-01 00:06:05
1199
原创 Python基础学习笔记-1.绪论与环境安装
1.绪论与环境安装1.1.绪论Python是目前人工智能的主要开发语言,当然,python也可以开发爬虫、web、图形界面等,本课程主要面向人工智能,对于其他方向的知识并未涉及,本课程面向python零基础的同学或者基础薄弱的同学。Python的优点:语法简单,易学易用,生态丰富。开发者可以将更多精力放在问题本身,而非编码上。Python的缺点:运行速度慢但是由于物理硬件的提升,语言带来的性能影响趋向于减小,其次,对于一些复杂的计算,python提供了相关接口,例如numpy,底层的计算
2020-08-01 00:05:14
261
原创 Python基础学习笔记-目录
Python基础学习笔记,为学习AI打好基础此笔记涉及python的基础语法,以及Numpy、Pandas、Matplotlib、scikit-learn库的学习,适合为学习人工智能而打好python基础知识。1.绪论与环境安装1.1.绪论1.2.python历史1.3.开发环境2.python基本语法2.1.数据类型2.1.1.基本数据类型2.1.2.组合数据类型2.2.变量2.2.1.变量的概念2.2.2.变量的命名2.2.3.变量名定义技巧.
2020-08-01 00:04:08
292
原创 《西瓜书》-15.强化学习
15.强化学习15.1.任务与奖赏强化学习(Reinforcement Learning,简称RL)是机器学习的一个重要分支,人机大战的主角AlphaGo正是以强化学习为核心技术。在强化学习中,包含两种基本的元素:状态与动作,在某个状态下执行某种动作,这便是一种策略,学习器要做的就是通过不断地探索学习,从而获得一个好的策略。例如:在围棋中,一种落棋的局面就是一种状态,若能知道每种局面下的最优落子动作,那就攻无不克/百战不殆了。强化学习是在试图寻找一个映射,从已知状态推断出动作。但在实际问题中,强
2020-08-01 00:02:49
423
原创 《西瓜书》-14.隐马尔可夫模型
14.隐马尔可夫模型14.1.隐马尔可夫模型概念隐马尔可夫模型(Hidden Markov Model,简称HMM)是一种著名的有向图模型,主要用于时序数据建模,在语音识别、自然语言处理等领域有广泛应用。下面以李航的《统计学习方法》来进行隐马尔可夫模型的讲解定义:隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测从而产生观测随机序列的过程。隐藏的马尔可夫链随机生成的状态的序列,称为状态序列(state sequence);每
2020-08-01 00:02:27
983
原创 《西瓜书》-13.半监督学习
13.半监督学习13.1.主动学习与半监督学习前面我们一直围绕的都是监督学习与无监督学习,监督学习指的是训练样本包含标记信息的学习任务,例如:常见的分类与回归算法;无监督学习则是训练样本不包含标记信息的学习任务,例如:聚类算法。半监督学习(semi-supervised learning),即训练集同时包含有标记样本数据和未标记样本数据。在实际生活中,常常会出现一部分样本有标记和较多样本无标记的情形,例如:做网页推荐时需要让用户标记出感兴趣的网页,但是少有用户愿意花时间来提供标记。若直接丢弃
2020-07-31 00:47:01
1656
原创 《西瓜书》-12.计算学习理论
12.计算学习理论这章主要是为了和西瓜书的章节保持同步,主要是思想层面的内容,没有实质性的算法,可以参考西瓜书学习计算机学习理论研究的是关于通过计算来进行学习的理论,即关于机器学习的理论基础。其目的是分析学习任务的困难本质,为学习算法提供理论保证。例如:在什么条件下可进行有效的学习,需要多少训练样本才能获得较好的精度等。概念介绍泛化误差与经验误差经验误差:学习器在某个特定的数据集D上的预测误差泛化误差:学习器在总体上的预测误差独立同分布:每个样本都是从总体分布中独立采样得到
2020-07-31 00:45:03
268
原创 《西瓜书》-11.特征选择与稀疏学习
11.特征选择与稀疏学习11.1.子集搜索与评价处理高维数据的两大主流技术:降维与特征选择。降维从一定程度起到了提炼优质低维属性和降噪的效果,特征选择则是直接剔除那些与学习任务无关的属性而选择出最佳特征子集。先介绍几个概念“特征”(feature):属性“相关特征”(relevant feature):对当前学习任务有用的属性“无关特征”(irrelevant feature):对当前学习任务没什么用的属性“特征选择”(feature selection):从给定的特征集合中
2020-07-31 00:43:20
660
原创 《西瓜书》-10.降维
10.降维10.1.k近邻学习(kNN)k近邻(k-Nearest Neighbor,简称kNN)学习是一种常用的监督学习方法其工作机制非常简单:*给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本;*然后基于这k个“邻居”的信息来进行预测。通常,在分类任务中可使用“投票法”,即选择这k个样本中出现最多的类别标记作为预测结果;在回归任务中可使用“平均法”,即将这k个样本的实值输出标记的平均值作为预测结果;还可基于距离远近进行加权平均或加权投票,距离越近的样本权重越大.
2020-07-31 00:35:52
589
原创 《西瓜书》-9.聚类
9.聚类9.1.聚类任务聚类是一种经典的无监督学习方法,无监督学习的目标是通过对无标记训练样本的学习,发掘和揭示数据集本身潜在的结构与规律,即不依赖于训练数据集的类标记信息。聚类则是试图将数据集的样本划分为若干个互不相交的类簇,从而每个簇对应一个潜在的类别。聚类直观上来说是将相似的样本聚在一起,从而形成一个类簇(cluster)。那首先的问题是如何来度量相似性(similarity measure)呢?这便是距离度量,在生活中我们说差别小则相似,对应到多维样本,每个样本可以对应于高维空间中的一个
2020-07-31 00:34:47
2005
原创 《西瓜书》-8.集成学习
8.集成学习8.1.个体与集成集成学习(ensemble learning)指的是将多个学习器进行有效地结合,组建一个“学习器委员会”,其中每个学习器担任委员会成员并行使投票表决权,使得委员会最后的决定更能够四方造福普度众生,即其泛化性能要能优于其中任何一个学习器。实际上,就是“三个臭皮匠顶个诸葛亮”的道理。在上图的集成模型中,若个体学习器都属于同一类别,例如都是决策树或都是神经网络,则称该集成为同质的(homogeneous);若个体学习器包含多种类型的学习算法,例如既有决策树又有神.
2020-07-31 00:31:10
577
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人