自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

幻世

个人博客地址: ffiirree.com

  • 博客(45)
  • 资源 (9)
  • 问答 (6)
  • 收藏
  • 关注

原创 Nginx - server、listen、server_name和多服务请求处理(三)

Nginx如何处理多服务请求

2024-05-10 20:38:10 421

原创 Nginx - 配置文件结构(一)

nginx 配置文件由指令控制的模块组成,指令分为简单指令(simple directives)和块指令(block directives)。配置文件中不包含在其他上下文中的指令则属于主上下文(main context),指令位于main context,以 Ubuntu 为例,安装命令为。可以包含其他指令的块指令称为。则将分号替换为花括号{};由名字、参数和分号组成。

2024-05-10 18:12:54 233

原创 Nginx - location 指令(二)

Nginx中location查找和使用顺序1. 精确匹配`= prefix-string`,成功则停止;2. 匹配其他`prefix strings`,选中并记住所有匹配成功中的**最长匹配**(longest matching prefix);如果该最长匹配有`^~`修饰符,则停止;3. 正则匹配`[~* | ~] regular expressions`,顺序为在配置文件中的出现顺序,成功则停止;4. 使用第2步查找到的最长匹配项,否则404 Not Found。

2024-05-10 17:28:01 573

原创 Git - submodule 小记

一些对 submodule 疑惑的整理

2023-03-11 16:20:38 1559 2

原创 图像频率、采样定理和抗混叠

空间频率、采样定理和混叠。

2022-09-29 16:14:11 1939 1

原创 小波变换(Wavelet Transform)

傅里叶变换在处理非平稳信号上具有非常大的缺点,小波变换则是克服了傅里叶这些缺点的一种变换。

2022-09-22 21:29:29 1025

原创 空间域滤波、频率域滤波及其关系

空间域滤波、频率域滤波实现,以及使用傅里叶变换和卷积定理说明其等价性。观察不同空间域卷积核对应的频谱图,从不同的角度理解其原理。

2022-09-21 22:28:31 6225

原创 BatchNorm原理以及PyTorch实现

BatchNorm算法简单来说BatchNorm对输入的特征按照通道计算期望和方差,并标准化(均值为0,方差为1)。但这会降低网络的表达能力,因此,BN在标准化后还要进行缩放平移,也就是可学习的参数γ\gammaγ和β\betaβ,也对应每个通道。BatchNorm的原理并不清楚,可能是降低了Internal Covariate Shift,也可能是使得optimization landscape变得平滑。优点提高训练稳定性,可使用更大的learning rate、降低初始化参数的要求并可以构建

2021-11-22 16:54:23 2784

原创 torchvision.transforms.RandomResizedCrop()代码解析

