函数图像

Pytorch调研笔记

随声附和 提交于 2020-01-21 16:07:51
Pytorch 训练调研 首先我们简单说明一下,这么多深度学习框架中,为什么选择PyTorrch呢? 因为PyTorch是当前难得的简洁优雅且高效快速的框架。在笔者眼里,PyTorch达到目前深度学习框架的最高水平。当前开源的框架中,没有哪一个框架能够在灵活性、易用性、速度这三个方面有两个能同时超过PyTorch。下面是许多研究人员选择PyTorch的原因。 1、简洁:PyTorch的设计追求最少的封装,尽量避免重复造轮子。不像TensorFlow中充斥着session、graph、operation、name_scope、variable、tensor、layer等全新的概念,PyTorch的设计遵循tensor→variable(autograd)→nn.Module 三个由低到高的抽象层次,分别代表高维数组(张量)、自动求导(变量)和神经网络(层/模块),而且这三个抽象之间联系紧密,可以同时进行修改和操作。 简洁的设计带来的另外一个好处就是代码易于理解。PyTorch的源码只有TensorFlow的十分之一左右,更少的抽象、更直观的设计使得PyTorch的源码十分易于阅读。 2、速度:PyTorch的灵活性不以速度为代价,在许多评测中,PyTorch的速度表现胜过TensorFlow和Keras等框架 。框架的运行速度和程序员的编码水平有极大关系,但同样的算法

【数据分析与科学计算可视化】numpy 和 matplotlib库总结

让人想犯罪 __ 提交于 2020-01-21 14:01:51
一、numpy库 numpy:科学计算包,支持N维数组运算、处理大型矩阵、成熟的广播函数库、矢量运算、线性代数、傅里叶变换、随机数生成,并可与C++/Fortran语言无缝结合。树莓派Python v3默认安装已经包含了numpy。 另: scipy:scipy依赖于numpy,提供了更多的数学工具,包括矩阵运算、线性方程组求解、积分、优化、插值、信号处理、图像处理、统计等等。 1.扩展库numpy简介 导入模板:(交换式) >>>import numpy as np 2.numpy库应用于数组 (1)简单数组的生成 >>>import numpy as np #把列表转化为数组 >>> np.array([0,1,2,3,4]) array([0, 1, 2, 3, 4])>>>np.array((0,1,2,3,4)) # 元组转化为数组array([0, 1, 2, 3, 4]) >>>np.array(range(5)) # 把range对象转换成数组 array([0, 1, 2, 3, 4]) >>>np.array([[1,2,3,4,],[5,6,7,8]]) #二维数组 array([[1, 2, 3, 4], [5, 6, 7, 8]]) >>>np.arange(8) # 类似于内置函数range() array([0,1,2,3,4,5,6,7]) >>

傅立叶变换的意义

寵の児 提交于 2020-01-20 23:01:55
一、傅立叶变换的由来 关于傅立叶变换,无论是书本还是在网上可以很容易找到关于傅立叶变换的描述,但是大都是些故弄玄虚的文章,太过抽象,尽是一些让人看了就望而生畏的公式的罗列,让人很难能够从感性上得到理解,最近,我偶尔从网上看到一个关于数字信号处理的电子书籍,是一个叫 Steven W. Smith, Ph.D. 外国人写的,写得非常浅显,里面有七章由浅入深地专门讲述关于离散信号的傅立叶变换,虽然是英文文档,我还是硬着头皮看完了有关傅立叶变换的有关内容,看了有茅塞顿开的感觉,在此把我从中得到的理解拿出来跟大家分享,希望很多被傅立叶变换迷惑的朋友能够得到一点启发,这电子书籍是免费的,有兴趣的朋友也可以从网上下载下来看一下, URL 地址是: http://www.dspguide.com/pdfbook.htm 要理解傅立叶变换,确实需要一定的耐心,别一下子想着傅立叶变换是怎么变换的,当然,也需要一定的高等数学基础,最基本的是级数变换,其中傅立叶级数变换是傅立叶变换的基础公式。 二、傅立叶变换的提出 让我们先看看为什么会有傅立叶变换?傅立叶是一位法国数学家和物理学家的名字,英语原名是 Jean Baptiste Joseph Fourier (1768-1830) , Fourier 对热传递很感兴趣,于 1807 年在法国科学学会上发表了一篇论文,运用正弦曲线来描述温度分布

1.吴恩达深度学习第一周

