自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

清崎教练

一个热衷于AI领域的烟酒僧 || 所有内容仅用于学习、分享并记录自己的成长,如有侵权,请告知删除!

  • 博客(71)
  • 收藏
  • 关注

原创 Effective C++(一)

Effective cpp1 让自己习惯C++条款1:C++为语联邦言条款2:尽量以const,enum,inline替换#difine(1)对于单纯常量,最好以const对象或enums替换#defines(2)对于形似函数的宏(macros),最好改用inline函数替换#inlines#define的问题在于编译器未必能够看到,万一发生错误,是比较令人头疼的。,++多次调用条款3:尽可能使用constmutable对于总是会变的成员变量强转:避免在const和non-const成员函

2021-04-29 09:20:45 179

原创 inline关键字,内联函数

引入inline:在 c/c++ 中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了 inline 修饰符,表示为内联函数。栈空间就是指放置程序的局部数据(也就是函数内数据)的内存空间。在系统下,栈空间是有限的,假如频繁大量的使用就会造成因栈空间不足而导致程序出错的问题缺点:(1)内联是以代码膨胀复制为代价,仅仅省去了函数调用的开销,从而提高函数的执行效率。(2)内联函数内部尽量不要有循环之类的,这样导致效率会降低,一般只用在简单函数上类中:定义在类中的成员函数默认

2021-04-28 22:22:03 204

原创 僵尸进程和孤儿进程

孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵尸进程。危害:如果进程不调用wait / waitpid的话, 那么保留的那段信息就不会释放,其进程号就会一直被占用,但是系统所能使用的进程号是有限的

2021-04-14 17:14:22 201

原创 HTTP1.0/1.1/2.0/HTTPS

HTTP1.0(1996)用户名和密码 未加密短连接,效率低不支持断点续传,一次发送全部数据不支持虚拟网络缓存失效判断较少,只使用了header的if=modified-Since和Expires作为缓存失效的标准HTTP1.1(1999)身份验证(摘要算法)场链接支持断点续传支持虚拟网络HTTP2.0(2015)头部压缩(HPACK算法)解析效率高(二进制格式,而不是ASCII码)强化安全(一般都跑在HTTPS上)多路复用(一个连接可以多请求)HTTPS和HTT

2021-04-14 16:45:40 291

转载 DNS域名系统 TCP+UDP

DNS在进行区域传输的时候使用TCP协议,域名解析时候则使用UDP协议;DNS的规范规定了2种类型的DNS服务器,一个叫主DNS服务器,一个叫辅助DNS服务器。在一个区中主DNS服务器从自己本机的数据文件中读取该区的DNS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息。当一个辅助DNS服务器启动时,它需要与主DNS服务器通信,并加载数据信息,这就叫做区域传送(zone transfer)。为什么既使用TCP又使用UDP?首先了解一下TCP与UDP传送字节的长度限制:UD

2021-04-14 11:41:59 200

转载 tcp长连接、KeepAlive机制、心跳包

长连接TCP经过三次握手建立连接,长连接是指不管有无数据包的发送都长期保持建立的连接;有长连接自然也有短连接,短连接是指双方有数据发送时,就建立连接,发送几次请求后,就主动或者被动断开连接。心跳心跳是用来检测一个系统是否存活或者网络链路是否通畅的一种方式,做法是定时向被检测系统发送心跳包,被检测系统收到心跳包进行回复,收到回复说明对方存活。心跳能够给长连接提供保活功能,能够检测长连接是否正常,一旦链路死了,不可用了,能够尽快知道,然后做些其他的高可用措施,来保证系统的正常运行。长连接的优势减少连

2021-04-14 10:01:39 479

转载 TCP粘包/拆包 分包

