自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

黄飞的博客专栏

微信公众号:机器修行

  • 博客(247)
  • 收藏
  • 关注

原创 公众号“机器修行”开篇·致读者

大家好,欢迎来到“黄飞的博客专栏”!两年前就有开通公众号的想法,一直没有付诸行动。毕业之后可自由支配的时间相对减少,其实应该是拖延症……无数次思想斗争后,终于,一个名叫“机器修行”(ID: Machine2Learn)的公众号落地了!为什么开通公众号?记录日常所学所感,并用最通俗的语言传达出来是开设公众号的初衷。自2015年大三起,笔者将进入实验室后参与科研项目的心路历程以博客的形式记录下来,并发表在CSDN上。这个习惯一直坚持到现在,也将持续进行下去。笔者的CSDN博客专栏栏目众多,包含了曾经涉猎过的

2021-01-16 18:01:57 1615 6

原创 GPU状态监测 nvidia-smi 命令详解

在进行深度学习实验时,GPU 的实时状态监测十分有必要。今天详细解读一下 nvidia-smi 命令。上图是服务器上 GeForce GTX 1080 Ti 的信息,下面一一解读参数。 上面的表格中的红框中的信息与下面的四个框的信息是一一对应的:GPU:GPU 编号; Name:GPU 型号; Persistence-M:持续模式的状态。持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时

2018-02-01 16:43:13 76615 4

原创 主成分分析(PCA)一次讲个够

PCA 简介多元统计分析中普遍存在的困难中,有一个困难是多元数据的可视化。matlab 中的 plot 可以显示两个变量之间的关系,plot3 和surf 可以显示三维的不同。但是当有多于3个变量时,要可视化变量之间的关系就很困难了。幸运的是,在一组多变量的数据中,很多变量常常是一起变动的。一个原因是很多变量是同一个驱动影响的的结果。在很多系统中,只有少数几个这样的驱动,但是多余的仪器使我们测量了很

2017-11-29 11:31:46 55808 6

原创 5 分钟带你弄懂 k-means 聚类

聚类与分类的区别分类:类别是已知的,通过对已知分类的数据进行训练和学习,找到这些不同类的特征,再对未分类的数据进行分类。属于监督学习。聚类:事先不知道数据会分为几类,通过聚类分析将数据聚合成几个群体。聚类不需要对数据进行训练和学习。属于无监督学习。关于监督学习和无监督学习,这里给一个简单的介绍:是否有监督,就看输入数据是否有标签,输入数据有标签,则为有监督学习,否则为无监督学习。更详尽的解释会在后续

2017-11-08 16:16:23 112565 83

原创 对比欧氏距离与余弦相似度

欧式距离欧氏距离就是我们平常所说的距离,如果是平面上的两个点 A(x1,y1)A(x_1,y_1) 和 B(x2,y2)B(x_2,y_2) ,那么 A 与 B 的欧式距离就是 (x1−x2)2+(y1−y2)2‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾√\sqrt{(x_1-x_2)^2+(y_1-y_2)^2} ;如果是三维空间中的两个点 A(x1,y1,z1)A(x_1,y_1,z_1) 和

2017-11-07 16:48:20 21290 3

原创 如何通俗易懂地理解皮尔逊相关系数?

要理解 Pearson 相关系数,首先要理解协方差(Covariance)。协方差表示两个变量 X,Y 间相互关系的数字特征,其计算公式为:COV(X,Y)=1n−1∑n1(Xi−X⎯⎯⎯)(Yi−Y⎯⎯⎯)COV(X,Y)=\frac{1}{n-1}\sum_1^n(X_i-\overline X)(Y_i-\overline Y)当 Y = X 时,即与方差相同。当变量 X,Y 的变化趋势一致时

2017-11-06 11:45:57 69537 6

原创 CentOS 添加环境变量的三种方法

在 Linux CentOS 系统上安装完 MATLAB 后,为了使用方便,需要将 matlab 命令加到系统命令中,如果在没有添加到环境变量之前,执行“matlab”命令时,则会提示命令不存在的错误,如下所示:下面我详细介绍一下在 linux 下将 MATLAB 加入到环境变量中的方法(MATLAB 安装在 /usr/local/MATLAB/R2013a/bin 目录下)。方法一(暂时生效)直接