梦想与她 提交于 2020-01-20 02:54:08
1.1 欢迎 深度学习改变了传统的互联网业务,例如网络搜索和广告。但是深度学习同时也使得许多产品和企业以很多方式帮助人们。从获得更好的健康关注:深度学习读取x光图像,到生活中的个性化教育,到精准化农业甚至到驾驶汽车和其他方面。如果你想用深度学习来做这些令人窒息的操作,我(吴老师)将帮助你做到这一点。学完这套课程之后,你将能更加自信的继续深度学习之路。AI让我们在接下来的十年中创造更好的社会和时代。 AI是最新的电力,在几百年前,我们社会的电气化改变了每个行业(医疗,交通等)。AI领域发展最为迅速的就是深度学习了。因此,现在深度学习是广受欢迎的一种技巧。这个课程会帮你获得这种技能。 这门课程中你会学到: 第一门课,神经网络和深度学习,第一部门中将会学习如何建立神经网络,包含一个深度神经网络,以及如何在数据上训练他们。最后,将会用神经网络辨认喵星人。 第二门课,深度学习方面的实践,提升你的深度学习网络。学习构建深度学习网络以及如何让他表现良好。将会学到:超参数调整,正则化,诊断偏差,方差以及一些高级优化算法(如momentum,adam)。 第三门课,将会用2周的时间,学习如何结构化你的机器学习工程,构建机器学习的策略改变了深度学习的错误。举个例子:分割数据的方式,分割为训练集,比较集或改变的验证集以及测试集合,在深度学习中贡献不同,影响很大,应该如何处理呢?如果你听说过

OpenCV--Python 图像增强

喜你入骨 提交于 2020-01-19 04:01:43
图像增强主要解决由于图像的灰度级范围较小造成的对比度较低的问题,目的就是将输出图像的灰度级放大到指定的程度,使得图像中的细节看起来增加清晰。对比度增强有几种常用的方法,如线性变换、分段线性变换、伽马变换、直方图正规化、直方图均衡化、局部自适应直方图均衡化等。 1.灰度直方图 在讲解图像增强的方法之前先来认识一下灰度直方图,灰度直方图是图像灰度级的函数,用来描述每个灰度级在图像矩阵中的像素个数或者占有率。接下来使用程序实现直方图: import cv2 as cv import numpy as np import matplotlib . pyplot as plt def calcGrayHist ( I ) : # 计算灰度直方图 h , w = I . shape [ : 2 ] grayHist = np . zeros ( [ 256 ] , np . uint64 ) for i in range ( h ) : for j in range ( w ) : grayHist [ I [ i ] [ j ] ] += 1 return grayHist img = cv . imread ( "../testImages/4/img1.jpg" , 0 ) grayHist = calcGrayHist ( img ) x = np . arange ( 256 ) #

文件搜索和图像裁剪

情到浓时终转凉″ 提交于 2020-01-16 03:08:49
文件搜索有一个类struc_finddata_t,一下内容转自:http://blog.csdn.net/wzhwho/article/details/6372353 到底如何查找文件呢?我们需要一个结构体和几个大家可能不太熟悉的函数。这些函数和结构体在的头文件中,结构体为struct _finddata_t ,函数为_findfirst、_findnext和_fineclose。具体如何使用,我会慢慢讲来~ 首先讲这个结构体吧~ struct _finddata_t ,这个结构体是用来存储文件各种信息的。说实话,这个结构体的具体定义代码,我没有找到,不过还好,文档里面在_find里有比较详细的成员变量介绍。我基本上就把文档翻译过来讲吧: unsigned atrrib: 文件属性的存储位置。它存储一个unsigned单元,用于表示文件的属性。文件属性是用位表示的,主要有以下一些:_A_ARCH(存档)、 _A_HIDDEN(隐藏)、_A_NORMAL(正常)、_A_RDONLY(只读)、_A_SUBDIR(文件夹)、_A_SYSTEM(系统)。这些都是在中定义的宏,可以直接使用,而本身的意义其实是一个无符号整型(只不过这个整型应该是2的几次幂,从而保证只有一位为 1,而其他位为0)。既然是位表示,那么当一个文件有多个属性时,它往往是通过位或的方式,来得到几个属性的综合。例如只读

人工智能实验四:深度学习算法及应用(DNN&CNN)

走远了吗. 提交于 2020-01-12 08:43:37
人工智能实验四报告:深度学习算法及应用 文章目录 人工智能实验四报告:深度学习算法及应用 实验目的 实验要求 实验硬件 实验软件 实验内容与步骤 MNIST数据集 具体实现 DNN(深度神经网络) 概述 具体设计 代码实现 结果输出 结果分析 为啥我又用了CNN(卷积神经网络)? CNN(卷积神经网络) 概述 具体设计 代码实现 结果输出 结果分析 思考题 实验目的 了解深度学习的基本原理 能够使用深度学习开源工具识别图像中的数字 了解图像识别的基本原理 实验要求 解释深度学习原理 对实验性能进行分析 回答思考题 实验硬件 计算机 实验软件 软件:windows操作系统 应用软件:TensorFlow、PyCharm、Python、Google Colab 实验内容与步骤 安装开源深度学习工具设计并实现一个深度学习模型,它能够学习识别图像中的数字序列。使用数据训练它,可以使用人工合成的数据(推荐),或直接使用现实数据。 MNIST数据集 通过下面的代码我们可以对其中的图片有一个大致的把握: import matplotlib . pyplot as plt # 训练集 train_images = mnist . train . images train_labels = mnist . train . labels # 验证集 validation_images = mnist

