- 博客(59)
- 收藏
- 关注
原创 codeblock 如何静态编译链接C++文件
settings->compiler->在compiler flags中勾选static linking。
2023-12-09 18:55:02 586
原创 C++ char* 和 char[]
char* p = "hello world"初始化是不行的,因为"hello world"是字符串常量,也就是const char*,char*前必须加const,即const char* p="hello world",更不能修改p指向的常量区内存的内容。char s[] = "hello world"是可以的,且可修改s[2]='a',但此时s的指向是不能变的,相当于是char* const。sizeof(p)的大小是平台下一个指针的大小,与其中的字符串长度无关。
2023-12-09 17:03:36 672
原创 C++ 多线程 atomic
通俗来说,原子性就是"一气呵成",不可分割的意思。在多线程编程中,原子性非常重要,因为如果一个操作不具备原子性,可能会导致数据出现错误或者不一致的情况(如上述的+=)。如有两个线程,对一个变量进行操作,一个线程读这个变量的值,一个线程往这个变量中写值。即使是一个简单变量的读取和写入操作,如果不加锁,也有可能会导致读写值混乱(一条语句可能会被拆成3、4条汇编语句来执行,所以仍然有可能混乱,如+=操作被拆为先读取再计算再写入)支持变量的++,--,+=,-=,&=,|=,^=操作的原子性。
2023-12-07 17:38:30 469
原创 c++ 多线程 condition_variable
相关成员函数:wait, wait_for, notify_one, notify_all。只有被notify了才判断条件是否变为真就唤醒线程;条件变量:条件为假时阻塞线程并释放锁;
2023-12-07 17:07:33 499
原创 导数、方向导数、梯度方向、梯度
方向导数:限定在某一个方向上,自变量改变一定量时(大于0),因变量改变多少。导数:自变量改变一定量时(大于或小于0),因变量改变多少。梯度方向:方向导数最大的方向。
2023-11-23 21:12:15 487
翻译 论文翻译:MSR-GCN: Multi-Scale Residual Graph Convolution Networks for HumanMotion Prediction
摘要人体运动预测是一个具有挑战性的任务,由于未来姿态的随机性和非周期性。最近,图卷积网络被证明可以有效学习姿态关节点之间的动态关联,这有助于姿态预测。另一方面,可以递归地抽取一个人体姿态来获取多个尺度的一系列姿态。随着抽象程度的增加,姿态的运动变得更稳定,这也有利于姿态预测。在这篇文章中,我们提出了一个新颖的多尺度残差图卷积网络(MSR-GCN)来用于人体姿态预测任务,以一种端到端的方式。这些GCN被用于提取从细粒度到粗粒度再从粗粒度到细粒度的特征。被提取到的每个尺度的特征然后再被结合并解码来获取输入和目标
2023-09-01 15:37:10 328
翻译 论文翻译:A Spatio-temporal Transformer for 3D Human Motion Prediction 用于3D人体运动预测的时空Transformer
2020.4 arxiv 原文链接:[2004.08692] A Spatio-temporal Transformer for 3D Human Motion Prediction (arxiv.org)摘要我们提出了一个用于3D人体运动生成式建模任务的新颖的Transfomer结构。之前的工作主要依赖RNN模型,它考虑更短的预测视野,很快地达到一个静止且不太合理的状态。最近地研究表明在频率域隐式的时间表征对于在一个预先定义的视野里做预测也是有效的。我们的关注点在于自回归地学习时空表征,因而在长期和短期上
2023-07-20 16:14:42 359
原创 ++i和i++的区别
而对于自定义的数据类型,就会有很大差别,C++中最典型的就是在STL中有关迭代器 iterator 的操作都是 ++i 的;对于内置数据类型(如int,char,指针等),编译器会有优化,所以 ++i 和 i++没有太大区别;所以只要没有强制的要求,就使用 ++i,反正效率提一点算一点,就用最好的;i++ 多出来一步,因为它是先使用当前值后加1,所以需要一个。,尤其在处理大量自定义类型的数据时会更明显。++的重载,这里执行效率上就有了些区别;i++是先返回结果再自增。在C++中,它俩都用了。
2023-06-24 21:08:18 123
原创 数据结构与算法--Trie树/字典树
统计n个单词中出现最频繁的k的单词(字典树+最小堆)查询某个单词是否作为前缀出现过、出现频次。查询某个单词是否出现过、出现频次。
2023-06-21 20:18:22 122
原创 c++ vector的扩容机制
resize修改size大小,如果resize指定的大小n小于当前size,将多出来的元素删去;如果n大于capacity,将扩容到n。1、当向vector push_back一个元素时,如果此时元素个数超过了vector的容量,会触发扩容。空间浪费可能会比较高,比如:扩容后申请了64个空间,但只存了33个元素,有接近一半的空间没有使用。5、vector的size()、capacity()、resize()和reserve()2、扩容的过程是:开辟新空间->拷贝旧空间的元素->释放旧空间。
2023-06-21 16:10:40 2723
原创 Pytorch从指定epoch恢复训练
注意:lr_scheduler是根据内置的index进行更新的,外界的epoch对其并不会产生影响,因此要自己设置lr_scheduler的last_epoch;如果恢复时optimizer的param_groups(list of dicts)没有initial_lr,也要自己设置initial_lr(可以在训练的时候保存下来),否则会报错,例如。start_epoch = checkpoint['epoch'] # 设置开始的epoch。2、从指定epoch恢复。
2023-06-14 15:21:25 1282
原创 c++ 默认移动构造函数什么时候会自动生成以及它内部实现
而在没有自定义移动构造函数/移动赋值函数的情况下,如果该类自定义了拷贝构造函数/赋值运算符或析构函数之一,都不会生成默认移动构造函数,只会调用拷贝构造函数/赋值运算符(前提是形参为const T&而不是T&,因为const T&可以兼容右值实参,而T&不能)。注意即使没有自定义拷贝构造函数/赋值运算符,只自定义了析构函数,也不会生成默认移动构造函数,这是因为自定义析构函数表明该类在析构时可能需要回收内存,如果生成了默认移动构造函数可能会出错(比如同一地址被释放两次的错误)二、默认移动构造函数内部实现。
2023-06-11 18:14:27 2301 3
原创 斐波那契数列、卡特兰数
比k早进栈且早出栈的有k-1个数,一共有h(k-1)种方案。比k晚进栈且早出栈的有n-k个数,一共有h(n-k)种方案。所以一共有h(k-1)*h(n-k)种方案。k的取值范围为1至n,所以结果就为h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0)。出栈入栈问题有许多的变种,比如n个人拿5元、n个人拿10元买物品,物品5元,老板没零钱。值得注意的是,由于每个拿5元的人排队的次序不是固定的,所以最后求得的答案要*n!递推公式:h(0)=1, h(1)=1;
2023-04-27 14:48:27 505
转载 c++如何输入带空格的字符串
scanf函数一般格式为scanf(“%s”,st),但scanf默认回车和空格是输入不同组之间的间隔和结束符号,所以输入带空格,tab或者回车的字符串是不可以的。当输入字符串时,字符“c”将被当作当前输入的结束符。例如:scanf("%[a-z A-Z0-9]",str)表示只匹配输入是大小写字母和数字,遇到非数字和字母时输入结束。可以无限读取,以回车结束读取,C语言中的函数,在C++中运行会产生bug。cin.getline()函数可以同cin.get()函数类似,也可接收空格,遇回车结束输入。
2023-04-20 16:16:56 5210 2
原创 python __init__.py 和 __all__作用
文件夹包下的__ini__.py文件里可以定义__all__属性,作用是在别处模糊导入该包中的所有名字时(from package import *),可以隐藏包中名字空间中的一些名字。如在package文件夹下的__init__.py文件里,可以导入该文件夹下的所有py文件(模块),这样就将所有模块名导入了package的名字空间。2、__init__.py文件中可以定义该文件夹包的名字空间,定义的方法就是在__init__.py文件里导入这些名字。一、__init__.py。二、__all__属性。
2023-02-08 12:47:57 1982
原创 python json文件读写
添加注释//或者/**/在json文件中是不允许的,那么JSON如何才能添加注释?可以使用key : value在json中增加一个充当注释的数据元素。python中的字典和序列(列表或元组)可以写入json文件。三、python字典或序列转换成json字符串。json中有两种数据结构:字典{}和列表[]json中的字符串必须使用双引号。一、python读取json文件。二、python写入json文件。
2023-02-01 14:16:47 1227
原创 正则化方法Label Smoothing
Label smoothing 是一种正则化方法,它将真实one-hot标签如[0,1]进行平滑,向“中间”靠拢,如变成[0.05, 0.95],这样可使训练出来的模型不会过度自信,提高泛化能力。
2022-08-09 20:03:41 153
原创 pytorch CosineAnnealingLR和CosineAnnealingWarmRestarts
pytorch CosineAnnealingLR和CosineAnnealingWarmRestarts
2022-08-02 12:10:16 5337
转载 batch norm, layer norm, instance norm, group norm
batch norm, layer norm, instance norm, group norm
2022-07-29 16:12:29 223
原创 sklearn.metrics.classification_report
sklearn.metrics.classification_report
2022-07-28 17:48:45 590
原创 ROC和AUC计算, sklearn.metrics roc_curve、precision_recall_curve、auc、roc_auc_score,多标签分类ROC曲线绘制
ROC和AUC计算, sklearn.metrics roc_curve、precision_recall_curve、auc、roc_auc_score,多标签分类ROC曲线绘制
2022-07-27 22:01:05 1512
原创 sklearn.metrics.multilabel_confusion_matrix
sklearn.metrics.multilabel_confusion_matrix
2022-07-27 11:47:53 612
原创 matplotlib.pyplot subplots、plot、xlabel等
matplotlib.pyplot subplots、plot、xlabel等
2022-07-25 13:56:31 763
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人