2016-11-05 11:51:21 73645 1

原创 常用的数据标准化方法

数据的标准化(normalization)是将数据按照一定规则缩放,使之落入一个小的特定区间。这样去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。其中最典型的就是0-1标准化和Z标准化,当然,也有一些其他的标准化方法,用在不同场景,这里主要介绍几种常用的方法。1、Min-Max标准化(Min-Max normalization)也称离差标准化,是对原始数据的

2016-06-13 14:46:39 27769

原创 解决 swap file “*.swp”already exists!问题

在 Linux 下的 vim 编辑过程中,由于某种原因异常退出正在编辑的文件,再次编辑该文件时,会出现如下提示:使用vim编辑文件实际是先 copy 一份临时文件并映射到内存给你编辑, 编辑的是临时文件, 当执行:w 后才保存临时文件到原文件,执行:q 后才删除临时文件。每次启动检索是否有临时文件, 有则询问如何处理,就会出现如上情景。解决办法:将隐藏的 *.swp 文件删除即可,原先的文件便可再次

2016-04-23 15:47:52 97873 9

原创 粒子群算法解决函数优化问题

1 选题描述粒子群算法(particle swarm optimization,PSO)是计算智能领域,除了蚁群算法、鱼群算法之外的一种群体智能地优化算法。该算法最早由Kennedy和Eberhart在1995年提出的。PSO算法源于对鸟类捕食行为的研究,鸟类捕食时,找到食物最简单有效的策略就是搜寻当前距离事物最近的鸟的周围区域。PSO算法是从这种生物种群行为特征中得到启发并用于求解优化问题的

2015-07-03 13:35:58 55439 1

原创 图像质量评估(IQA)——“NIMA: Neural Image Assessment” 论文解读

“NIMA: Neural Image Assessment” 是图像质量评估领域的经典之作,最近在做视频质量评估相关的项目,该文也是必读论文。论文链接就不放了,网上有比较多的下载资源,按照惯例,先放上该论文的引用信息:Talebi H, Milanfar P. NIMA: Neural image assessment[J]. IEEE Transactions on Image Processing, 2018, 27(8): 3998-4011.与笔者之前的一篇博文图像质量评估(IQA)——“Ko

2020-11-21 17:05:27 2957 1

原创 图像质量评估常用评价指标总结

图像质量评估不同于传统意义上的图像识别,其本身是一项主观性较强的任务,无法单纯通过评判准确性来衡量算法模型的性能。其性能好坏通常是评估主观评分和算法评分的相关度,如果两者相关度较高,则说明质量评估算法性能较好,反之则较弱。常用的用于图像质量评估的指标主要有四个:PLCC,SROCC,KROCC 和 RMSE。1. PLCC关于 PLCC(Pearson Linear Correlation Coefficient)皮尔逊线性相关系数的解读,可参考博主另一篇博客:如何通俗易懂地理解皮尔逊相关系数?。需

2020-11-01 23:05:30 7536

原创 图像质量评估(IQA)——“KonCept512” 论文解读

解读之前,论文链接就不放了,网上有比较多的下载资源,先放上该论文的引用信息:Hosu V, Lin H, Sziranyi T, et al. KonIQ-10k: An ecologically valid database for deep learning of blind image quality assessment[J]. IEEE Transactions on Image Processing, 2020, 29: 4041-4056.不难看出,该论文《KonIQ-10k: An ec

2020-10-24 22:13:11 4032 5

原创 SQL 知识点回顾总结(二)

本文在上篇博客 SQL 知识点回顾总结(一)的基础上,再结合《SQL 必知必会》一书对 SQL 相关知识点进行了补充整理,供大家参考,也方便自己查阅备忘。在指定一条 order by 子句时,应该保证它是 select 语句中最后一条子句。如果它不是最后的子句,将会出现错误信息。通常,order by 子句中使用的列将是为显示而选择的列。但是实际上并不一定要这样,用非检索的列排序数据是完全合...

2020-03-12 20:31:36 351

原创 SQL 知识点回顾总结(一)

