- 博客(296)
- 资源 (10)
- 收藏
- 关注
原创 模型精度fp16和fp32
为了平衡精度和效率,现代深度学习框架如PyTorch和TensorFlow支持混合精度训练,即在某些阶段使用FP16以加快计算速度,而在关键的梯度累积和更新步骤中仍采用FP32以保持足够的精度。此外,还有诸如NVIDIA的TensorFloat-32 (TF32)这样的格式,旨在在特定硬件(如Ampere架构GPU)上改善FP16的精度不足问题,同时保留其优势。FP16和FP32是两种不同的浮点数精度格式,在计算机科学特别是深度学习领域中广泛应用。
2024-03-08 11:04:10
2742
原创 Kalman滤波的C语言实现
实现了基本的Kalman滤波器,包括1维和2维状态的情况头文件:/* * FileName : kalman_filter.h * Author :Ethan_Lei_Pro * Version : v1.0 * Date : 2017/5/10 10:37:01 * Brief : * * Copyright (C) MICL,USTB */
2017-05-10 10:43:05
2773
原创 最小生成树
给定一个无向图,如果它的某个子图中任意两个顶点都互相连通并且是一棵树,那么这课树就是生成树。如果边上有权值,那么使得边权和最小的生成树叫做最小生成树(MST, Minimum Spanning Tree)。(1)Prime算法CODE01void prim(){ int mincost[MAXVEX]; bool used[MAXVEX]; fill(mincost, minc
2017-03-15 16:43:45
284
原创 std::sort的妙用(1)
有时候需要按照结构体中某项数值进行排序,而结构体中的其他数值则不能改变。例如,按照成绩的高低对学生进行排序,而学生这一结构体中包含了学号,姓名等其他信息。使用std::sort就很方便CODEstruct edge{ int from, to, cost; };bool comp(const edge &e1, const edge &e2){ return e1.cost < e2
2017-03-14 22:06:55
527
原创 数的全排列
例如有5个数字组成的数列,输出其所有不重复的组合。int a[10] = { 0 };int t[5] = { 11, 12, 13, 14, 15 };int usedx[100] = { 0 };void dfsFun(int n){ if (n == 5) { for (int i = 0; i < 5; ++i) { printf("%d ", a[i]);
2017-03-14 21:47:21
306
原创 二分图
给定一个具有n个顶点的图,要给图上每个顶点染色,并且要使相邻的顶点颜色不同,问是否能最多用2种颜色进行染色?思路:选择任意一个顶点出发,依次确定相邻顶点的颜色,就可以判断是否可以被2种颜色染色了。深度优先搜索。int color[MAXVEX] = {0};bool dfs(int v, int c){ color[v] = c; for (int i = 0; i <
2017-03-13 19:34:59
343
原创 最大流问题-Ford-Fulkerson算法 C++极简实现
Ford-Fulkerson算法 C++极简实现!!!网络最大流问题是网络的另一个基本问题。许多系统包含了流量问题。例如交通系统有车流量,金融系统有现金流,控制系统有信息流等。许多流问题主要是确定这类系统网络所能承受的最大流量以及如何达到这个最大流量。
2017-03-13 14:56:19
3271
1
原创 快排求第i小元素
求n个不同元素集合中第i小的元素CODE:bool flg = true;void Solve13(int a[], int low, int high,int k){ int tmp = a[low]; int i = low, j = high; if (i > j) return; while (flg) { while (a[j] >= tmp&&i < j)
2017-03-12 20:43:32
355
原创 左值引用"&"、右值引用"&&"以及它们之间的转换
C++11中的一个新特性就是右值引用和左右值之间的转移语义。在此之前,C++中右值引用是不被允许的。增加右值引用和转移语义这两个特性能够使代码更加简洁高效。新特性的目的右值引用 (Rvalue Referene) 是 C++ 新标准 (C++11, 11 代表 2011 年 ) 中引入的新特性 , 它实现了转移语义 (Move Sementics) 和精确传递 (Perfect Forwarding
2017-02-20 16:21:40
2626
原创 volatile的作用
C语言关键字volatile表明某个变量的值可能随时被外部改变(如外设端口寄存器值),因此对这些变量的存取不能缓存到寄存器,每次使用时需要重新读取,因此经常用于外设接口的编程中。该关键字在多线程环境下经常使用,因为在编写多线程的程序时,同一个变量可能被多个线程修改,而程序通过该变量同步各个线程。对于编译器来说,它不知道这个值会被其他线程修改,自然就把它缓存到寄存器里面。
2017-02-19 21:33:25
289
原创 Javac工作原理分析
Javac是一种编译器,能将一种语言规范转成另外一种语言规范,通常编译器都是将便于人理解的语言转化为机器容易理解的语言。Javac的任务是将Java语言先转换为JVM能够识别的一种语言,然后由JVM将JVM语言转换成当前这个机器能够识
2017-02-19 16:24:17
1106
原创 Java NIO工作机制
不管是磁盘IO还是网络IO,数据在写入OutputStream或者从InputStream读取时都有可能会阻塞,线程将会失去CPU的使用权,这在当前大规模访问量和有性能要求的情况下是不能被接受的。虽然当前的网络IO有一些解决办法。如一个客户端一个出来线程,出现阻塞时只是一个线程阻塞而不会影响其他线程工作,为了减少系统线程开销,采用线程池的办法来减少线程创建和回收成本。
2017-02-17 21:44:43
352
Object Pascal中文手册(清晰非扫描版)
2018-07-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人