摘要: 说到Pooling,相信学习过CNN的朋友们都不会感到陌生。Pooling在中文当中的意思是“池化”,在神经网络当中非常常见,通常用的比较多的一种是Max Pooling,具体操作如下图: 结合图像理解,相信你也会大概明白其中的本意。不过Pooling并不是只可以选取2x2的窗口大小,即便是3x3, 阅读全文
posted @ 2023-11-18 16:04 ChebyshevTST 阅读(69) 评论(0) 推荐(1) 编辑
摘要: 大家都知道队列是可以用数组来模拟的,可以先开辟一段定长的数组空间,然后分别使用两个变量head和tail来代指队列的头和尾,从而维护整个队列,相信到这里大家都比较熟悉。不过这种做法是有弊端的,比如说下图这种情况 假设经过不断地增删元素,Head和Tail已经来到了数组最后两个位置,这时候整个队列中只 阅读全文
posted @ 2023-11-11 20:36 ChebyshevTST 阅读(312) 评论(0) 推荐(4) 编辑
摘要: C++11起,引入了基于范围的for循环这一特性,有什么好处呢?它有时可以大大地简化遍历容器的操作,比如说STL的vector。 std::vector v{1, 2, 3}; std::vector<int>::iterator it = begin(v); for (; it != end(v) 阅读全文
posted @ 2023-11-07 21:36 ChebyshevTST 阅读(463) 评论(0) 推荐(1) 编辑
摘要: 总所周知,Python语言当中的list是可以存储不同类型的元素的,对应到现代C++当中,可以用std::variant或者std::any实现类似的功能。而Python官方的实现当中用到了二级指针,不过抛开这些,我们也可以自己设计一个list的架构,实现多类型值的存储容器。 下图是自己实现的lis 阅读全文
posted @ 2023-11-02 15:33 ChebyshevTST 阅读(297) 评论(0) 推荐(2) 编辑
摘要: 对于一个给定的数组,若要查找当中是否包含某个值,传统的方法是遍历数组中的每一个元素,如果找到则返回。如果学习过数据结构,也可以立马想到用哈希表来存储,哈希表的查找性能优异,一般可以达到O(1)的时间复杂度,在最坏情况下也有可能达到O(n)的复杂度。但是今天,我将带来一种有意思的查找方式,也就是通过随 阅读全文
posted @ 2023-11-01 18:51 ChebyshevTST 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 大数结构是一种常见的数据结构,在C++当中,我们常用vector来动态实现。除此之外,我们也可以仿照vector的思路,自己实现内存的动态分配,当内存容量达到上限时,用C-api realloc进行内存的重新分配。 #define REQUIRE2(p, q) assert((p) || (q)) 阅读全文
posted @ 2023-10-27 23:12 ChebyshevTST 阅读(303) 评论(0) 推荐(1) 编辑
摘要: 记得大一学Python的时候,有一个题目是判断一个数是否是复数。当时觉得比较复杂不好写,就琢磨了一个偷懒的好办法,用异常处理的手段便可以大大程度帮助你简短代码(偷懒)。以下是判断整数和复数的两段小代码: 相信看到这里,你也有所顿悟,能拓展出更多有意思的方法~ 阅读全文
posted @ 2023-10-11 10:07 ChebyshevTST 阅读(20) 评论(0) 推荐(0) 编辑
摘要: conditional_t和enable_if_t是元编程里面很相似却有有着一定区别的模板。形如conditional_t<_Cond, _If, _Else>是指如果_Cond表达式为true,则类型为_If,否则类型为_Else。而形如enable_if_t<_Cond, _Tp>是指如果_Co 阅读全文
posted @ 2023-10-05 19:54 ChebyshevTST 阅读(69) 评论(0) 推荐(0) 编辑
摘要: locate和find命令都是linux下常用的搜索命令,但是locate命令是从一个数据库里面搜索的,它的速度比find查找要快上不少。如果存在某个文件用locate查不到的话,那么可以用updatedb命令对数据库更新一下,就能解决问题了。 记录今天遇到的疑惑。 阅读全文
posted @ 2023-10-05 19:05 ChebyshevTST 阅读(162) 评论(0) 推荐(0) 编辑
摘要: xsimd简介 xsimd是C++的一个开源simd库,实现了对常见simd指令的封装,从而使得simd的操作更为简单。接下来先从两个简单的例子来入门xsimd。 void average(const std::vector<double>& v1, const std::vector<double 阅读全文
posted @ 2023-09-28 16:06 ChebyshevTST 阅读(332) 评论(0) 推荐(1) 编辑