3 超级无敌小小顺利

尚未进行身份认证

复旦大学·工程与应用技术研究院Ph.D在读,计算机视觉

等级
TA的排名 9w+

机器学习基础——彻底搞懂Precision\Recall\F1\P-R\ROC

一直以为自己理解这些概念,但是其实只是听说过而已。这些概念的释义来自于周志华教授的《机器学习》,都属于对机器学习算法的性能度量。一、错误率与精度还是使用书上的定义写的明确,test set中所有样本预测对和预测错所占的比例就是这两个指标,求和为1。但是其实这里表述并不是很好,这里的“精度”更好的表示是“准确度”(Accuracy),这两个指标只是在“对”与“错”层面进行分析,并未涉及出错原...

2020-03-15 20:40:13

神经网络运算量&参数量估计——FLOPS和FLOPs辨析

一、概念明晰首先要明确“运算量”和“参数量”两个概念:参数量:这个比较好理解,例如卷积层中的卷积核c_i*k*k*n_o,其参数量就是相乘的结果。而且,无论输入图像的尺寸怎么变(YOLO实现中的multi scale训练策略),只要模型结构确定,参数量就固定。还需要注意,参数都是FP32(4字节)存放,所以模型大小是参数量*4。运算量:使用FLOPs衡量,代表浮点运算次数,这个可以衡...

2020-02-29 15:41:32

Vulkan着色器的GLSL创建、编译、加载、创建流程

Vulkan没有指定官方的着色器编程语言,而是采用SPIR-V二进制中间格式进行表示。开发人员一般需要基于某种着色器编程语言开发着色器,之后再编译为SPIR-V格式。可以选用GLSL着色器编程语言进行开发。 大型游戏场景中,一般预先将着色器编译为SPIR-V格式保存在文件中,程序运行时直接加载SPIR-V数据,提高效率。 着色器的预编译和调用过程如面流程所示:...

2020-02-21 10:43:32

初识Vulkan渲染管线

目前参考《Vulkan规范》和《Vulkan开发实战详解》对渲染管线有了一个初步的认识。现结合中英文的渲染管线图进行笔记整理。中英文的渲染管线图分别如下所示:绘制命令送入设备队列执行后,Vulkan将原始的物体顶点坐标数据、顶点颜色数据最终转化为屏幕中画面。上面中文管线结构图中有两个应用程序入口,左侧为简单示例入口,右侧为使用GPU进行高性能通用计算时的计算管线。1.绘制:命...

2020-02-20 16:37:49

Pytorch训练流程

调试了很久YOLO的标准Pytorch实现,将Train代码进行了重新整理,抽出了标准的Pytorch训练框架。现在整理下来,以备后用。整理后的代码分为三个大部分,每个大部分分为三个小部分:1、初始化(Init):训练之前先分别创建Model、Dataset&Dataloader、Optimizer;2、轮次内部(Epoch):分别进行:Dataloader遍历训练、Save模型...

2020-02-01 18:22:14

Tensorboard在网络训练中的Logger使用方法

做为神经网络训练中最常用的可视化工具,Tensorboard经常在Pytorch和Tensorflow框架中做为可视化工具。但是其使用的确是有点繁琐,所以开设了一个这样的专题,用于总结见过的工程里面的数据Logger设定方法。希望自己能够通过积累慢慢掌握这个工具。一、YOLO-Pytorch版中的Logger在陈老师这里做DAC比赛,让我有机会把YOLO工程整个撸了一遍。此工程中的数据保存...

2020-02-01 17:45:27

argparse模块使用说明

深度学习的工程中,py文件中的main函数一开始总会有大量的参数传入,而通常使用的方法就是使用argparse通过命令行传入,这篇博文旨在记录argparse的常用方法。一、语句简介1.载入argparse模块:import argparse2.创建语法分析器:parser = argparse.ArgumentParser()3.添加选项:parser.add_...

2020-01-30 10:50:11

Python中 *args 和 **kwargs 的含义和用法

*args和**kwargs都是用于函数定义时的功能性标识,其主要作用是参数传递。一、*args的用法定义函数时,将*args放在参数列表中,调用时直接放入多个数值,输出结果和类别:def function(*args): print(args, type(args))function(1,2,3,4,5)输出结果为:(1, 2, 3, 4, 5) <class...

2020-01-29 17:09:02

模型量化——基础知识 & LSQ论文阅读

感谢陈老师给的机会,有幸能够参加2020年的DAC比赛。我在其中负责目标检测器的调试和量化。自己第一次接触量化这个任务,很多东西都是一点一点学。一、量化基础对于一个全精度的值vvv,若量化步长为sss(也可理解为量化分辨率),正负量化层级(quantization levels )分别为QPQ_{P}QP​和QNQ_{N}QN​。则量化过程为:vˉ=Int(clip(v/s,−QN,QP))\...

2020-01-28 17:25:11

批量归一化:Batch Normalization层 原理+Pytorch实现

