NoRM

python 数据分析--数据可视化工具matplotlib

别等时光非礼了梦想. 提交于 2020-08-05 09:20:36
说明: 数据可视化中的数据集下载地址:(数据来源:从零开始学python数据分析和挖掘) 链接:https://pan.baidu.com/s/1zrNpzSNVHd8v1rGFRzKipQ 提取码:mx9d 数据可视化是数据分析中的一部分,可用于数据的探索和查找缺失值等,也是展现数据的重要手段。matplotlib是一个强大的工具箱,其完整的图表样式函数和个性化的自定义设置,可以满足几乎所有的2D和一些3D绘图的需求。 1. 条形图 条形图主要用来表示分组(或离散)变量的可视化,可以使用matplotlib完成条形图的绘制。 1.1 垂直条形图 以垂直条形图为例,离散型变量在各水平上的差异就是比较柱形的高低,柱体越高,代表的数值越大。plt.bar()函数的参数列表: left:传递数值序列,指定条形图中x轴上的刻度值, 现left需改为x 。 height:传递数值序列,指定条形图y轴上的高度。 width:指定条形图的宽度,默认为0.8。 bottom:用于绘制堆叠条形图。 color:指定条形图的填充色。 edgecolor:指定条形图的边框色。 linewidth:指定条形图边框的宽度,如果指定为0,表示不绘制边框。 tick_label:指定条形图的刻度标签。 xerr:如果参数不为None,表示在条形图的基础上添加误差棒。yerr:参数含义同xerr。 label

SparseNN中的优化

纵然是瞬间 提交于 2020-07-29 05:54:29
作者|The AI LAB 编译|VK 来源|Medium 对SparseNN模型的过拟合进行研究,并探索了多种正则化方法,如嵌入向量的max-norm/constant-norm、稀疏特征id的dropout、参数的freezing、嵌入收缩等。然而,据我们所知,在单次训练中,没有显著的减少过拟合的效果。 正则化全连接层和稀疏参数 随机梯度下降优化器使用小批量样本来更新全连接层和稀疏参数。给定一个小批量的例子,通常所有的全连接层参数都会被更新(假设没有gate或dropout),而只有一小部分稀疏参数会在正向传播中被激活,从而在反向传播中被更新。例如,假设一个稀疏特征对用户在过去一周内单击的广告id进行编码,虽然我们可能有数百万个惟一的广告id,但是在一个小型批处理中(通常是100个样本)出现的广告id的数量与基数相比非常有限。 正则化稀疏参数与全连接层参数的不同之处在于,我们需要在运行时识别小型批处理中已激活的稀疏参数,然后仅对这些参数进行正则化。 在正则化全连接层参数时需要注意的一点是,全连接层中的偏差通常不需要正则化。因此,需要识别这些偏差,并将它们自动排除在正则化之外。 L2正则化 J(W)是经验损失,||W_dense||²是全连接层稀疏参数(也称为L2正则化器)的L2范数的平方;||W_sparse||²也是如此。 参数W_i的损失L的梯度被分解为经验损失J和所谓的

SparseNN中的优化

落花浮王杯 提交于 2020-07-29 04:03:37
作者|The AI LAB 编译|VK 来源|Medium 对SparseNN模型的过拟合进行研究,并探索了多种正则化方法,如嵌入向量的max-norm/constant-norm、稀疏特征id的dropout、参数的freezing、嵌入收缩等。然而,据我们所知,在单次训练中,没有显著的减少过拟合的效果。 正则化全连接层和稀疏参数 随机梯度下降优化器使用小批量样本来更新全连接层和稀疏参数。给定一个小批量的例子,通常所有的全连接层参数都会被更新(假设没有gate或dropout),而只有一小部分稀疏参数会在正向传播中被激活,从而在反向传播中被更新。例如,假设一个稀疏特征对用户在过去一周内单击的广告id进行编码,虽然我们可能有数百万个惟一的广告id,但是在一个小型批处理中(通常是100个样本)出现的广告id的数量与基数相比非常有限。 正则化稀疏参数与全连接层参数的不同之处在于,我们需要在运行时识别小型批处理中已激活的稀疏参数,然后仅对这些参数进行正则化。 在正则化全连接层参数时需要注意的一点是,全连接层中的偏差通常不需要正则化。因此,需要识别这些偏差,并将它们自动排除在正则化之外。 L2正则化 J(W)是经验损失,||W_dense||²是全连接层稀疏参数(也称为L2正则化器)的L2范数的平方;||W_sparse||²也是如此。 参数W_i的损失L的梯度被分解为经验损失J和所谓的