很久没有更新博客了,埋头工作有时候都忘了思考,但学习积累的步伐不能停止,今儿个把 SQL 相关知识点重新捡起来,供大家参考,也方便自己查阅备忘。梳理的主线主要基于牛客网《数据库SQL实战》。1. left join, right join 和 inner joinleft join(左联接):返回包括左表中的所有记录和右表中联结字段相等的记录;right join(右联接):返回包括右表中的...

2020-02-03 18:00:16 1717

原创 XCTest 单元测试初探

在做 iOS 端的单元测试时,XCode 自身集成的 XCTest 框架是一个不错的选择。网络上关于 XCTest 单元测试的文章不胜枚举,这里主要结合实例和 WWDC2018 的新增特性进行总结和梳理。本文只针对 iOS 单元测试,UI自动化测试会在以后的博文中陆续展开,下面直接从 Demo 入手。在创建好工程后(勾选上"Include Unit Tests"),会在 XCTests.m 中...

2019-10-08 13:21:03 973

原创 iOS 单例模式,你真的写对了吗?

几年前,笔者曾对 iOS 单例模式作过一番阐述,包括其优点以及 Apple 自身对单例模式的实现示例,详情可参考:iOS 单例模式详解。这里再做一个简短的总结,单例的用处:主要用在封装网络请求,播放器,存放常用数据等。单例的特点:只初始化一次,生命周期和程序的生命周期相同,访问方便。下面一步一步以循序渐进的方式来将单例模式完善化。为了多线程安全,用 GCD 创建单例更加方便,由于 dispa...

2019-04-28 16:11:56 3346

原创 caffe 改动后的重新编译以及 pycaffe 安装过程中 warnings 解决

原生的 caffe 包含了一些基本的运算操作,如果要进行一些自定义操作,比如双线性插值放缩操作、L2 正则化等就需要把相应的实现添加进 caffe 源码,由于 caffe 源码由 C++ 编写,修改源码后需要重新编译。下面对具体的编译过程进行总结:1. 编译 caffe.proto 文件添加层时,需要在 /src/caffe/proto/caffe.proto 文件中注册,因为修改过 caff...

2018-10-31 19:32:18 6205 1

原创 GoogLeNet(Inception V1)总结

本文是对 “Going Deeper With Convolution” 的论文创新点的解读和总结,笔者在去年对该论文进行了全文翻译,原文翻译可点传送门:《Going Deeper With Convolution》全文译解,但当时仅限于翻译,并未对其中细节和创新点进行详细剖析。经典的东西需要细细品味,本文主要解读该论文的新点,也即 GoogLeNet 的网络结构。该论文发表于 CVPR 201...

2018-10-26 11:07:04 1290

原创 Network In Network 总结

本文是对《Network In Network》的论文解读和总结。该论文发表于 ICLR 2014,由新加坡国立大学(NUS)提出,自2014年发表至今,已有接近2K的引用量,其独特的网络结构成为卷积神经网络的革新,是经典的卷积神经网络的一个变种。注:博文中图片表格均来自原文1. 网络结构1.1 MLP卷积层NIN 具体在传统的卷积层上采用了大小为[1,1]的卷积核去替代,相当于进行了一...

2018-10-24 20:47:38 1392

原创 Linux 下几个查找命令 find,locate,whereis,which,type 总结

在 Linux 命令行下,常常根据需要进行相应文件的查找,有很多方法可以做到这一点,本次博客对这些方法进行一个总结,可根据需要灵活运用。1. findfind 是最常见也是最强大的查找命令,几乎能满足任何查找需求。find 命令使用格式:find 路径 参数时间查找参数:-atime n :将 n*24小时内存取过的的文件列出来-ctime n :将 n*24小时内改变、新增的文件...

2018-10-18 17:43:34 496

原创 操作系统与网络知识点梳理

1.死锁产生的原因与避免死锁的方法死锁概念:多个线程因竞争资源而造成的一种僵局(互相等待)状态。 产生死锁的四个条件: (1)互斥条件:资源只能由一个进程使用; (2)请求与保持条件:已经得到资源的进程可以再次申请新的资源; (3)非剥夺条件:已经分配的资源不能从相应的进程中被强制地剥夺; (4)循环等待条件:系统中若干进程组成环路,该环路中每个进程都在等待相邻进程正占用的资源。 ...

2018-09-12 10:02:34 776

原创 HTTP 状态码回顾总结

