train_test_split 参数详解
简单用法如下:
12345from sklearn.model_selection import train_test_splitfrom sklearn.datasets import load_irisiris = load_iris()print(iris.data.shape)print(iris.DESCR)
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364(150, 4).. _iris_dataset:Iris plants dataset--------------------**Data Set Characteristics:** :Number of Instances: 150 (50 in each of three classes) :Number of Attributes: 4 numeric, predictive attributes and the ...
StandardScaler(sklearn)参数详解
[toc]
为什么要归一化
归一化后加快了梯度下降求最优解的速度:
如果机器学习模型使用梯度下降法求最优解时,归一化往往非常有必要,否则很难收敛甚至不能收敛。
归一化有可能提高精度:
一些分类器需要计算样本之间的距离(如欧氏距离),例如 KNN。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)。
12from sklearn.preprocessing import StandardScalerimport numpy as np
StandardScaler()
标准化数据,保证每个维度数据方差为 1.均值为 0。使得据测结果不会被某些维度过大的特征值而主导。\
$$
x^* = \frac{x - \mu}{\sigma}
$$
fit
用于计算训练数据的均值和方差, 后面就会用均值和方差来转换训练数据
transform
很显然,它只是进行转换,只是把训练数据转换成标准的正态分布
fit_transform
不仅计算训练数据的均值和方差,还会基于计算出来的均值和方差来转换训练数据, ...
八大排序算法(Python实现)
[toc]
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。
常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括:
关于时间复杂度:
平方阶 ($ O(n^2) $) 排序 各类简单排序:直接插入、直接选择和冒泡排序。
线性对数阶 ($O(nlog_2(n))$) 排序 快速排序、堆排序和归并排序。
($O(n+§)$) 排序,§ 是介于 0 和 1 之间的常数。 希尔排序。
线性阶 ($O(n)$) 排序 基数排序,此外还有桶、箱排序。
关于稳定性:
稳定的排序算法:冒泡排序、插入排序、归并排序和基数排序。
不是稳定的排序算法:选择排序、快速排序、希尔排序、堆排序。
名词解释:
n:数据规模
k:“桶”的个数
In-place:占用常数内存,不占用额外内存
Out-place:占用额外内存
稳定性:排序后 2 个相等键值的顺序和排序之前它们的顺序相同
12i ...
ResNet
ResNet 引入
在VGG-19中,卷积网络达到了 19 层,在GoogLeNet中,网络史无前例的达到了 22 层。
网络层数越高包含的函数空间也就越大,理论上网络的加深会让模型更有可能找到合适的函数。
但实际上,网络的精度会随着网络的层数增多而增多吗?在深度学习中,网络层数增多一般会伴着下面几个问题
计算资源的消耗
模型容易过拟合
梯度消失/梯度爆炸问题的产生
根据实验表明,随着网络的加深,优化效果反而越差,测试数据和训练数据的准确率反而降低了。这是由于网络的加深会造成梯度爆炸和梯度消失的问题。
作者发现,随着网络层数的增加,网络发生了退化(degradation)的现象:随着网络层数的增多,训练集 loss 逐渐下降,然后趋于饱和,当你再增加网络深度的话,训练集 loss 反而会增大。注意这并不是过拟合,因为在过拟合中训练 loss 是一直减小的。
当网络退化时,浅层网络能够达到比深层网络更好的训练效果,这时如果我们把低层的特征传到高层,那么效果应该至少不比浅层的网络效果差,或者说如果一个 VGG-100 网络在第 98 层使用的是和 VGG-16 第 14 层一模一样的 ...
Paddle高层API实现图像分类(CIFAR-100数据集_ResNet101)
[toc]
『深度学习 7 日打卡营·大作业』
零基础解锁深度学习神器飞桨框架高层 API,七天时间助你掌握 CV、NLP 领域最火模型及应用。
课程地址
传送门:https://aistudio.baidu.com/aistudio/course/introduce/6771
目标
掌握深度学习常用模型基础知识
熟练掌握一种国产开源深度学习框架
具备独立完成相关深度学习任务的能力
能用所学为 AI 加一份年味
数据集:
指定数据集:cifar100,通过高层 API 调用。
可以自己写数据增强和数据预处理功能。
模型:
随便选,模型参数初始化(如:uniform 和 normal)可以随意调整。
模型训练
各种超参数(如:epochs、batch_size)可以随意调整。
评判标准
最终以 model.evaluate 的精度输出值(格式如下),计算方式是将 eval_dataset 送入 evaluate 接口即可,需要在 model.prepare 中配置评估指标 Accuracy,所用数据集不能被用于训练过。
1{'loss': [6. ...
paddle2.0实现DNN(minst数据集)
[toc]
实践总体过程和步骤如下图:
1234567891011#导入需要的包import osimport zipfileimport randomimport jsonimport numpy as npfrom PIL import Imageimport matplotlib.pyplot as pltimport paddlefrom paddle.fluid.dygraph import Linear
Python 依赖库
numpy---------->python 第三方库,用于进行科学计算
PIL------------> Python Image Library,python 第三方图像处理库
matplotlib----->python 的绘图库 pyplot:matplotlib 的绘图框架
os------------->提供了丰富的方法来处理文件和目录
数据准备
数据集介绍
MNIST 数据集包含 60000 个训练集和 10000 测试数据集。分为图片和标签,图片是 28*28 的像素矩阵,标签为 0~9 共 10 个数字。
...
paddle2.0高层API实现ResNet50(十二生肖分类实战)
[toc]
『深度学习 7 日打卡营·快速入门特辑』
零基础解锁深度学习神器飞桨框架高层 API,七天时间助你掌握 CV、NLP 领域最火模型及应用。
课程地址
传送门:https://aistudio.baidu.com/aistudio/course/introduce/6771
目标
掌握深度学习常用模型基础知识
熟练掌握一种国产开源深度学习框架
具备独立完成相关深度学习任务的能力
能用所学为 AI 加一份年味
① 问题定义
十二生肖分类的本质是图像分类任务,我们采用 CNN 网络结构进行相关实践。
② 数据准备
2.1 解压缩数据集
我们将网上获取的数据集以压缩包的方式上传到 aistudio 数据集中,并加载到我们的项目内。
在使用之前我们进行数据集压缩包的一个解压。
1!unzip -q -o data/data68755/signs.zip
2.2 数据标注
我们先看一下解压缩后的数据集长成什么样子。
12345678910111213141516171819202122232425262728293031323334353637383940.├── tes ...
paddle2.0高层API实现自定义数据集文本分类中的情感分析任务
[toc]
本文包含了:
12345- 自定义文本分类数据集继承- 文本分类数据处理- 循环神经网络RNN, LSTM- ·seq2vec·- pretrained预训练模型
『深度学习 7 日打卡营·day4』
零基础解锁深度学习神器飞桨框架高层 API,七天时间助你掌握 CV、NLP 领域最火模型及应用。
课程地址
传送门:https://aistudio.baidu.com/aistudio/course/introduce/6771
目标
掌握深度学习常用模型基础知识
熟练掌握一种国产开源深度学习框架
具备独立完成相关深度学习任务的能力
能用所学为 AI 加一份年味
问题定义
情感分析是自然语言处理领域一个老生常谈的任务。句子情感分析目的是为了判别说者的情感倾向,比如在某些话题上给出的的态度明确的观点,或者反映的情绪状态等。情感分析有着广泛应用,比如电商评论分析、舆情分析等。
环境介绍
PaddlePaddle 框架,AI Studio 平台已经默认安装最新版 2.0。
PaddleNLP,深度兼容框架 2.0,是飞桨框架 2.0 在 NLP ...
paddle2.0高层API实现人脸关键点检测(人脸关键点检测综述_自定义网络_paddleHub_趣味ps)
[toc]
本文包含了:
12345- 人脸关键点检测综述- 人脸关键点检测数据集介绍以及数据处理实现- 自定义网络实现关键点检测- paddleHub实现关键点检测- 基于关键点检测的趣味ps
『深度学习 7 日打卡营·day3』
零基础解锁深度学习神器飞桨框架高层 API,七天时间助你掌握 CV、NLP 领域最火模型及应用。
课程地址
传送门:https://aistudio.baidu.com/aistudio/course/introduce/6771
目标
掌握深度学习常用模型基础知识
熟练掌握一种国产开源深度学习框架
具备独立完成相关深度学习任务的能力
能用所学为 AI 加一份年味
一、问题定义
人脸关键点检测,是输入一张人脸图片,模型会返回人脸关键点的一系列坐标,从而定位到人脸的关键信息。
人脸关键点检测是人脸识别和分析领域中的关键一步,它是诸如自动人脸识别、表情分析、三维人脸重建及三维动画等其它人脸相关问题的前提和突破口。近些年来,深度学习方法由于其自动学习及持续学习能力,已被成功应用到了图像识别与分析、语音识别和自然语言处理等很多领域,且在这些方面都 ...
paddle2.0高层API实现基于seq2seq的对联生成
[toc]
『深度学习 7 日打卡营·day5』
零基础解锁深度学习神器飞桨框架高层 API,七天时间助你掌握 CV、NLP 领域最火模型及应用。
课程地址
传送门:https://aistudio.baidu.com/aistudio/course/introduce/6771
目标
掌握深度学习常用模型基础知识
熟练掌握一种国产开源深度学习框架
具备独立完成相关深度学习任务的能力
能用所学为 AI 加一份年味
对联,是汉族传统文化之一,是写在纸、布上或刻在竹子、木头、柱子上的对偶语句。对联对仗工整,平仄协调,是一字一音的汉语独特的艺术形式,是中国传统文化瑰宝。
这里,我们将根据上联,自动写下联。这是一个典型的序列到序列(sequence2sequence, seq2seq)建模的场景,编码器-解码器(Encoder-Decoder)框架是解决 seq2seq 问题的经典方法,它能够将一个任意长度的源序列转换成另一个任意长度的目标序列:编码阶段将整个源序列编码成一个向量,解码阶段通过最大化预测序列概率,从中解码出整个目标序列。编码和解码的过程通常都使用 RNN 实现。
...