java多线程

限于喜欢 提交于 2020-07-28 07:58:10
线程实现 如果想要在java之中实现多线程的定义,那么久需要有一个专门的线程主体类进行线程的执行任务的定义,而这个主体类的定义要满足:必须实现特定的接口或者继承特定的父类才可以完成。 Thread类实现多线程 Java里面提供有一个 java.lang.Thread 的程序类,那么一个类只要继承此类就表示这个类为线程的主体类;并不是说这个类久可以实现多线程处理,还需要覆写Thread类中提供的run()方法,而这个方法就属于线程的主方法。 class MyThread extends Thread{//线程的主体类 private String title; public MyThread(String title){ this.title=title; } @Override public void run() {//线程的主方法 for (int x = 0; x < 5; x++) { System.out.println(this.title+",x的值:"+x); } } } 多线程要执行的功能都应在run()方法中进行定义。要想启动多线程必须使用start()方法。 例如:直接实例化对象调用run()方法 public class ThreadDemo { public static void main(String[] args) { new MyThread(

Java线程池

故事扮演 提交于 2020-07-27 22:33:04
前言 Java中线程池属于jdk1.5版本加入的任务执行模块功能,任务执行是一个生产者-消费者模式,任务执行的顶层抽象是Executor接口,ExecutorService接口实现了Executor,线程池的抽象是 ThreadPoolExecutor 类,继承关系如下图: 而 Executors 是一个工具类,内置了多种创建线程池的方法: newFixedThreadPool:固定长度线程池 newCachedThreadPool :可缓存线程池 newSingleThreadExecutor:单线程的线程池 newScheduledThreadExecutor:固定长度的,可以延迟或定时执行的线程池 其内部实现不过是调用了 ThreadPoolExecutor 的不同构造方法,所以只要理解了 ThreadPoolExecutor 最全的构造方法的参数含义,自然就理解了上面列举的不同线程池的作用及区别。另外,在Alibaba编码规范中明确要求,线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,这样可以最大限度的保持灵活性,增加自己的线程名称,监控等,让其他人更好懂线程池的运行规则。所以我们以下只关注 ThreadPoolExecutor 类的用法。 ThreadPoolExecutor详解 public

tensorflow下基于DNN实现实时分辨人脸微表情

不想你离开。 提交于 2020-07-27 08:41:26
参加学校的国创比赛的时候,我们小组的项目有一部分内容需要用到利用摄像头实现实时检测人脸的表情,因为最近都在看深度学习方面的相关知识,所以就自己动手实现了一下这个小Demo.参考网上的资料,发现大部分是使用CNN和DNN进行学习,经过本人亲自实践,我发现DNN的识别效果更佳~(楼主接下来就要讲的是基于DNN的模型,要是你对CNN的模型感兴趣,欢迎私戳楼主~) 所需环境:opencv + tensorflow1.8 + pycharm 代码以及模型的下载地址: https://github.com/tgpcai/Microexpression_recognition (如果喜欢请帮楼主点个start~) 最后实现的结果图: 目录 1.数据集简介 2.代码实现 (0)实现Demo的代码组织结构 (1)数据预处理 (2)训练模型 (3)调用模型实现人脸微表情识别 3.个人遇坑以及总结 1.数据集简介 人脸表情识别程序所采用的数据集为FER2013(facial-expression-recognition 2013)以及中科院的微表情数据,该数据集需要在kaggle网 站上进行下载,下载地址为: https://www.kaggle.com/c/challenges-in-representation-learning-facial-expression-recognition

用 Python 可以实现侧脸转正脸?我也要试一下!

时光毁灭记忆、已成空白 提交于 2020-07-26 13:08:00
作者 | 李秋键 责编 | Carol 封图 | CSDN 下载自视觉中国 很多人学习python,不知道从何学起。 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。 很多已经做案例的人,却不知道如何去学习更加高深的知识。 那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码! QQ群:1097524789 近几年来GAN图像生成应用越来越广泛,其中主要得益于GAN 在博弈下不断提高建模能力,最终实现以假乱真的图像生成。 GAN 由两个神经网络组成,一个生成器和一个判别器组成,其中生成器试图产生欺骗判别器的真实样本,而判别器试图区分真实样本和生成样本。这种对抗博弈下使得生成器和判别器不断提高性能,在达到纳什平衡后生成器可以实现以假乱真的输出。 其中GAN 在图像生成应用最为突出,当然在计算机视觉中还有许多其他应用,如图像绘画,图像标注,物体检测和语义分割。在自然语言处理中应用 GAN 的研究也是一种增长趋势, 如文本建模,对话生成,问答和机器翻译。 然而,在 NLP 任务中训练 GAN 更加困难并且需要更多技术,这也使其成为具有挑战性但有趣的研究领域。 而今天我们就将利用CC-GAN训练将侧脸生成正脸的模型,其中迭代20次结果如下: 实验前的准备 首先我们使用的python版本是3.6.5所用到的模块如下

Java OpenCV 模版匹配

只谈情不闲聊 提交于 2020-05-08 15:58:24
函数: Imgproc.matchTemplate(Mat image, Mat templ, Mat result, int method) 参数说明: image:源图像 templ:模板图像 result:比较结果 method:匹配算法 匹配算法: TM_SQDIFF 平方差匹配法:该方法采用平方差来进行匹配;最好的匹配值为0;匹配越差,匹配值越大。 TM_CCORR 相关匹配法:该方法采用乘法操作;数值越大表明匹配程度越好。 TM_CCOEFF 相关系数匹配法:1表示完美的匹配;-1表示最差的匹配。 TM_SQDIFF_NORMED 归一化平方差匹配法。 TM_CCORR_NORMED 归一化相关匹配法。 TM_CCOEFF_NORMED 归一化相关系数匹配法 原图像: 自己分割一个图像: 依赖: <!-- https: // mvnrepository.com/artifact/org.bytedeco/javacv-platform --> <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv-platform</artifactId> <version>1.4.2</version> </dependency> 代码: public class MatchTemplate { private

KNN图像分类及Python实现

会有一股神秘感。 提交于 2020-05-08 02:16:33
NN,Nearest Neighbor,最近邻 KNN,K-Nearest Neighbor,K最近邻 KNN分类的思路: 分类的过程其实是直接将测试集的每一个图片和训练集中的所有图片进行比较,计算距离(这里使用L2距离)。 距离越远,代表图片之间的相似度越低;距离越近,代表图片之间越相似。 找到和测试图片距离最近的K个图,统计它们的分类,数量最多的分类就作为测试图片的分类。 Python实现: 1、加载CIFAR-10数据,参考前一篇 CIFAR-10和python读取 X_train,训练集 (50000,32,32,3) y_train, 训练分类集 (50000,) X_test, 测试集 (5000,32,32,3) y_test,测试分类集 (5000,) # Load the raw CIFAR-10 data. cifar10_dir = ' cs231n/datasets/cifar-10-batches-py ' # Cleaning up variables to prevent loading data multiple times (which may cause memory issue) try : del X_train, y_train # del 只删除变量,不删变量引用的数据 del X_test, y_test print ( ' Clear

MMDetection官方教程 技术细节 | 四

一曲冷凌霜 提交于 2020-05-06 20:27:13
作者|open-mmlab 编译|Flin 来源|Github 技术细节 在本节中,我们将介绍训练检测器的主要单元:数据管道,模型和迭代管道。 数据管道 按照规定, 我们使用 Dataset 和 DataLoader 用于多个处理的数据加载。 Dataset 返回对应于模型的forward方法的参数的数据项字典。由于对象检测中的数据大小可能不同(图像大小,gt bbox大小等),因此我们在MMCV中引入了一种新类型 DataContainer ,以帮助收集和分配不同大小的数据。有关更多详细信息,请参见此处( https://github.com/open-mmlab/mmcv/blob/master/mmcv/parallel/data_container.py ) 。 对数据准备管道和数据集进行分解。通常,数据集定义了如何处理注释,数据管道定义所有准备数据字典的步骤。流水线由一系列操作组成。每个操作都将一个dict作为输入,并为下一个转换输出一个dict。 在下图中,我们展示了经典管道。蓝色块是管道操作。随着管道的进行,每个操作员可以向结果字典添加新键(标记为绿色)或更新现有键(标记为橙色)。 这些操作分为数据加载, 预处理, 格式化和测试时间扩充。 这是Faster R-CNN的管道示例。 img_norm_cfg = dict( mean=[123.675, 116.28,