TCP的粘包和拆包问题往往出现在基于TCP协议的通讯中,比如RPC框架、Netty等。如果你的简历中写了类似的技术或者你所面试的公司使用了相关的技术,被问到该面试的几率会非常高。 今天这篇文章就带大家详细了解一下TCP的粘包和拆包以及解决方案。 什么是粘包? 在学习粘包之前,先纠正一下读音,很多视频教程中将“粘”读作“nián”。经过调研,个人更倾向于读“zhān bāo”。 如果在百度百...

2021-04-13 21:30:43 644

原创 三种继承

对于这三种方式继承的派生类来说: 都能访问基类的public, protected 成员;public 的方式继承到派生类,这些成员的权限和在基类里的权限保持一致;protected方式继承到派生类,成员的权限都变为protected;private 方式继承到派生类,成员的权限都变为private;对于三种方式派生类的对象来说: 只有public的方式继承后,派生来的对象只能访问基类的public成员,protected和private方式继承,派生类的对象都不可以访问父类的成员。...

2021-04-13 15:42:43 88

原创 空类

空类里有哪些函数class Empty{public:Empty(); // 默认构造函数//Empty( const Empty& ); // 拷贝构造函数//~Empty(); // 析构函数//Empty& operator=( const Empty& ); // 默认赋值运算符Empty* operator&(); // 取址运算符const Empty* operator&() const; // 取址运算符 const};但要需要

2021-04-13 14:58:23 209

原创 C++中的 移动构造函数与拷贝构造函数

移动构造函数是c++11的新特性,移动构造函数传入的参数是一个右值 用&&标出。一般来说左值可以通过使用std:move方法强制转换为右值。首先讲讲拷贝构造函数:拷贝构造函数是先将传入的参数对象进行一次深拷贝,再传给新对象。这就会有一次拷贝对象的开销,并且进行了深拷贝,就需要给对象分配地址空间。而移动构造函数就是为了解决这个拷贝开销而产生的。移动构造函数首先将传递参数的内存地址空间接管,然后将内部所有指针设置为nullptr,并且在原地址上进行新对象的构造,最后调用原对象的的析构函数,这

2021-04-13 14:20:00 1269

原创 C++ split

C++没有split APIvector<string> split(string str, char splitter){ vector<std::string> res; string s; stringstream ss(str); //头文件 #include <sstream> while (getline(ss, s, splitter)) { res.push_back(s); }

2021-04-02 22:49:38 1700

转载 TCP异常关闭之总结

转自:http://jeffchen.cn/?p=776 游戏测试过程中发现某些socket错误经常出现,以下是测试游戏服务器时通常考虑的case. 服务器端: 1. Case:客户端程序正常运行的情况下,拔掉网线,杀掉客户端程序 目的:模拟客户端死机、系统突然重启、网线松动或网络不通等情况 结论:这种情况下服务器程序没有检测到任何异常,并最后等待“超时”才断开TCP连接 2. Case:...

2021-03-19 09:40:02 858

原创 CV目标检测(十)——SSD模型结构

SSD模型两个优化策略

2020-10-15 10:06:37 294

原创 CV目标检测(九)——one-stage&two-stage

2020-10-15 09:18:50 247

原创 CV目标检测(八)——Faster-RCNN

Faster-RCNNanchorRPN层的loss定义输出层的loss训练流程

2020-10-14 20:09:16 90

原创 CV目标检测(七)——Fast-RCNN

Fast-RCNN另外SVM->softmax

2020-10-14 19:21:14 100

原创 CV目标检测(六)——R-CNN

RCNN(2014)Ross B. Girshick(RBG)selective search(ss算法)SPP-Net(何凯明)卷积只做一次金字塔池化略写

2020-10-14 19:08:33 123

原创 CV目标检测(五)——非极大值抑制

非极大值抑制最后阶段用到的技术

2020-10-14 18:16:34 211

原创 CV目标检测(四)——判断目标检测好坏的指标

判断目标检测好坏的指标交并比IoU(intersection-over-unionmAP(mean average precision)平均准确率均值

2020-10-14 18:15:40 446

原创 CV目标检测(三)——传统的目标检测方法&FCN

滑动窗口法+传统机器学习分类器SVM、神经网络分类器、KNN分类器识别效果不够好,准确率不高计算量比较大,运行速度慢可能会出现多个正确识别的结果滑动窗口法+卷积神经网络CNN速度可能还是慢全卷积神经网络(FCN)可以输入任意大小的图片...

2020-10-14 16:55:24 244

原创 CV目标检测(二)——空洞卷积&转置卷积

空洞卷积在相同感受野的情况下,使用空洞卷积可以得到更大的特征图,可以获得更加密集的数据。在相同感受野的情况下,更大的特征图有助于在目标检测和目标分割的任务中对小物体的识别分割效果转置卷积...

2020-10-14 16:31:50 468

原创 CV目标检测(一)——1×1卷积

1×1卷积1、增加非线性1×1卷积核的卷积过程相当于全连接层的计算过程,并且还加入了非线性激活函数,从而可以增加网络的非线性,使得网络可以表达更加复杂的特征2、特征降维通过控制卷积核的数量达到通道数大小的放缩。特征降维带来的额好处是可以减少参数和减少计算量...

2020-10-14 16:18:45 122

原创 从暴力递归到动态规划进阶

“从0开始做LeetCode”之从暴力递归到动态规划进阶 1.换钱的方法数

2020-10-11 14:44:42 170

原创 二叉树进阶

“从0开始做LeetCode”之二叉树进阶 1+2.morris遍历经典遍历:额外空间复杂度:O(h),因为要回到上级节点,压栈,这个栈可以是递归,也可以自己写递归版过程:有左子树,能来到它两次,没有左子树,只能来到它一次在morris遍历中改先序,中序,后序:难先序:中序:后序:只关注能够来到两次的节点,在第二次来到该节点时候,逆序打印左子树右边界,最后单独打印一下整棵树右边界3.平衡搜索二叉树对比hash_map:时间复杂度:O(1)查:时间复杂度:O(h)

2020-08-14 17:35:47 163

原创 窗口内最大、最小值,单调栈

“从0开始做LeetCode”之窗口、单调栈 1.窗口用双向链表解决2.窗口的应用:生成窗口最大值数组3.窗口的应用:最大值减去最小值小于或等于num的子数组数量Note:子数组连续暴力解法:最优解:总体思路:往右扩4.单调栈时间复杂度:O(N)找大,从栈底到栈顶,从大到小找小,从栈底到栈顶,从小到大找出右边最近和左边最近比这个数大的数项目 spark、hadoop,造项目,分布式计算5.单调栈应用:构造数组的MaxTree大根堆:时间复杂度:O(N

2020-08-11 15:36:04 143

原创 KMP,Manacher,BFPRT

“从0开始做LeetCode”之KMP,Manacher,BFPRT 1.KMP算法next数组子树问题 也用这个方法2.Manacher算法求最大回文子串暴力解法回文半径,回文右边界,回文中心可能性1:iii不在回文有边界内,暴力解后面的可能性拆为3种可能性2:对称点在回文内,对称点回文半径在内,和对称点的回文半径一样可能性3:对称点在回文内,对称点回文半径在外,iii->RRR可能性4:对称点在回文内,对称点回文半径压线,开始的一段不用管,后面暴力试整

2020-08-10 20:45:50 93

原创 递归和动态规划常见题目

“从0开始做LeetCode”之递归和动态规划常见题目 1.求n!2.汉诺塔问题复杂度:O(2^n)3.打印一个字符串的全部子序列,包括空字符串子序列!=子串4.打印一个字符串的全部排列进阶:另加要求不要出现重复的排列5.母牛N年总数F(n)=F(n-1)+F(n-3)6.暂时没做这个题暂时没做7.二维数组最小路径和尝试,枚举暴力递归的缺点:重复计算 f(1,1)无后效性问题改动态规划8.数组中的累加和...

2020-08-09 13:49:01 125

原创 贪心常见题目

“从0开始做LeetCode”之贪心常见题目 1.前缀树(try-树)·增加前缀树功能2.贪心:N个字符串串起来,怎么最大ab<ba,bc<cb => ac<ca3.贪心:花费最少哈夫曼编码问题尽可能让每一刀下去两边差不多,贪心贪出来贪心策略不用证明4.贪心:利润最多堆,就是优先级队列堆+比较器,生成小根堆,大根堆5.还有一道题,之前讲堆排时候讲过了6.贪心:场次最多按照开始的时间贪心按照持续时间短贪心按照结束的时间贪心

2020-08-08 16:46:01 201

原创 并查集常见题目

“从0开始做LeetCode”之并查集常见题目 解决的问题:非常快地 查两个元素是否在一个集合两个元素所在的各自的集合给合并到一起1.认识哈希函数和哈希表2.设计RandomPool结构双哈希3.认识布隆过滤器100亿个url,黑名单 大数据调整哈希函数的个数和开的数组位数决定失误率比特类型的map4.认识一致性哈希服务器设计抗压,负载均衡经典抗压问题:当加机器和减机器,数据需要重新迁移解决:一致性哈希降低数据迁移的代价,同样达到负载均衡哈希域虚拟

2020-08-08 13:51:38 175

原创 哈希表常见题目

“从0开始做LeetCode”之哈希表常见题目 1.认识哈希函数和哈希表2.设计RandomPool结构双哈希3.认识布隆过滤器100亿个url,黑名单 大数据调整哈希函数的个数和开的数组位数决定失误率比特类型的map4.认识一致性哈希服务器设计抗压,负载均衡经典抗压问题:当加机器和减机器,数据需要重新迁移解决:一致性哈希降低数据迁移的代价,同样达到负载均衡哈希域虚拟节点技术Note:没听太明白...

2020-08-07 18:27:47 842

原创 二叉树常见题目

“从0开始做LeetCode”之二叉树常见题目 1.实现二叉树的先序、中序、后序遍历,包括递归方式和非递归方式打印时机——>先序,中序,后序2.用数组结构实现大小固定的队列和栈3.实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作时间复杂度:O(1),可以使用线程的栈结构两个栈:同步进,同步弹4. 如何仅用队列结构实现栈结构?如何仅用栈结构实现队列结构?两个队列两个栈:倒数据5. 猫狗队列6. 转圈打印矩阵额外空间复杂度:O(1)宏观

2020-08-05 21:42:01 355

原创 链表常见题目

“从0开始做LeetCode”之常见题目 1.排序后找出相邻两个数的最大值2.用数组结构实现大小固定的队列和栈3.实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作时间复杂度:O(1),可以使用线程的栈结构两个栈:同步进,同步弹4. 如何仅用队列结构实现栈结构?如何仅用栈结构实现队列结构?两个队列两个栈:倒数据5. 猫狗队列6. 转圈打印矩阵额外空间复杂度:O(1)宏观调度旋转90°7. 反转单向和双向链表8. “之”字形打印宏

2020-08-05 00:38:46 104

原创 天池NLP赛事-新闻文本分类(六)——基于深度学习的文本分类3-BERT

系列文章天池NLP赛事-新闻文本分类(一) —— 赛题理解天池NLP赛事-新闻文本分类(二) —— 数据读取和数据分析天池NLP赛事-新闻文本分类(三)——基于机器学习的文本分类天池NLP赛事-新闻文本分类(四)——基于深度学习的文本分类1-FastText天池NLP赛事-新闻文本分类(五)——基于深度学习的文本分类2-TextCNN、TextRNN天池NLP赛事-新闻文本分类(六)——基于深度学习的文本分类3-BERT目录六、基于深度学习的文本分类3-BERT6.1 文本表示方法——Par.

2020-08-04 23:59:35 1002

原创 常用排序算法总结

“从0开始做LeetCode”之常用排序算法总结 1.冒泡排序Note:先排最大的时间复杂度:O(n2)O(n^2)O(n2) 空间复杂度:O(1)O(1)O(1)void bubble_sort(vector<int> &nums, int n){ //这里可以传入n,也可以不用 if(nums.empty() || nums.size()<2){ return; } for(int end = nums.size()- 1; end > 0; end-

2020-08-04 10:00:34 117

原创 天池NLP赛事-新闻文本分类(五)——基于深度学习的文本分类2-TextCNN、TextRNN

系列文章天池NLP赛事-新闻文本分类(一) —— 赛题理解天池NLP赛事-新闻文本分类(二) —— 数据读取和数据分析天池NLP赛事-新闻文本分类(三)——基于机器学习的文本分类天池NLP赛事-新闻文本分类(四)——基于深度学习的文本分类1-FastText天池NLP赛事-新闻文本分类(五)——基于深度学习的文本分类2-TextCNN、TextRNN目录五、基于深度学习的文本分类2-TextCNN、TextRNN5.1 文本表示方法——词向量5.1.1 Skip-grams原理和网络结构5.1.

2020-07-30 13:25:09 872

原创 天池NLP赛事-新闻文本分类(四)——基于深度学习的文本分类1-FastText

系列文章天池NLP赛事-新闻文本分类(一) —— 赛题理解天池NLP赛事-新闻文本分类(二) —— 数据读取和数据分析天池NLP赛事-新闻文本分类(三)——基于机器学习的文本分类天池NLP赛事-新闻文本分类(四)——基于深度学习的文本分类1-FastText目录四、基于深度学习的文本分类1-FastText4.1 文本表示方法——FastText4.2 基于FastText的文本分类4.3 如何使用验证集调参四、基于深度学习的文本分类1-FastText4.1 文本表示方法——FastTe.

2020-07-27 20:01:13 396

原创 天池NLP赛事-新闻文本分类(三)——基于机器学习的文本分类

系列文章天池NLP赛事-新闻文本分类(一) —— 赛题理解天池NLP赛事-新闻文本分类(二) —— 数据读取和数据分析天池NLP赛事-新闻文本分类(三)——基于机器学习的文本分类目录三、基于机器学习的文本分类3.1 机器学习模型3.2 字词模型3.3 基于机器学习的文本分类三、基于机器学习的文本分类3.1 机器学习模型机器学习能解决一定的问题,但不能奢求机器学习是万能的;机器学习算法有很多种,看具体问题需要什么,再来进行选择;每种机器学习算法有一定的偏好,需要具体问题具体分析;.

2020-07-25 21:09:16 992

原创 LeetCode 81. 搜索旋转排序数组 II

“从0开始做LeetCode”之第九题 tag:二分查找——先找有序区间难度:medium假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] )。编写一个函数来判断给定的目标值是否存在于数组中。若存在返回 true,否则返回 false。示例 1:输入: nums = [2,5,6,0,0,1,2], target = 0输出: true示例 2:输入: nums = [2,5,6,0,0,1,

2020-07-23 17:08:00 117

原创 LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置

“从0开始做LeetCode”之第九题 tag:二分查找——左右边界难度:medium给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,10], target = 6输出

2020-07-23 15:53:40 83

原创 天池NLP赛事-新闻文本分类(二)——数据读取和数据分析

系列文章天池NLP赛事-新闻文本分类(一) —— 赛题理解天池NLP赛事-新闻文本分类(二) —— 数据读取和数据分析目录二、数据读取与数据分析2.1 数据读取2.2 数据分析2.2.1 句子长度分析2.2.2 新闻类别分布2.2.3 字符分布统计2.3 数据分析的结论二、数据读取与数据分析2.1 数据读取赛题数据虽然是文本数据,每个新闻是不定长的,但仍然使用csv格式进行存储。因此可以直接用Pandas完成数据读取的操作。import pandas as pdtrain_df = pd.

2020-07-22 20:58:44 535

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除