如何实现LCD显示摄像头图像

时光总嘲笑我的痴心妄想 提交于 2020-01-11 16:46:41
摄像头数据的读出 首先需要将摄像头采集到的数据读出,那么就需要摄像头采集到数据的基本格式以及相关操作函数: typedef struct VideoDevice { int iFd ; int iPixelFormat ; int iWidth ; int iHeight ; int iVideoBufCnt ; int iVideoBufMaxLen ; int iVideoBufCurIndex ; unsigned char * pucVideBuf [ NB_BUFFER ] ; /* 函数 */ PT_VideoOpr ptOPr ; } T_VideoDevice , * PT_VideoDevice ; 函数结构体: typedef struct VideoOpr { char * name ; int ( * InitDevice ) ( char * strDevName , PT_VideoDevice ptVideoDevice ) ; int ( * ExitDevice ) ( PT_VideoDevice ptVideoDevice ) ; int ( * GetFrame ) ( PT_VideoDevice ptVideoDevice , PT_VideoBuf ptVideoBuf ) ; int ( * PutFrame ) ( PT

Python 绘图时用到的各种函数

回眸只為那壹抹淺笑 提交于 2020-01-11 16:22:47
matplotlib 在 python下一般使用matplotlib包下的 pyplot ,所以在import的时候: 一 般 import matplotlib.pyplot as plt 方便使 用它的绘图函数。 show()函数: 显示绘图窗口,把要画的图显示在窗口中。 subplot()函数: 用于添加子图像,参数有三个,分别是子图像的行、列、索引。可以这样使用: subplot(numbRow , numbCol ,plotNum ) subplot(numbRow numbCol plotNum) 前一种是一般的用逗号隔开,明确三个参数。 后一种是三个整数参数直接合成一个整数传入,这要求这个整数只能是3位的,这样才能唯一确定用户传入的参数。(比如223,就是把图像划分成2*2的格子,添加一个子图像在第三个格子里) 子图像是一个一个加进去的,所以我们会问,如果前一个子图像把后一个挡住了怎么办?或者前后的子图像的行列数不同怎么办? 对于挡住的情况,代码按顺序加入子图,后一张子图直接就把挡住的前一张完全去掉了,不管把前一张挡住多少。 对于前后行列数不一致,这没有关系,因为,它加入子图像的规则就是按行列划分,然后把你要插入的子图像插在划分后的索引位置。 如下,先加入1行1列索引为1的子图,就是占满绘图窗口,然后2,2,3,接着3,3,2。可以看到1,1

Matlab绘制图像(plot函数)

喜欢而已 提交于 2020-01-11 15:08:44
Matlab使用 plot函数 绘制图像。 1. 语法 语法 说明 plot(X, Y) 创建 Y 中数据对 X 中对应值的二维线图。 如果 X 和 Y 都是向量,则它们的长度必须相同。plot 函数绘制 Y 对 X 的图。 如果 X 和 Y 均为矩阵,则它们的大小必须相同。plot 函数绘制 Y 的列对 X 的列的图。 如果 X 或 Y 中的一个是向量而另一个是矩阵,则矩阵的各维中必须有一维与向量的长度相等。 如果矩阵的行数等于向量长度,则 plot 函数绘制矩阵中的每一列对向量的图。 如果矩阵的列数等于向量长度,则该函数绘制矩阵中的每一行对向量的图。 如果矩阵为方阵,则该函数绘制每一列对向量的图。 如果 X 或 Y 之一为标量,而另一个为标量或向量,则 plot 函数会绘制离散点。但是,要查看这些点,必须指定标记符号,例如 plot(X,Y,‘o’)。 plot(X, Y, LineSpec) 设置线型、标记符号和颜色。 plot(X1, Y1, …, Xn, Yn) 绘制多个 X、Y 对组的图,所有线条都使用相同的坐标区。 plot(X1, Y1, LineSpec1, …, Xn, Yn, LineSpecn) 设置每个线条的线型、标记符号和颜色。您可以混用 X、Y、LineSpec 三元组和 X、Y 对组: 例如,plot(X1, Y1, X2, Y2,