
新技能
拾贝壳的大男孩
进学致和,行方思远!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
基于FPGA的Opencl学习笔记1--hello world
以windows为例1. 首先是工具的安装,FPGA可以到官网下载opencl pro的版本。Visual studio使用2017版本。社区版应该也可以使用,不过前面走了一些弯路,以为必须要专业版。2. 由于kernel需要在命令行下编译,因此VC 环境要先进行设定: cdC:\Program Files (x86)\Microsoft VisualStudio\2017\Profession...原创 2018-05-06 10:18:55 · 4633 阅读 · 2 评论 -
半年盘点及下半年目标
下半年,在AI的路上继续一路狂奔!原创 2019-06-15 08:57:49 · 427 阅读 · 0 评论 -
利用预训练VGG16实现分类
现实场景中,我们可能获得的带标注的样本会比较小,因此可以利用一些机构提供的预训练网络进行图片分类,这种做法可以利用同行的研究成果,并极大缩短训练时间。以下是利用VGG16进行猫狗分类的一个例子。 导入keras的一些需要的库:from keras.applications import VGG16import osimport numpy as npfrom k...原创 2018-12-15 21:40:49 · 2837 阅读 · 0 评论 -
神经网络算法开发总结--网络结构开发
看了一段时间吴恩达老师的深度学习微课程,收获较大,这阶段做个总结。算法开发包含算法框架开发、网络结构开发及改进、算法应用优化及模型训练、网络模型压缩这几个方向。今天主要总结下网络结构开发及改进方面相关的。模型开发一般包含3方面工作,新网络结构提出、现有网络功能单元增加、现有网络的局部算法优化:解决某一类问题的新的网络结构提出新的算法模型的开发一般为了解决几个问题:提升...原创 2018-10-21 08:53:32 · 1035 阅读 · 0 评论 -
神经网络算法开发学习总结--算法应用及优化
1)算法目标设定 首先要确定一个算法目标及约束条件,比如运行时间、硬件内存限制、准确度等选择算法。 学习效果一般尽量采用单个指标进行评估,对于 N 个评价指标,选择其中一个指标作为优化指标,选择剩下的 N-1 个指标作为满足指标。 比如针对分类,有些场合关注查准率,有些场合关注查全率,而有些是用F1 score来评估。这些效果跟具体应用需求相关。 另外还应该...原创 2018-10-28 15:29:17 · 955 阅读 · 0 评论 -
FPGA实现深度学习的优势及缺点
计算能力一般通过两个参数表征:Peak GOPs峰值性能 Real GOPs实测性能(针对特定网络)FPGA在推理过程,可以做到高的Real GOPs/Peak GOPs,而训练过程,他的结构与算法并不完全匹配。希望后面出的器件可以克服。FPGA的算力优势推理时的低延迟,特别时batch size为1时,这个在微软Brainwave Project项目中中反复提到。GPU的优...原创 2018-10-13 14:56:12 · 8111 阅读 · 4 评论 -
FPGA实现神经网络加速的Hello World
听完很多大咖的观点,对于工程师,未来十年应该有两个技术可以做,一个是AI,提升生产力,一个是区块链,厘清生产关系。个人觉得还是AI好玩些,希望可以挤进去折腾下。对于AI应用落地,其实判断标准就两个,是否可以提升生产力(当然有时不是直接的,产生的数据可能在其他地方提高效率),一个是能否降低交易成本,把实惠给老百姓。 好像有点扯远了,我们还是聊技术吧。FPGA工程师如果想...原创 2018-09-22 23:19:59 · 10031 阅读 · 2 评论 -
FPGA不适合做DNN训练的原因分析
目前FPGA厂商把FPGA定位在DNN的推理上的应用,特别是低延迟,Batch很小的应用,还有像微软的brainwave也是把FPGA定位在推理上的应用,既然FPGA推理过程有宣称的各种低功耗低延迟的好处,为什么不把他应用在训练过程中呢?从算法加速上看,FPGA如果应用在训练上至少要克服两个缺点。 第一个就是精度问题。训练与推理一个很大的区别就是需要多次迭代进行BP计算,更新W...原创 2018-10-04 21:35:05 · 2088 阅读 · 0 评论 -
吴恩达机器学习练习六
SVM支持向量机1)Gaussian kernel实现,计算两个样本的相似度,用于学习非线性边界。sim = exp(-(x1-x2)'*(x1-x2)/(2*sigma^2)); 2)找到最优的C与sigma参数 其实就是枚举,计算不同参数组合的错误率,找到最小的。先用学习的样本进行模型学习,然后用验证集计算错误率。dataset3Params.m文件 ...原创 2018-07-22 18:03:49 · 287 阅读 · 0 评论 -
吴恩达机器学习练习五
1. 线性回归正则化的代价函数和梯度计算 predictions = X*theta;sigma=predictions-y;J= sigma'*sigma/(2*m); J=J+lambda*(theta(2:end)'*theta(2:end))/(2*m);grad=(predictions-y)'*X./m;grad(2:end)=grad(2:end)'+lambda.*the...原创 2018-07-01 20:35:48 · 352 阅读 · 0 评论 -
吴恩达机器学习练习三
练习中的一些注意事项:1)dat文件里面其实包含了变量X与y信息。而且把这个变量名字也包含在文件中的。2)多分类时,预测结果要转成与Y可以比较的,需要在每一行找到最大值的索引(代表数字),然后与y进行比较[all_theta] = oneVsAll(X, y, num_labels,lambda);由于从dat文件中分解出来的y是数字1,2,3…并不能直接用于代价函数的计算,因此在oneVsAll...原创 2018-06-10 17:29:55 · 982 阅读 · 0 评论 -
吴恩达机器学习练习四
吴恩达机器学习练习四完成练习前要搞明白样本如何组织,训练集是5000x400的矩阵,每一行表示一个样本,也就是20x20的像素值。练习中使用的是3层网络,因此参数集是theta1和theta2.练习主要完成代价函数及反向传播算法中梯度的计算(nnCostFunction.m)代码中全部采用向量计算的方式,这样可以提升计算速度需要技巧的地方:将标签转为向量col_v=1:num_labels;for...原创 2018-06-23 21:33:57 · 525 阅读 · 0 评论 -
吴恩达机器学习练习二
机器学习练习二主要与逻辑回归相关。一. 首先时数据可视化,照着手册做就好。二. 实现激活函数逻辑回归主要用于分类,分类结果一般就是0或者1,因此与线性回归的区别就是,针对需要应用一个激活函数,让他的取值范围落在[0,1]之间Octave代码实现很简单,就是:g=1./(1+exp(-z)); %Z可以是向量、矩阵 三. 实现代价函数与梯度计算 gz=sigmoid(X*theta);% calc...原创 2018-06-02 21:39:46 · 946 阅读 · 0 评论 -
吴恩达机器学习练习一
吴恩达机器学习练习一1. 最前面是一些octave的基本操作照着pdf文档练习就好。2. Linear regression with onevariable从文件获取数据以及呈现在ex1中已经自动做好。个人所要做的最重要的是编写代价函数以及梯度下降算法。1)线性回归的目的就是最小化代价函数,因此首先要会根据公司计算出代价函数。 其中 由于x的每一行代表一个样本,而theta是初始...原创 2018-05-20 15:01:20 · 1611 阅读 · 0 评论 -
如何快速学习一项新技能--opencl
走上技术管理后,其实个人很难有机会针对某项技术做深入研究,因为公司对个人的要求不一样,同时个人时间也要分配在管理、人员培养、对外交流及技术趋势跟踪上。但作为一线技术主管,如果不懂技术,不理解一种技术的内在逻辑,那他是很难分配任务并带好团队。针对opencl在FPGA上的开发,其实本质上是为了解决FPGA快速可编程的问题。虽然各种介绍文章说这种技术适合高性能计算,但计算的场景还是挺多的,所以最重要的...原创 2018-05-06 10:23:32 · 372 阅读 · 0 评论 -
神经网络从算法训练到FPGA部署 (1)--开发流程说明
将深度神经网络算法部署到现实场景(基于FPGA),主要包含两部分的工作,一个是为场景找到合适的算法,训练出满足要求的模型;第2个是将模型定点化后部署在FPGA上运行,主要含以下步骤:准备工作:数据收集及TFrecord制作,数据预处理函数编写。 练习时从kaggle网站上获取带标注数据集; 制作训练与验证用的Tfrecord数据文件; ...原创 2019-08-24 09:32:06 · 8343 阅读 · 4 评论