- 博客(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
1707
原创 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
1571
原创 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
2735
1
原创 TensorFlow2.0学习笔记-3.模型训练
3.模型训练 3.1.Keras版本模型训练 •构建模型(顺序模型、函数式模型、子类模型) •模型训练:model.fit() •模型验证:model.evaluate() •模型预测:model.predict() •使用样本加权和类别加权 回调函数 • ModelCheckpoint:定期保存模型。 • EarlyStopping:当训练不再改善验证指标时,停止培训。 • TensorBoard:定期编写可在TensorBoard中可视化的模型日志(更多详细信息,请参见“可视化”...
2020-08-06 13:41:24
2765
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
442
原创 TensorFlow2.0学习笔记-1.张量
1.张量 TensorFlow2.0 API文档:https://www.tensorflow.org/api/r2.0 TensorFlow使用一种叫tensor的数据结构去定义所有的数据,我们可以把tensor看成是n维的array或者list。在TensorFlow的各部分图形间流动传递的只能是tensor。 编写TensorFlow程序时,操纵并传递的主要对象是tf.Tensor: importtensorflowastf print(tf.__version_...
2020-08-03 00:34:02
562
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
284
原创 PyTorch学习笔记-8.PyTorch深度体验
8.PyTorch深度体验 8.1.图像分类预测 模型如何完成图像分类? 将图像转换为tensor -->模型-->输出向量-->取向量的最大值作为预测结果 代码基本步骤: 1.获取数据与模型 2.数据变换,如RGB → 4D-Tensor 3.前向传播 4.输出保存预测结果 注意事项: 1.确保model处于eval状态而非training 2.设置torch.no_grad(),减少内存消耗 3.数据预处理需保持一致,RGB orBGR...
2020-08-03 00:33:44
1026
原创 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
2764
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
5979
原创 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
1373
原创 PyTorch学习笔记-4.PyTorch损失优化
4.PyTorch损失优化 4.1.权值初始化 4.1.1.梯度消失与爆炸 对于一个含有多层隐藏层的神经网络来说,当梯度消失发生时,接近于输出层的隐藏层由于其梯度相对正常,所以权值更新时也就相对正常,但是当越靠近输入层时,由于梯度消失现象,会导致靠近输入层的隐藏层权值更新缓慢或者更新停滞。这就导致在训练时,只等价于后面几层的浅层网络的学习。梯度爆炸与之相反。 例如下图的神经网络: 其中,,, 对求导得: 从上式可以看出,损失函数对求导是由多个求导累乘的结果,对于其中的每个求导,如果此部分小
2020-08-03 00:33:07
1733
原创 PyTorch学习笔记-3.PyTorch模型搭建
3.PyTorch模型搭建 3.1.卷积层 3.1.1.卷积-1d/2d/3d 卷积运算:卷积核在输入信号(图像)上滑动,相应位置上进行乘加 卷积核:又称为滤波器,过滤器,可认为是某种模式,某种特征。 卷积过程类似于用一个模版去图像上寻找与它相似的区域,与卷积核模式越相似,激活值越高,从而实现特征提取 例如: AlexNet卷积核可视化,发现卷积核学习到的是边缘,条纹,色彩这一些细节模式 卷积维度:一般情况下,卷积核在几个维度上滑动,就是几维卷积 下面分别为一维、二维、三维卷积示意图 .
2020-08-03 00:32:57
1465
原创 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
5566
1
原创 PyTorch学习笔记-1.PyTorch基础概念
1.PyTorch基础概念 1.1.PyTorch简介与安装 1.1.1.PyTorch简介 2017年1月,FAIR(Facebook AI Research)发布PyTorch PyTorch是在Torch基础上用python语言重新打造的一款深度学习框架 Torch是采用Lua语言为接口的机器学习框架,但因Lua语言较为小众,导致Torch知名度不高 PyTorch发展 • 2017年1月正式发布PyTorch • 2018年4月更新0.4.0版,支持W indows系统,ca..
2020-08-02 13:08:03
1163
原创 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
531
原创 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
641
原创 Python基础学习笔记-14.scikit-learn 库
14.scikit-learn库 scikit-learn库是当今最流行的机器学习算法库之一 可用来解决分类与回归问题 本章以鸢尾花数据集为例,简单了解八大传统机器学习分类算法的sk-learn实现 八大传统分类算法: K近邻:最近的k个邻居 朴素贝叶斯:后验概率最大化 决策树:向着纯净的类别,不断分裂 逻辑回归:特征映射成概率,全体概率之积最大化 支持向量机:最小间隔的最大化 集成方法-随机森林:多次有放回取样,弱分类器组合强分类器 集成方法-Adaboost:根据上轮弱分...
2020-08-02 12:55:37
803
原创 Python基础学习笔记-13.Matplotlib库
13.Matplotlib库 13.1.基本配置 数据可视化是数据分析的一个重要工具,最常用的就是Matplotlib库 【1】 要不要plt.show() ipython中可用魔术方法%matplotlib inline,这样可以无需plt.show() pycharm中必须使用plt.show() %matplotlibinline importmatplotlib.pyplotasplt plt.style.use("seaborn-whitegrid") x=...
2020-08-02 12:55:01
1075
原创 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
999
原创 Python基础学习笔记-11.Numpy库
11.Numpy库 11.1.Numpy概述 低效的Python for循环 【例】 求100万个数的倒数 defcompute_reciprocals(values): res =[] forvalue invalues: # 每遍历到一个元素,就要判断其类型,并查找适用于该数据类型的正确函数 res.append(1/value) returnres values =list(range(1, 1000000)) %...
2020-08-02 12:47:02
1884
原创 Python基础学习笔记-10.Python标准库
10.Python标准库 10.1.time库 Python自身提供了比较丰富的生态,拿来即用,可极大的提高开发效率 time库为Python处理时间的标准库 1、获取现在时间 (1)time.localtime() 本地时间 (2)time.gmtime() UTC世界统一时间 北京时间比时间统一时间UTC早8个小时 importtime t_local =time.localtime() t_UTC =time.gmtime() print("t_local", t_loca...
2020-08-02 12:46:51
450
原创 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
467
原创 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
821
原创 Python基础学习笔记-7.类-面向对象的编程
7.类-面向对象的编程 7.1.类的定义 7.1.1.类的概述 面向对象更符合人类对客观世界的抽象和理解 一切皆对象 一只小狗,一把椅子,一张信用卡,一条巧克力。。。 一切对象,都有自己内在的属性 狗狗的品种、椅子的质地、信用卡的额度、巧克力的口味。。。 一切行为,皆是对象的行为 狗狗蹲下、椅子移动位置、刷信用卡、巧克力融化了。。。 类是对象的载体 不同年龄、肤色、品质的猫,每一只都是一个对象 他们有一个共同的特征:都是猫 我们可以把一类对象的公共特征抽象出来,创建通用的类 # 创建类
2020-08-01 00:12:59
575
原创 Python基础学习笔记-6.函数
6.函数 6.1.函数的基本语法 6.1.1.为什么要用函数 1、提高代码复用性——抽象出来,封装为函数 2、将复杂的大问题分解成一系列小问题,分而治之——模块化设计的思想 3、利于代码的维护和管理 顺序式代码 # 5的阶乘 n =5 res =1 fori inrange(1, n+1): res *=i print(res) # 20的阶乘 n =20 res =1 fori inrange(1, n+1): res *=i print(res) ...
2020-08-01 00:11:48
1005
原创 Python基础学习笔记-5.程序控制语句
5.程序控制语句 5.1.运算符 非顺序式的程序控制,往往需要根据一定的条件,决定程序运行的路线。因此,我们首先来认识一下运算符。 5.1.1.比较运算 比较运算符有>、<、>=、<=、==、!=,返回值为布尔类型 a =10 b =8 print(a >b) # 大于 print(a <b) # 小于 print(a >=b) # 大于等于 print(a <=b) # 小于等于 print(a ...
2020-08-01 00:11:06
800
原创 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
2065
原创 Python基础学习笔记-3.基本数据类型
3.基本数据类型 3.1.数值类型 3.1.1.数值类型的组成 整数型——不同进制的转换 默认输入十进制 二进制0b、八进制0o、十六进制0x 16==0b10000==0o20==0x10 True 十进制与其他进制的转换 a=bin(16) #转二进制 b=oct(16) #转八进制 c=hex(16) #转十六进制 print(a, b, c) 0b10000 0o20 0x10 #注意:上述转换后结果为字符串类型 type(a...
2020-08-01 00:08:24
1921
原创 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
1349
原创 Python基础学习笔记-1.绪论与环境安装
1.绪论与环境安装 1.1.绪论 Python是目前人工智能的主要开发语言,当然,python也可以开发爬虫、web、图形界面等,本课程主要面向人工智能,对于其他方向的知识并未涉及,本课程面向python零基础的同学或者基础薄弱的同学。 Python的优点:语法简单,易学易用,生态丰富。开发者可以将更多精力放在问题本身,而非编码上。 Python的缺点:运行速度慢 但是由于物理硬件的提升,语言带来的性能影响趋向于减小,其次,对于一些复杂的计算,python提供了相关接口,例如numpy,底层的计算
2020-08-01 00:05:14
333
原创 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
410
原创 《西瓜书》-15.强化学习
15.强化学习 15.1.任务与奖赏 强化学习(Reinforcement Learning,简称RL)是机器学习的一个重要分支,人机大战的主角AlphaGo正是以强化学习为核心技术。在强化学习中,包含两种基本的元素:状态与动作,在某个状态下执行某种动作,这便是一种策略,学习器要做的就是通过不断地探索学习,从而获得一个好的策略。例如:在围棋中,一种落棋的局面就是一种状态,若能知道每种局面下的最优落子动作,那就攻无不克/百战不殆了。 强化学习是在试图寻找一个映射,从已知状态推断出动作。但在实际问题中,强
2020-08-01 00:02:49
562
原创 《西瓜书》-14.隐马尔可夫模型
14.隐马尔可夫模型 14.1.隐马尔可夫模型概念 隐马尔可夫模型(Hidden Markov Model,简称HMM)是一种著名的有向图模型,主要用于时序数据建模,在语音识别、自然语言处理等领域有广泛应用。 下面以李航的《统计学习方法》来进行隐马尔可夫模型的讲解 定义:隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测从而产生观测随机序列的过程。隐藏的马尔可夫链随机生成的状态的序列,称为状态序列(state sequence);每
2020-08-01 00:02:27
1196
原创 《西瓜书》-13.半监督学习
13.半监督学习 13.1.主动学习与半监督学习 前面我们一直围绕的都是监督学习与无监督学习,监督学习指的是训练样本包含标记信息的学习任务,例如:常见的分类与回归算法;无监督学习则是训练样本不包含标记信息的学习任务,例如:聚类算法。 半监督学习(semi-supervised learning),即训练集同时包含有标记样本数据和未标记样本数据。 在实际生活中,常常会出现一部分样本有标记和较多样本无标记的情形,例如:做网页推荐时需要让用户标记出感兴趣的网页,但是少有用户愿意花时间来提供标记。若直接丢弃
2020-07-31 00:47:01
1994
原创 《西瓜书》-12.计算学习理论
12.计算学习理论 这章主要是为了和西瓜书的章节保持同步,主要是思想层面的内容,没有实质性的算法,可以参考西瓜书学习 计算机学习理论研究的是关于通过计算来进行学习的理论,即关于机器学习的理论基础。 其目的是分析学习任务的困难本质,为学习算法提供理论保证。例如:在什么条件下可进行有效的学习,需要多少训练样本才能获得较好的精度等。 概念介绍 泛化误差与经验误差 经验误差:学习器在某个特定的数据集D上的预测误差 泛化误差:学习器在总体上的预测误差 独立同分布:每个样本都是从总体分布中独立采样得到
2020-07-31 00:45:03
360
原创 《西瓜书》-11.特征选择与稀疏学习
11.特征选择与稀疏学习 11.1.子集搜索与评价 处理高维数据的两大主流技术:降维与特征选择。 降维从一定程度起到了提炼优质低维属性和降噪的效果,特征选择则是直接剔除那些与学习任务无关的属性而选择出最佳特征子集。 先介绍几个概念 “特征”(feature):属性 “相关特征”(relevant feature):对当前学习任务有用的属性 “无关特征”(irrelevant feature):对当前学习任务没什么用的属性 “特征选择”(feature selection):从给定的特征集合中
2020-07-31 00:43:20
903
原创 《西瓜书》-10.降维
10.降维 10.1.k近邻学习(kNN) k近邻(k-Nearest Neighbor,简称kNN)学习是一种常用的监督学习方法 其工作机制非常简单: *给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本; *然后基于这k个“邻居”的信息来进行预测。 通常,在分类任务中可使用“投票法”,即选择这k个样本中出现最多的类别标记作为预测结果;在回归任务中可使用“平均法”,即将这k个样本的实值输出标记的平均值作为预测结果;还可基于距离远近进行加权平均或加权投票,距离越近的样本权重越大.
2020-07-31 00:35:52
746
原创 《西瓜书》-9.聚类
9.聚类 9.1.聚类任务 聚类是一种经典的无监督学习方法,无监督学习的目标是通过对无标记训练样本的学习,发掘和揭示数据集本身潜在的结构与规律,即不依赖于训练数据集的类标记信息。聚类则是试图将数据集的样本划分为若干个互不相交的类簇,从而每个簇对应一个潜在的类别。 聚类直观上来说是将相似的样本聚在一起,从而形成一个类簇(cluster)。那首先的问题是如何来度量相似性(similarity measure)呢?这便是距离度量,在生活中我们说差别小则相似,对应到多维样本,每个样本可以对应于高维空间中的一个
2020-07-31 00:34:47
2317
原创 《西瓜书》-8.集成学习
8.集成学习 8.1.个体与集成 集成学习(ensemble learning)指的是将多个学习器进行有效地结合,组建一个“学习器委员会”,其中每个学习器担任委员会成员并行使投票表决权,使得委员会最后的决定更能够四方造福普度众生,即其泛化性能要能优于其中任何一个学习器。实际上,就是“三个臭皮匠顶个诸葛亮”的道理。 在上图的集成模型中,若个体学习器都属于同一类别,例如都是决策树或都是神经网络,则称该集成为同质的(homogeneous);若个体学习器包含多种类型的学习算法,例如既有决策树又有神.
2020-07-31 00:31:10
795
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