现代卷积神经网络
总结一些从80年代至今的论文提出的用于计算机视觉的常用卷积神经网络
LeNet LeNet是一系列网络的总称,包括LeNet1 - LeNet5,由Yann LeCun等人在1990年《Handwritten Digit Recognition with a Back-Propagation Network》中提出,是卷积神经网络的HelloWorld。主要用于手写数字体识别。
LeNet是早期成功的神经网络,先使用卷积层来学习图像空间信息,然后使用全连接层来转换到类别空间。
AlexNet AlexNet赢了2012年ImageNet竞赛冠军,标志着新一轮的神经网络热潮的开始
本质是一个更深更大的LeNet,10×参数个数,260×计算复杂度
主要改进:dropout、ReLU、MaxPooling、数据增强
因为网络深度和宽度改变,量变引起质变,从而引起计算机视觉方法论的改变
VGG 提出VGG块,是AlexNet思路的拓展,本质就是将AlexNet中的卷积+池化 组合操作封装成一个VGG块,然后在VGG网络中反复调用,也就是一个更大更深的Ale ...
MNIST数据集
MNIST数据集介绍 MNIST 数据集已经是一个被”嚼烂”了的数据集, 作为机器学习在视觉领域的“hello world”,很多教程都会对它”下手”, 几乎成为一个 “典范”。
MNIST 数据集可在 http://yann.lecun.com/exdb/mnist/ 获取, 它包含了四个部分:
Training set images: train-images-idx3-ubyte.gz (9.9 MB, 解压后 47 MB, 包含 60,000 个样本)
Training set labels: train-labels-idx1-ubyte.gz (29 KB, 解压后 60 KB, 包含 60,000 个标签)
Test set images: t10k-images-idx3-ubyte.gz (1.6 MB, 解压后 7.8 MB, 包含 10,000 个样本)
Test set labels: t10k-labels-idx1-ubyte.gz (5KB, 解压后 10 KB, 包含 10,000 个标签)
MNIST 数据集来自美国国家标准与技术研究所, ...
Pytorch中比较好用的API
本专栏主要介绍Pytorch中比较好用的API
nn.Flatten() torch.nn.Flatten(start_dim=1, end_dim=-1)
作用:将连续的维度范围展平为张量
参数:开始维度,结束维度
input = torch.randn(32, 1, 5, 5) # 随机数# With default parametersm = nn.Flatten() # 默认维度展开 (1, -1)output = m(input)output.size()#torch.Size([32, 25])# With non-default parametersm = nn.Flatten(0, 2) # 指定维度展开 (0, -2)output = m(input)output.size()#torch.Size([160, 5])
next()和iter() 经常会遇到next和iter联合使用,一般用于取数据时:X, y = next(iter(data.DataLoader(mnist_train, batch_size=18) ...
NVIDIA软硬件
前段时间调研学习NVIDIA Aerial SDK,再加上本科做比赛接触到很多NVIDIA的产品,毕设使用的硬件平台也是NVIDIA的嵌入式套件,后续还可能接触他们的产品,因此想详细逛一下官网,对软硬件产品有更深入的理解。NVIDIA中文官网
软硬件产品 先来看一下中文官网,在官网上方的目录栏产品中包括了NVIDIA提供的全部软硬件产品
从上图可以看到硬件主要包括游戏和娱乐、笔记本电脑和工作站、云和数据中心、网络、GPU、嵌入式系统几个分类。由此也可以总结出云、本地数据中心、边缘处理器的硬件架构。比如EGX等组合平台就是这种架构
软件主要包括应用框架、应用和工具、游戏和创作、基础架构、云服务几个分类。由此可以总结出硬件驱动、CUDA、虚拟容器、应用SDK、大规模生态的软件架构,另外还有软件管理、IO加速等应用
GPU - GPC - SM - CUDA CORE TENSOR CORE RT CORE
NVIDIA应用生态系统
如图以英伟达应用生态系统为例,因为它是比较常用的大规模生态系统,致力于解决具体应用需求。从底层至上层,从硬件至软件分为硬件平台、 ...
CIFAR数据集
CIFAR-10 CIFAR-10数据集由10类32x32的彩色图片组成,一共包含60000张图片,每一类包含6000图片。其中50000张图片作为训练集,10000张图片作为测试集。
CIFAR-10数据集被划分成了5个训练的batch和1个测试的batch,每个batch均包含10000张图片。测试集batch的图片是从每个类别中随机挑选的1000张图片组成的,训练集batch以随机的顺序包含剩下的50000张图片。不过一些训练集batch可能出现包含某一类图片比其他类的图片数量多的情况。训练集batch包含来自每一类的5000张图片,一共50000张训练图片。 下图显示的是数据集的类,以及每一类中随机挑选的10张图片:
CIFAR-10数据集解析 官方给出了多个CIFAR-10数据集的版本,以下是链接:
Version
Size
md5sum
CIFAR-10 python version
163 MB
c58f30108f718f92721af3b95e74349a
CIFAR-10 Matlab version
175 MB
70270af8584 ...
JPEG压缩/解压缩用于无线通信
最近有无线传输图像的需求,因为原图数据量很大,因此需要使用JPEG或其他压缩算法对原图进行压缩后再传输
图像文件和压缩标准 常见的图像文件后缀有.arw .bmp .jpg .png .gif .tif .svg等
.arw:arw是索尼相机的RAW图像格式。RAW格式可以称为是原始图片数据格式,可以进行更多的后期调整,图像文件中包括光圈、快门、ISO、GPS等相机信息。RAW是广大摄影爱好者的常用格式
.bmp:BMP格式是微软公司制定的图形标准,最大的优点就是在PC上兼容度一流,几乎能被所有的图形软件“接受”,可称为通用格式,就算不装任何看图软件,用Windows的“画笔”一样可以看。其结构简单,未经过压缩,储存为bmp格式的图形不会失真,但文件比较大,而且不支持Alpha(透明背景)通道
.jpg:JPG格式是目前网络上最流行的图形格式,它可以把文件容量压缩到最小的格式。JPG支持不同程度的压缩比,您可以视情况调整压缩倍率,压缩比越大,品质就越低;相反地,压缩比越小,品质就越好。不过要注意的一点是,这种压缩法属于有损压缩,文件的压缩会使得图 ...
Game Categories
游戏分类 游戏分类是指对电子游戏的分类。电子游戏的种类五花八门,为了方便区别,需要对它们进行分类。由此就产生了游戏分类的定义。常见的分类有RPG、ACT、AVG、AAG、SLG、SRPG、RTS、FTG、STG、FRSPS、TPS、PZL、SPG、RCG(RAC)、CAG、TAB、MSC、WAG、MUD、MOBA
RPG
角色扮演游戏。由玩家扮演游戏中的一个或数个角色,有完整的故事情节的游戏。玩家可能会与冒险类游戏混淆,其实区分很简单,RPG游戏更强调的是剧情发展和个人体验,一般来说,RPG可分为日式和美式两种,主要区别在于文化背景和战斗方式。日式RPG多采用回合制或半即时制战斗,如《最终幻想》系列,大多国产中文RPG也可归为日式RPG之列,如大家熟悉的《仙剑奇侠传》《剑侠》等;美式RPG如《暗黑破坏神》系列。
ACT
动作游戏。玩家控制游戏人物用各种武器消灭敌人以过关的游戏,不追求故事情节,电脑上的动作游戏大多脱胎于早期的街机游戏和动作游戏如《魂斗罗》、《三国志》、《鬼泣》系列等,设计主旨是面向普通玩家,以纯粹的娱乐休闲为目的,一般有少部分简单的解谜成份,操作简单,易于 ...
毕业设计:嵌入式平台的目标检测-6
托更很久,接近三个月,毕业设计答辩也结束了,在此期间帮几个同学做毕设小赚几笔,感慨大学四年时光飞逝……
毕业了~
激活函数
背景 深度学习的每一个组件都需要我们理解其原理,只有掌握了基础知识,我们才能不断的优化模型和进行算法创新。本篇文章总结了 26 种激活函数,有些是非常经典的以至于原始论文无从参考,如果愿意深入研究的话可以自行搜索相关论文,至于有参考文献的,我这里都附上该函数的出处。原文链接:[Visualising Activation Functions in Neural Networks](https://dashee87.github.io/data science/deep learning/visualising-activation-functions-in-neural-networks/) ,本文在原文的基础之上做了翻译和总结,并加上详细解释,以方便日后自己使用。
激活函数简介为什么神经网络需要激活函数 当我们不用激活函数时,权重和偏差只会进行 线性变换。线性方程很简单,但解决复杂问题的能力有限。没有激活函数的神经网络实质上只是一个 线性回归模型。激活函数对输入进行非线性变换,使其能够学习和执行更复杂的任务。我们希望我们的神经网络能够处理 复杂任务, ...
Python的queue模块
queue 模块即队列,特别适合处理信息在多个线程间安全交换的多线程程序中。下面我们对 queue 模块进行一个详细的使用介绍
queue 模块定义的类和异常 queue 模块定义了以下四种不同类型的队列,它们之间的区别在于数据入队列之后出队列的顺序不同
queue.Queue(maxsize=0) 先进先出(First In First Out: FIFO)队列,最早进入队列的数据拥有出队列的优先权,就像看电影入场时排队一样,排在队伍前头的优先进入电影院
入参 maxsize 是一个整数,用于设置队列的最大长度。一旦队列达到上限,插入数据将会被阻塞,直到有数据出队列之后才可以继续插入。如果 maxsize 设置为小于或等于零,则队列的长度没有限制
示例如下:
import queueq = queue.Queue() # 创建 Queue 队列for i in range(3): q.put(i) # 在队列中依次插入0、1、2元素for i in range(3): print(q.get()) # 依次从队列中取出插入的元素,数据元素输 ...