一、BN层概念明晰BN层存在的意义:让较深的神经网络的训练变得更加容易。BN层的工作内容:利用小批量数据样本的均值和标准差,不断调整神经网络中间输出,使整个神经网络在各层的中间输出的数值更加稳定。BN层注意事项:训练模式和预测模式计算结果不同。训练模式下:数据是成批的,可以进行批内求均值、求方差,进而得到归一化结果,最后乘以拉伸参数(scale—)和偏移参数(shift—)得...

2020-01-06 20:13:41

转载篇:优秀博文汇总

1.Pytorch中堆网络语法:《nn.moduleList 和Sequential由来、用法和实例 —— 写网络模型》https://blog.csdn.net/e01528/article/details/843971742.CNN中卷积操作十大改进方向(Depth-wise/ Dilated/ Deformable/ Shuffle/ SENet etc)https://blog...

2020-01-01 17:04:01

约束非线性优化:几何意义&对偶形式

借助老师的PPT对约束非线性优化问题的几何意义和对偶形式进行阐述。一、几何意义(1)等式约束考虑只有等式约束h(x)的非线性优化问题,形式为:可视化结果如下图所示,红色曲线为等式约束,环线为目标函数等值面。达到最优解x*时,必定可以在此处借助Lagrange乘子完成梯度合成。(2)不等式约束约束条件换成不等式,此处只考虑一般形式的>=0约束:L...

2019-12-29 15:05:11

二次规划_3_——直接消去法&广义消去法

  教材里面没有对直接消去法&广义消去法进行任何介绍,所有的内容都在老师的PPT里面,又起了个名字叫降维。公式太多了,老师又说的确要考,所以打算只把大致思路理清楚,真考到了列出处理思想就跑。一、直接消去法  考虑具有等式线性约束的二次规划:min   12xTHx+cTxs.t.   Ax=bmin \ \ \ \frac{1...

2019-12-29 14:03:25

二次规划_2_——起作用集方法

  这个算法很反人类,迭代过程相当复杂,最优化导师说:“明确地告诉你要考的。”  起作用集方法适用于消元法和Lagrange方法无法处理的不等式约束二次规化问题。其主要思想是:以已知点为可行点,只考虑将该点的起作用约束,最小化f(x)f(x)f(x),得到新的可行点后重复以上做法。一、起作用集法适用情形  适用于具有不等式约束的二次规划问题min   f(x)=...

2019-12-29 09:55:50

二次规划_1_——Lagrange方法

二次规化是非线性规化中的一种特殊情形,其目标函数是二次实函数,约束是线性的。考试中会考到四种方法,分别为:Lagrange方法、起作用集方法、直接消去法和广义消去法。前两种在教材上有详细描述,后面两种出现在PPT上面。本节先介绍最简单的方法:Lagrange方法。一、Lagrange方法适用情形Lagrange方法适用于具有等式线性约束的二次规化问题:min   ...

2019-12-28 20:43:32

约束优化方法_2_——Frank-Wolfe方法

Frank-Wolfe方法属于约束优化中可行方向法的一种。上一篇博文对同类型的Zoutendijk可行性方法进行了介绍,这一部分着重关注Frank-Wolfe方法。Frank-Wolfe方法的基本思想是:每次迭代中使用一阶泰勒展开式将目标函数线性化,通过解线性规划得到可行方向,进而沿此方向在可行域内作一维搜索。一、Frank-Wolfe所针对的优化问题首先要明确这个算法的提出是针对哪一种问题。...

2019-12-28 19:40:21

约束优化方法_1_——Zoutendijk可行方向法

Zoutendijk可行性方法属于约束极值问题可行方向法中的一种。与之前无约束极值问题中的最速下降法、牛顿法相像,可行方向法的策略是:从可行点出发,沿着下降的可行方向进行搜索,求出使目标函数值下降的可行点。 教材中共介绍了四种方法:Zoutendijk可行性方法、Rosen梯度投影方法、既约梯度法、Frank-Wolfe方法。博文对Zoutendijk可行性方法和Frank-Wolfe方法进行了介...

2019-12-27 22:44:29

《最优化理论与算法》最优化条件部分学习感悟

最优化学到了最优化条件部分,由于自己的数学功底实在是太差,啃得很慢。今天下午终于对“约束极值问题的最优性条件”部分有了相对宏观的视角,所以记录下来以备后用。【必要条件】:如果已经知道了是最优解,那么它一定满足的条件。最优化中通常都是:”若x是局部最优解…”,这样说的都是必要条件。【充分条件】:找一些条件,满足这些条件之后,此解就是最优的。最优化中通常都是先研究局部最小值的必要条件,之...

2019-12-19 13:53:13

相机几何学——投影矩阵P的构成(实验报告版)

最近在可视化WildTrack数据集,由于要对棋盘格点进行映射和绘制,涉及到了P矩阵的计算。现在对P的来源进行了系统的整理,以备后忘。在最后对场地端点映射产生的问题进行了讨论(事情开始变得有意思了起来!)。似乎一切都是那么的完美,但是当我想绘制场地边线时,却遇到了飞掉的情况,成功和失败的案例如下:最后想来想去,给出了一种解释:如果相机放的足够远,可以摄到场...

2019-12-16 18:36:08

《强化学习》——CH2 多臂赌博机 笔记

2019-11-12 18:09:14

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。