Potsdam Dataset
ISPRS-Potsdam
The Potsdam dataset is for urban semantic segmentation used in the 2D Semantic Labeling Contest - Potsdam.
The dataset can be requested at the challenge homepage. You need to get a package file named utf-8' 'Potsdam.zip (size: 13.3GB), and unzip this package to get a folder named Potsdam which contains 10 files as follows:
1234567891011Potsdam├── 1_DSM.rar├── 1_DSM_normalisation.zip├── 2_Ortho_RGB.zip # <-- RGB image├── 3_Ortho_IRRG.zip├── 4_Ortho_RGBIR.zip├── 5_Labels_all.zip # ...
模型量化
参考
浮点和整数的存储
不同数据类型在机器中的存储大小
type
size
min
max
char
1
-128
127
unsigned char
1
0
255
short int
2
-32768
32767
unsigned short int
2
0
63535
int
4
-2147483648
2147483647
unsigned int
4
0
4294967295
long int
8
-2147483648
2147483647
unsigned long int
8
0
4294967295
float
4
double
8
浮点数的表示
IEEE浮点标准用 V=(−1)s×M×2EV = (-1)^s \times M \times 2^EV=(−1)s×M×2E 的形式来表述一个浮点数:
sss : 符号(sign)s 决定这个浮点数的正(s=0)负(s=1)
MMM : 有效数(significant)M 是一个二进制小数,它的范围在 [1∼2−ϵ][1\sim 2-\epsilon][1 ...
算法模块
参考
高性能计算方向面试问题总结 | zhihu
C++
原子操作
【C++11 多线程】原子操作(六)
深度学习模块
如何理解过拟合
数据集类比于约束项,模型参数类比于自由度。约束项越少,自由度约大,就越不容易确定一个具体的模型。例如只有两个点的数据,希望得到一个线性模型。如果用 ax + b, 两个参数的模型去拟合是刚刚好的;如果用 ax^2 + bx + c, 三个参数的模型去拟合就会出现多种情况,不一定会得到 a=0 的线性情况。此时的解决方法,一方面是提高数据的多样性,增加数据量;另一方面是对模型加以限制,让它能够更偏向于理想的模型。
关于参数更新次数
模型训练过程中, 模型参数的更新次数取决于当前参数到全局/局部最优点的"距离". 同一个模型, 针对简单的数据集, 很有可能更新了非常多的轮次 loss 还在继续下降, 因为还没有达到全局最优. 而针对复杂的数据集, 很有可能更新很少的轮次 loss 就平稳了, 因为陷入了局部最优解.
如何理解激活函数
为什么需要激活函数?
基于非线性的考虑 (例如非线性激活函数 Sigmoid)
基于条件分支的考虑, ...
CUDA-CNN
CUDA-CNN
CUDA-CNN | Github
项目简介
这是一个用CUDA实现的 CNN (Convolutional Neural Network),使用MINIST数据集进行训练,epoch=10,耗时35.8s,在测试集上的分类正确率达到96.54%。
运行项目
1234567# clone项目到本地(需要CUDA环境)git clone git@github.com:whut-zhangwx/CUDA-CNN.gitcd ./cuda-cnn# 编译项目make all# 运行项目./CNN
网络结构
Input Layerinput↓(1,28,28)Conv2d Layer1Cin=1,Cout=6,kernel=6×5×5,stride=1↓(6,24,24)ActivationSigmoid Layer↓(6,24,24)Conv2d Layer2Cin=6,Cout=6,kernel=1×4×4,stride=4↓(6,6,6)ActivationSigmoid Layer↓(6,6,6)FC Layerfin=216,fout=10↓(10)Activati ...
Coding 算法题
刷题链接
LeetCode 热题 100
LeetCode 经典面试题 150
牛客 竞赛题库
洛谷 题目列表
OnlineJudge IO 练习
OJ在线编程常见输入输出练习场 | nowcoder
逗号分隔的输入
字符串排序(3) | nowcoder
12345678910111213141516171819202122232425#include <iostream>#include <vector>#include <algorithm>using namespace std;int main() { string strline; while(cin >> strline) { // get the whole line vector<string> strvec; string substr; int pos = 0; while((pos = strline.find(',')) != string::npos) ...
Linux基础
参考
Linux 教程 | 爱编程的大丙
文件管理命令
相对路径和绝对路径
相对路径
./:代表当前目前所在的目录,也可以使用.表示
../:代表当前目前所在的上一级目录,也可以使用..表示
1pwd # Print Working Directory
绝对路径
Linux: 起始结点为根目录,比如/root/home
Windows: 起始结点为某个盘符,比如C:\\Users
命令提示行
1zwx@7049GP-TRT:~/learning$ whoami # 查看当前用户
其中的zwx为当前用户名;7049GP-TRT为主机名
~为当前用户的home目录
12zwx@7049GP-TRT:~$ pwd/home/zwx
使用cd命令不带参数,默认切换到~
123zwx@7049GP-TRT:~/deeplearning$ cdzwx@7049GP-TRT:~$ pwd/home/zwx
$对应普通用户,#对应管理员用户
可执行程序对应的目录
123456zwx@7049GP-TRT:~$ which pwd/usr/bin/pwdzwx@7049GP- ...
C++常用数据结构和函数
multiset
Multiset in C++ Standard Template Library (STL) | Geeks
valid anafram | leetcode
允许元素重复
12345678910111213141516171819202122232425262728#include <iostream>#include <set>using namespace std;int main(){ multiset<int> myset; myset.insert(1); myset.insert(2); myset.insert(1); myset.insert(2); auto pos = myset.find(0); if(pos == myset.end()) cout << "Not Find" << endl; cout << myset.count(1) << endl; // 2 for(int i : myset) cou ...
汇编语言
中英文对照
常见汇编命令英文缩写 - 凯歌的文章 - 知乎
CS(Code Segment): 代码段寄存器
IP(Instruction Pointer): 指令指针寄存器
PC(Program Counter): 程序计数器(寄存器)
PC=CS<<4+IP
一般寄存器: AX、BX、CX、DX
AH&AL=AX(accumulator): 累加寄存器
BH&BL=BX(base): 基址寄存器
CH&CL=CX(count): 计数寄存器
DH&DL=DX(data): 数据寄存器
SP(Stack Pointer): 堆栈指针寄存器(存放栈顶的偏移地址)
BP(Base Pointer): 基址指针寄存器
索引寄存器: SI、DI
SI(Source Index): 源索引寄存器
DI(Destination Index): 目的索引寄存器
通用寄存器: EAX、EBX、ECX、EDX | ESP、EBP | ESI、EDI(32位)
EAX、EBX、ECX、EDX 各为 AX、BX、CX、DX的延申
ESP、EBP 各为 SP、BP的延申
ESI、EDI 各为 S ...
计算机网络
概述
三种交换方式
从通信资源分配角度来看,交换(Switching)就是按照某种方式动态地分配传输线路资源。
电路交换(Circuit Switching)
电话交换机接通电话线的方式称为电路交换;
分组交换(Packet Switching)
重点
报文交换(Message Switching)
计算机网络的定义和分类
定义
分类
按交换技术分类
电路交换网络
报文交换网络
分组交换网络
按使用者分类
公用网
专用网
按传输介质分类
有线网络
无线网络
按覆盖范围分类
广域网WAN
城域网MAN
局域网LAN
个域网PAN
按拓扑结构分类
总线型网络
星型网络
环形网络
王状型网络
计算机网络的性能指标
数据量的单位
比特(bit):计算机中==数据量的单位==,也是信息论中信息量的单位。一个比特就是一个一位二进制数(0或1)。
123451 Byte = 8 bit1 KB = 2^10 Byte = 1024 Byte1 MB = K*KB = 2^10 * 2^10 Byte = 2^20 Byte1 GB = K*MB = 2^10 * 2^20 Byt ...
Git常用指令
安装
GitHub Desktop
desktop.github.com
Git 全平台版
git-scm.com
配置工具
对所有本地仓库的用户信息进行配置
1$ git config --global user.name "[name]"
对你的commit操作设置关联的用户名
1$ git config --global user.email "[email address]"
对你的commit操作设置关联的邮箱地址
1$ git config --global color.ui auto
启用有帮助的彩色命令行输出
分支
分支是使用 Git 工作的一个重要部分。你做的任何提交都会发生在当前“checked out”到的分支上。使用 git status 查看那是哪个分支。
1$ git branch [branch-name]
创建一个新分支
1$ git switch -c [branch-name]
切换到指定分支并更新工作目录(working directory)
1$ git merge [branch]
将指定分支的历史合并到 ...