HTTP状态码,它是用以表示网页服务器HTTP响应状态的3位数字代码。状态码的第一个数字代表了响应的五种状态之一。 Tables Are Cool 1XX Informational(信息性状态码) 接收的请求正在处理 2XX Success(成功状态码) 请求正常处理完毕 3XX 重定向状态码 需要进行附加操作以完成请求...

2018-09-07 10:02:21 338

原创 从输入URL到页面展示到底发生了什么?

这是一个老生常谈的问题,笔者今天对这个问题进行一个总结。整个过程可分为4个步骤,分别如下所示:1. 域名解析当我们在浏览器的输入框中输入网址的时候,浏览器其实已经在智能地匹配可能的URL了,它会从历史或者书签等地方查找可能对应的URL,给出一些智能提示,方便智能补全,部分浏览器甚至会直接从缓存中把网页显示出来。请求一旦发起,浏览器首先要做的事情就是解析这个域名,即找到对应的 IP。...

2018-08-24 15:41:39 1083

原创 C++ 知识点梳理

new/delete 与 malloc/free的区别malloc/free是标准库函数,new/delete是C++运算符。运算符是语言本身的特性,有固定的语义,由编译器解释语义。库函数是依赖于库的,一定程度上独立于语言,编译器不关心库函数的作用。delete会调用对象的析构函数, free只会释放内存,new调用构造函数。malloc/free是库函数而不是运算符,不在编译器控制权限之...

2018-08-22 17:58:10 1225 1

原创 进程与线程相关知识整理

进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。线程是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。线程由CPU独立...

2018-08-16 14:25:33 568

原创 Linux 中的 bash_profile,bashrc 以及 profile 联系与区别

/etc/profile,/etc/bashrc,~/.bash_profile,~/.bashrc 文件的区别和特点比较容易混淆,这里先分别介绍其功能特点:/etc/profile:用来设置系统环境参数,比如$PATH. 这里面的环境变量是对系统内所有用户生效的; /etc/bashrc:这个文件设置系统 bash shell 相关的东西,对系统内所有用户生效。只要用户运行 bash 命令...

2018-08-16 13:32:43 1656

原创 "Learning to Compose with Professional Photographs on the Web" 论文解读(二)(附代码与详细注释)

接着上篇博客:“Learning to Compose with Professional Photographs on the Web” 论文解读(一)(附代码与详细注释)进行讲解。上篇博客讲到了论文中数据的处理,该博客将介绍模型的构建、训练以及评估等部分内容,并附上详细的代码及注解。 上图是本文的模型架构,非常简单,输入为两个叠加的总共为6个通道的图像(原图与裁剪图),网络中的特征提取层...

2018-07-23 22:37:13 953 2

原创 "Learning to Compose with Professional Photographs on the Web" 论文解读(一)(附代码与详细注释)

最近在研究一篇论文 “Learning to Compose with Professional Photographs on the Web”,发表自 CVPR2017,论文地址链接:Learning to Compose with Professional Photographs on the Web。 如上图所示,利用深度学习的方式得到图片合适的取景位置是论文的主要目的所在。论文前面的...

2018-07-18 23:01:28 1194

原创 TensorFlow 中的 tf.app.flags 命令行参数解析模块

说道命令行参数解析,就不得不提到 python 的 argparse 模块,详情可参考博主之前的一篇博客:python argparse 模块命令行参数解析。在阅读相关工程的源码时,很容易发现 tf.app.flags 模块的身影。其作用与 python 的 argparse 类似。直接上代码实例,新建一个名为 test_flags.py 的文件,内容如下:#coding:utf-8...

2018-07-17 23:17:29 3126

原创 python 单下划线与双下划线,以及绝对导入与相对导入

单下划线与双下划线在 python 中,会看到 _xx, xx 以及 __xx 这样的变量或者函数名,在这里做一个简要的总结。_xx:保护(protected)变量或函数,意思是只有类对象和子类对象能够访问到这些变量,不能用 ‘from module import *’ 导入。当变量或函数是私有的时候,用 _xx 来表示是很好的习惯。; __xx:私有成员,意思是只有类对象自己能访问,连...

2018-07-16 21:54:47 1499

原创 tf.variable_scope(), tf.name_scope(), tf.get_variable(), tf.Variable() 理解总结