ENVpyorch 1.9.1torchvision 0.10.1关键代码注释transforms.RandomResizedCrop :先按照设置的缩放和宽高比切割图片,然后将切割后的图片缩放到指定大小。主要需要解释的是get_params函数如何获取切割位置信息和函数的执行流程:class RandomResizedCrop(torch.nn.Module): """初始化""" def __init__(self, size, scale=(0.08, 1.0), ratio

2021-09-25 16:20:21 2858

原创 VAE——变分自编码器的数学推导

问题考虑一个生成模型(Generative model),可以从一个隐变量(latent variable, z)映射到一张图片(x),用有向无环图模型(directed acyclic graphical model / Bayesian network)表示为上图表示,x的分布可以通过首先从p(z)采样得到z后再从p(x|z)采样建模。p(z) 是先验概率,意味着只需要选择一个合适的分布就可以了,一般采用单位高斯分布(unit Gaussian distribution),因为高斯分布的熵最大

2021-03-25 10:08:21 730

原创 Nginx - 搭建RTMP+HLS流媒体服务器

拉取视频流的软件也很多,比如VLC、FFmpeg等都可以拉流并播放。左侧为FFmpeg推流,右侧为PotPlayer拉流播放。另一个常用的推流软件是OBS。输入拉取视频的服务器RTMP流地址。,在控件一栏中打开设置,点开推流。安装Nginx和RTMP模块。修改nginx的配置文件。随后在控件,点击开始推流。在文件后追加以下内容。

2021-01-21 23:31:22 806

原创 VS Code + LaTex + SumatraPDF

VS Code + Latex Workshop + SumatraPDF三者搭配以实现最好的Latex编辑体验。重点设置PDF的预览以及编辑时的正向和反向跳转,可以极大的提高编辑效率。

2020-12-22 08:49:56 3412 4

原创 CentOS 7.9 从源码安装PyTorch

ENVCentOS Linux release 7.9.2009 (Core)GCC 4.8.5Driver Version: 440.95.01CUDA 10.2.89cuDNN 7.6.5conda 4.8.3Tesla K40m升级GCC系统自带的4.8.5的gcc不满足编译要求,所以需要升级一下。我直接从源码编译安装gcc 7.5.0tar xzf gcc-7.5.0.tar.gzcd gcc-7.5.0/mkdir build && cd build.

2020-12-10 23:01:57 865

原创 在Windows 10上用Virtualbox安装MacOS 10.13

ENVWindows 10 1909VirtualBox 6.1.0MacOS 10.13.iso安装在官网下载最新的Virtualbox和扩展包,并全部安装。新建虚拟机使用管理员权限打开CMD,运行以下指令,把"MacOS"改成你的虚拟机名字cd "C:\Program Files\Oracle\VirtualBox\"VBoxManage.ex...

2019-12-19 14:41:01 3233 4

原创 Windows下CMake编译OpenCV 4.1.2+contrib + CUDA

ENVCMake 3.16.0Visual Studio 2019Windows 10 1909CUDA 10.2.89 + CUDNN 7.6.5OpenCV 4.1.2opencv_contrib 4.1.2Core i7 9700K + RTX 2080Eigen(可选)Eigen官网Compile# 注意替换命令中的安装路径和contrib的路径cmake -A...

2019-12-05 17:24:59 1034

原创 最大似然估计、KL散度和交叉熵

深度学习建立在概率论的基础上,本质是估计数据集(具有随机误差)的分布。极大似然估计极大似然估计是点估计的一种,我们定义一个似然函数来作为对真实分布的估计,取似然程度最大的一组参数作为估计值。根据大数定理,当数据量足够大时,其差为0。给定分布P(x;θ)P(x; \boldsymbol{\theta})P(x;θ),从中取一组样本X1,X2,X3,...,XnX_1, X_2, X_3, .....

2019-09-18 20:10:24 1986 2

原创 模板类型推断、auto和decltype

template type deductionreference or pointerint x = 27; const int cx = x;const int& rx = x; template<typename T>void f(T& param); int : int&const int : const int&cons...

2019-05-17 10:43:56 465

原创 CMake笔记

Hello world文件目录./_01 | +- main.cpp +- CMakeLists.txt /// main.cpp#include <iostream>int main(){ std::cout << "Hello world!" << std::endl; return 0;}# CMakeList...

2019-03-22 11:41:49 374

原创 引用计数与智能指针

C++没有完善的GC机制,直到C++11才在STL中正式引入了智能指针。出现在库中说明智能指针不是语言特性。C++智能指针实现了部分自动内存管理的目的。引用计数引用计数是使用资源管理函数(构造析构复制等函数)和作用域原理实现的。每块动态分配的内存(堆内存)都维护一个相应的计数器,来记录指向该内存的变量数目,当值为0时,意味着没有变量再使用该部分内存,意味着可以删除掉。引用计数的优缺点引用计...

2019-03-01 15:31:10 373

原创 类与对象——PyObject

对象和类型对象——Object &amp;amp;amp; type objectObject是分配在堆(heap)上的结构,使用引用计数方法进行垃圾回收(Type Object例外)。Object永远不会被静态分配或者分配在栈上,必须只能通过特殊宏或函数来访问。对象都拥有一个reference count属性,用来记录指向该对象的指针数量,当引用计数归零时,该对象将被从堆上移除。对象都拥有一个type...

2019-02-28 21:06:27 6499

原创 从C++对象模型谈C语言的继承与多态

C++类中一般包含两种数据成员和三中函数成员。

2019-02-28 16:57:07 353

原创 Windows编译安装OpenCV 3.4.3(CMake + VS2017)

本文使用命令行在windows上编译安装OpenCV,使用界面请参考(Windows 正确安装OpenCV及使用(CMake+VS2015))[https://blog.csdn.net/ice__snow/article/details/55803856]ENVOpenCV 3.4.3Visual Studio 2017CMake 3.12.3Windows 10Compil...

2018-10-20 12:33:19 2009

原创 Ubuntu配置及美化 (18.04 / 20.04 / 22.04基本相同)

Ubuntu 18.04、20.04 以及 22.04 的基础配置、常用软件安装以及美化

2018-04-30 21:04:23 147340 27

原创 Ubuntu 18.04 安装 CUDA 9.1

安装GCC/G++ - 5Ubuntu18.04默认GCC-7.3.0,由于CUDA未支持GCC-7,所以需要安装低版本的5或者&lt;= 6.3.0,并设置为默认版本sudo apt install gcc-5 g++-5# 设置默认版本sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50 --s...

2018-04-29 18:10:24 10947 5

原创 右值、移动语义和完美转发

1. lvalue / rvalue An lvalue is an expression that refers to a memory location and allows us to take the address of that memory location via the &amp; operator. An rvalue is an expression that is ...

2018-04-25 18:22:48 405

原创 Windows获取窗口列表

枚举Windows系统中的窗口,获取其标题、类名、位置以及尺寸等信息

2018-04-17 20:47:41 3005

原创 Linux - X11 获取窗口列表

获取并枚举X11窗口列表及窗口属性,代码、注释及编译说明

2018-04-17 19:18:42 5395 7

原创 机器学习 - 支持向量机(SVM)

时并不会改变超平面,但是函数间隔的值会通样进行缩放。为了避免对求解的影响,接下来引入几何间隔。如图所示,也就是图中两条虚线之间的间隔最大,划分超平面处于间隔的中间。函数间隔可以表示分类是否正确且可以衡量分类的正确程度,但是,当我们同时缩放。——支持向量机,是一种分类器,属于监督学习的范畴。无法通过优化算法进行求解,所以需要去掉该项,转化为。,找到一个划分超平面,将不同类别样本分开。,这也就是SVM的名字来源。显而易见的是,当分类正确时,时,几何间隔和函数间隔相等。),则其到超平面的垂点B为。

2018-03-28 17:40:22 359 1

原创 使用CuDNN进行卷积运算

CuDNNNVIDIA ® cuDNN is a GPU-accelerated library of primitives for deep neural networks. It provides highly tuned implementations of routines arising frequently in DNN applications:Convolution fo...

2018-03-26 16:12:50 16512 7

原创 OpenCV Haar cascade人脸识别

源代码#include &lt;iostream&gt;#include &lt;vector&gt;#include &lt;opencv2/opencv.hpp&gt;using namespace std;using namespace cv;int main(){ CascadeClassifier cascade("/home/ffiirree/Code/...

2018-03-20 16:49:18 3112

原创 感知器和神经网络训练(公式推导及C++实现)

感知器感知器是一个二元线性分类器,其目标是找到一个超平面将训练样本进行分隔(分类),其表示为 一般使用的激活函数不是阶跃函数,常用的有sigmoid函数(其导数: σ′=σ(1−σ)\sigma' = \sigma(1-\sigma)) 在1个样本的训练集上代价函数(最小均方误差)通常为 C=12|a−y|2C = \frac{1}{2} |a - y|^2 训练过程中步长(学习速率

2017-12-04 00:11:38 1621

原创 空间域和变换域(以傅里叶变换为例)

空间域(spatial domain)以图像左上为原点,横为y竖为x的二维平面。 变换域在有些情况下,通过变换输入图像来表达处理任务,在变换域执行处理任务,然后再反变换到空间域会更好。 二维线性变换的通用形式可表示为: T(u,v)=∑x=0M−1∑y=0N−1f(x,y)r(x,y,u,v) T(u, v) = \sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x, y

2017-11-25 22:10:14 32376 5

原创 Windows 正确安装OpenCV及使用(CMake+VS2015)

环境 Windows 10 家庭中文版 OpenCV 2.4.13 CMake 3.7.2 Visual Studio 2015 update 3OpenCV 3.0+和VS 2017同理。使用exe安装的问题在Windows上安装OpenCV后,如果是直接使用Visual Studio来创建工程的话,每次都要配置头文件和库文件,非常麻烦由...

2017-02-19 14:20:59 18804 4

原创 DFT,FFT和卷积(笔记)

在学习图像处理的过程中,首先碰上的是滤波算法,在滤波算法中首先碰到了难以理解的卷积运算,关于卷积的概念,刚上来看维基百科中的卷积概念,我看完是崩溃的,很难理解,当时也没有学习离散数学,对于计算机离散的概念并不是很理解,作为计算机的学生,也没有学习复变函数和数字信号处理,对这些概念的确难以理解。 虽然难以理解,但是看到图像卷积与滤波的一些知识点这篇文章后,可以使用卷积这种东西了。在这里滤波的时候我是

2016-10-04 16:25:27 14952

原创 使用libjpeg库读取JPEG图像数据

jpeg是一个国际图像压缩标准,图像的后缀一般为jpeg或者jpg。这种图片格式非常常见,还是有必要知道怎样将数据读取出来的。在我做的zMatrix库里,之前一直使用openCV的函数imread()读取图像,不是很方便,查过很多资料后发现,如果自己从零写一个读取jpeg的程序非常麻烦(可能水平不够吧,可以查一下都是需要什么算法),需要用到一些比较复杂的压缩算法,又因为读取图像不是重点,所以可以使用

2016-09-17 18:11:00 17481 8

原创 操作系统之中断(四)

上一篇文章中简单的提到了IDT是记录了终端号和中断函数之间的关系,实际上在保护模式下,IDT在中断中的地位举足轻重。一、实模式切换到保护模式IDT是在保护模式中出现的,计算机启动后运行在实模式下,所以需要将CPU从实模式切换到保护模式。切换这一步大约位于BIOS加载完bootsector后,执行部分或者执行完bootsector代码时进行的,这么靠前是因为如果不切换就无法进入32位模式,寻址空间还是

2016-02-16 13:09:36 3680 1

原创 操作系统之GDT和IDT(三)

一、CPU的工作模式(寻址方式)说GDT需要从CPU的工作模式开始说,在IA32架构(或称i386、X86-32或X86架构)下,CPU有两种工作模式:实模式和保护模式。 CPU复位(reset)或加电(power on)的时候以实模式启动,处理器以实模式工作。在实模式下,内存寻址方式和8086相同,由16位段寄存器的内容乘以16(10H)当做段基地址,加上16位偏移地址形成20位的物理地址,最......

2016-02-12 17:58:57 17935 2

原创 惯性导航之Runge-Kunta法更新四元数(六)

从陀螺仪得到x、y、z三个角速度后就需要通过积分来得到角度,事实上,经过简单的积分是得不到正确的角度的,更得不到欧拉角,在这里说一下通过的Runge-Kunta更新四元数,从而对角速度积分得到角度的过程。四元数能到快速的发展,得益于飞行器控制与导航的发展,要求更合理的描述刚体空间的运动,以便于计算机的计算。在采用方向余弦描述飞行器运动时,要积分矩阵微分方程:

2016-01-03 22:57:45 6804 2

原创 操作系统探索之MBR编程(二)

这里先提供两个个MBR的例程,分别是是《30天自制操作系统》的MBR程序和Linux的0.11版本的MBR程序。一、自制MBRCYLS EQU 10 ORG 0x7c00 ; 程序装载的地址; 以下是FAT12格式软盘的专用代码 JMP entry DB 0x90 DB

2015-12-23 15:43:43 834

原创 操作系统探索之计算机的启动(一)

我们可以定义计算机启动为计算机上电到计算机操作系统启动等待用户使用的过程。这里先把启动过程分为两部分,硬件部分和软件部分。 硬件启动我们认为上电后就完成了,接下来说一下软件部分的启动,也就是操作系统的启动。一、启动流程计算机上电后,系统RESET,CPU复位,内存清零,CS:0xFFFFH IP:0x00H,指向0xFFFF:0x00H的内存单元,即ROM-BIOS的入口。BIOS入口

2015-12-23 13:13:33 740

wps_symbol_fonts.7z

Ubuntu 18.04 的字体,安装WPS时提示警告信息。添加字体解决。

2019-11-05

流畅的Python.中文版.文字版.精编目录

奋战在Python开发一线近20年的Luciano Ramalho执笔,从语言设计层面剖析编程细节,告诉你Python中不亲自动手实践就无法理解的语言陷阱成因和解决之道,教你写出风格地道的Python代码。

2017-11-25

Effective.Modern.C++-42.Specific.Ways.to.Improve.Your.Use.of.C++11.and.C++14

Effective.Modern.C++是针对C++11和C++14的版本,讲解清晰,容易看懂,英文原版

2017-11-25

AT&T(Linux)下的汇编

关于AT&T汇编的一本很不错的书,是英文的,不过比较容易看懂。

2017-03-07

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

TA关注的人

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