Transformer从入门到精通(The Annotated Transformer)
AnnotatedTransformer
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { ...
山东大学23强基班计算机导论第四次习题答案
T7.1
123456789101112131415161718#include <iostream>using namespace std;int main(){ int lower,upper; cin>>lower>>upper; if(lower > upper || upper > 100 || lower <=0) { cout<<"Invalid."; return 0; } cout<<"fahr celsius"<<endl; for(int i = lower;i<=upper;i+=2) { printf("%d%6.1lf\n",i, 5.0 * (i - 32.0)/9.0); }}
T7.2
123456789101112#include <io ...
使用 OpenCV 进行文档矫正
使用 OpenCV 进行文档矫正
本文只发布于博客园与pchar博客
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107std::vector<std::vector<cv::Point>> cvhelper::findCorners(const cv::Mat &image) { cv::Mat gaussImage; cv::GaussianBlur(image, gaussImage, cv::Size(5, 5), 0); cv::threshold(gaussImage, gaussImage, 0, 255, cv::THRESH_BINARY ...
winrt新dx截图最小实现
转自:https://stackoverflow.co/questions/11283015效果还是很不错的
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182#includ ...
C语言简易万年历带注释
同学问的课后作业,顺便加了写注释。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162#include<stdio.h>/* * 注意 每周的第一天是星期天 */int main() { int day_per_mo[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; // 12个月的天数 int fir_weekday[12]; // 12个月的第一天是星期几 int i, year = 0, month; printf("输入年份:"); scanf("%d", &year); if (year % 400 == 0 || (year % 100 != 0 & ...
AVX256加速矩阵乘法
最近打PKU的HPCGAME留下的代码,速度不是很快
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135const int BLOCK_SIZE = 1024;const int BLOCK_SIZE2 = 256;inline static void block_avx256_16x2( // 电脑不支持AVX512捏 int n,int K, //方阵大小 double* A, double* B, double* C){ __m2 ...
AVX512加速矩阵乘法
最近打PKU的HPCGAME用的代码,这里只用上了20个zmm寄存器,改变block的大小应该还能优化一下速度。
代码只考虑了方阵,其他非2^n次方阵要自己改代码。具体原理很简单,看看代码就差不多知道。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162const int BLOCK_SI ...
ORB/BEBLID 利用OpenCV(C++)实现尺度不变性与角度不变性的特征找图算法
本文只发布于利用OpenCV实现尺度不变性与角度不变性的特征找图算法,知乎以及pchar.cn
一般来说,利用OpenCV实现找图功能,用的比较多的是模板匹配(matchTemplate)。笔者比较喜欢里面的NCC算法。但是模板有个很明显的短板,面对尺度改变,角度改变的目标就无能为力了。因此本文旨在做到模板匹配做不到的这两点上。
当然也有人利用模板匹配实现上面的功能,但是方法之无语,效率之低下让我不禁想起了三体中的一句话:
“成吉思汗的骑兵,攻击速度与二十世纪的装甲部队相当;北宋的床弩,射程达一千五百米,与二十世纪的狙击步枪差不多;但这些仍不过是古代的骑兵与弓弩而已,不可能与现代力量抗衡。基础理论决定一切,未来史学派清楚地看到了这一点。而你们,却被回光返照的低级技术蒙住了眼睛。你们躺在现代文明的温床中安于享乐,对即将到来的决定人类命运的终极决战完全没有精神上的准备。”
本文并不涉及ORB或者BEBLID算法的具体实现,想了解的同学请移步论文。本文撰自一名非计算机系大一新生,有不到处还请见谅。
从特征匹配开始特征匹配首先是需要获得特征点。通过特征检测算法,获得特征点后利用匹配器, ...
DX后台截图C++实现代码
DX后台截图C++实现代码
传统的GDI API (BitBlt)虽然可以完美的完成后台截图的任务,但是归根结底效率还是太低。
直接使用DXGI方法截图只能完成前台窗口的截图,而DX HOOK的截图方法平添风险,以及很多场景不现实。
本文讲介绍使用 DwmGetDxSharedSurface 函数,优雅的完成后台截图的工作。
API介绍函数定义12345678BOOL WINAPI DwmGetDxSharedSurface ( HWND hwnd, HANDLE* phSurface, LUID* pAdapterLuid, ULONG* pFmtWindow, ULONG* pPresentFlags, ULONGLONG* pWin32kUpdateId)
$DwmGetDxSharedSurface$来自于user32.dll(很离谱是吧,DwmApi不在DwmApi.dll里)。由于是ms没有公开的API,需要使用动态方法加载。
调用函数方法123456789101112131415161718//动态载入该函数typedef HRES ...
远程Call 32位远程多参数带返回调用
[远程Call]32位远程多参数带返回调用引子
在Windows上可以使用CreateRemoteThread实现远程Call,但是有不带返回值且只能传递一个参数的限制。
解决思路
将多个参数利用VirtualAllocEx和WriteProcessMemory写入目标程序,再通过此方法注入一段shellcode,通过shellcode完成多参数的调用。
核心shellcode123456789push var_1...push var_nmov eax,function_addr/*如果为 cdcel则需要平栈add esp,count_param*/call eax
实现c++代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 ...