许多的 TensorFlow 开源项目都会频繁出现 tf.variable_scope, tf.name_scope, tf.get_variable(), tf.Variable() ,今天来对此做一个总结。注意,tf.Variable() 有大写!首先来谈谈 tf.get_variable() 与 tf.Variable(),因为如果使用 variable() 的话每次都会新建变量,但...

2018-07-12 23:56:57 367

原创 python os.stat() 获取相关文件的系统状态信息

stat 系统调用时用来返回相关文件的系统状态信息的。下面直接以一个具体示例来进行简要说明: os.stat() 形参接收一个包含路径的文件名,其返回值有10个,列表如下: 返回属性 解释 st_mode inode 保护模式 st_ino inode 节点号 st_dev inode 驻留的设备 st_nlink inode...

2018-07-11 22:34:17 3841

原创 python 虚拟环境 virtualenv

virtualenv 是一个可以在同一计算机中隔离多个 python 版本的工具。有时,两个不同的项目可能需要不同版本的 python,如 python2.7/python3.6,但是如果都装到一起,经常会导致问题。所以需要一个工具能够将这两种或几种不同版本的环境隔离开来,需要哪个版本就切换到哪个版本做为默认版本。virtualenv 即是满足这个需求的工具。它能够用于创建独立的 python 环...

2018-07-11 21:56:47 331

原创 对比 Caffe 中 train_val.prototxt 和 deploy.prototxt 文件

首先,这两个文件有一个最大的不同点,train_val.prototxt 文件是网络配置文件,该文件是在训练的时候用的。deploy.prototxt 文件是在测试时使用的文件。下面以 Caffe 官方给出的 mnist 训练相关的文件作出详细注释说明:name: "LeNet"layer { name: "mnist" #输入层的名称mnist type: "Dat...

2018-06-18 13:16:13 1639

原创 Caffe solver.prototxt 文件参数解析

solver 算是 Caffe 的核心的核心,它协调着整个模型的运作。Caffe 程序运行必带的一个参数就是solver 配置文件,solver.prototxt 文件是用来告诉 Caffe 如何训练网络的。下面以 Caffe 中的 mnist 实例进行简单明了的解释:1. net: "examples/mnist/lenet_train_test.prototxt"2. test_it...

2018-06-17 18:15:14 2885

原创 Linux sed 命令高效文本操作

Linux 下的 sed 命令功能十分强大,能够完美地配合正则表达式使用,灵活巧妙地利用sed命令,可以极大地提高工作效率。sed 的用法非常多,不可能一一枚举,本文仅针对个人实践过程中比较常见的几个功能作简要介绍。1.替换操作直接编辑文件选项 -i,会把 file 文件中每一行第一个匹配项替换为指定项:sed -i 's/pen/pencil/' file其中,s 表示替...

2018-06-16 19:38:05 916

原创 Caffe 图片数据转化为 lmdb 格式以及均值文件的计算

在 Caffe 中经常使用的数据类型是 lmdb 或 leveldb,而我们平时所用的图片格式为 jpg, png, tif 等,于是就产生了一个问题,如何从原始图片文件转换成 Caffe 中能够运行的 db(leveldb/lmdb)文件?在 Caffe 中,作者提供了一个用于将图片文件转换为 db 文件的可执行程序:convert_imageset,其调用格式如下所示: conve...

2018-06-16 13:43:30 591

原创 VGGNet 总结

本文是对《Very Deep Convolutional Networks for Large-Scale Image Recognition》的论文解读和总结。该论文发表于 ICLR2015,由牛津大学视觉几何组(Visual Geometry Group)和 DeepMind 公司提出,这也是 VGG 名字的由来。自2015年发表至今,已有超过7K的引用量,是 ILSVRC-2014 中定位任...

2018-05-28 16:46:21 11493 6

原创 AlexNet 总结

本文是对《ImageNet Classification with Deep Convolutional Neural Networks》的论文解读和总结。该论文发表于 NIPS2012,作者 Alex Krizhevsky 属于神经网络之父 Hinton 组,自2012年发表至今,已有1.3万的引用,实属经典。AlexNet 在 ISVRC2012(ImageNet Large Scale Vi...

2018-05-23 16:19:18 2976 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除