- 博客(82)
- 资源 (2)
- 收藏
- 关注
原创 网络编程(三)
IO即为网络网络 I/O,多路即为多个tcp连接,复用即为共用一个线程或者进程,模型最大的优势是系统开销小,不必创建也不必维护过多的线程或者进程。IO多路复用,最主要是服务器同时可以处理监听套接字和连接套接字 可以不用多创建一个线程和进程 直接用io复用提高程序的效率。
2023-04-10 17:15:57 485 1
原创 网络编程(二)
由于进程通信的本质是要让两个不同的进程看到同一份资源,我们可以在物理内存上开辟一块空间,这块空间被称为共享内存,然后让这两个进程通过某种方式都能访问到这块内存,这样的话,两个进程之间就可以通信了。共享内存操作默认不阻塞,如果多个进程同时读写共享内存,可能出现数据混乱,共享内存需要借助其他机制来保证进程间的数据同步,比如:信号量,共享内存内部没有提供这种机制。std::condition_variable, 要搭配着mutex来使用,主要的函数为wait和notify函数。读写的内容存在于内存中。
2023-04-10 15:32:44 653
原创 网络编程(一)
内存是按照字节进行编址的,如果是char,int8类型的数据只占一个地址,就不会存在字节序问题。如果是short,int等占用多个字节的类型就会存在内存先存高位还是先存低位的问题,这就是字节序问题。字节序主要有两种:大端序和小端序。
2023-04-08 18:40:43 214
原创 每天一点C++——杂记230408
先介绍一下什么是左值,什么是右值。左值是表达是结束后仍然存在的持久化对象,可取地址,右值是表达式结束后就不再存在的临时对象,不可取地址。所有的具名变量活对象都是左值,而右值不具名。C++通过右值引用可以充分使用临时变量或者即将不使用的变量即右值资源,减少不必要的拷贝来提高效率。C++引入了右值引用&&,移动构造函数,移动赋值和std::move。
2023-04-08 15:39:14 375
原创 python杂记——if obj 和 if obj is None的区别
if obj;if not obj;if obj isNone; if not obj is None;if obj is not None; if obj == None
2022-05-04 09:28:44 1199
原创 python杂记——成员函数、类函数、类静态函数
本文记录一下python中常见的几种函数类型。主要有:类的成员函数,类函数,类的静态函数几种。类外定义函数?成员函数成员函数通过类的实例调用,调用前先创建类的对象,定义成员函数不需要装饰器修饰,但是函数的参数需要添加self来指定调用该函数的对象。通过下面的测试代码可以看到,成员函数也可以用类调用,不过需要传入self所对应的对象。类函数类函数是属于整个类别的共有方法,可以通过类名或者对象名进行调用,定义类函数时需要在函数前面加@classmethod装饰器,类函数的第一个参数是该类别的对象。静态
2022-01-13 11:45:36 1505
原创 Python杂记——下划线总结
Python中的下划线可以分为单下划线"_ "和双下划线 “__”。与变量和函数名称有一下几种组合:在名称前面:_name和__name在名称后面: name_和name__前后都有: name 和 __ name __不和名称结合:_在名称前面单下划线单下划线在名称前面只是约定俗成的使用方式,用来说明该变量或者函数只是内部使用。但这不是python解释器强制的,只是对代码使用者或者阅读者的提示。需要注意的一点,如果函数,方法,类的名称使用单下划线开头,使用import *引入该模块的时
2021-10-30 17:18:43 198
原创 PyTorch笔记——FX
官方文档链接:https://pytorch.org/docs/master/fx.html#概述FX是供开发人员用于转换nn.Module实例的工具包。FX由三个主要组件组成:符号追踪:symbolic tracer, 中间层表示:intermediate representation, Python代码生成:Python code generation。这些组件的运行演示:import torch# Simple module for demonstrationclass MyModule(t
2021-10-22 19:55:58 1669
原创 卷积神经网络——YOLOv4论文翻译
论文链接:https://arxiv.org/abs/2004.10934YOLOv4: Optimal Speed and Accuracy of Object DetectionAbstract有大量的特性都自称可以提升卷积神经网络(CNN)的精度。仍然需要在大数据集上实际测试这些特性的组合并对结果进行理论证明。一些特性只能应用在特定模型上,或针对特定问题,或只应用与小尺度的数据集;另一些特征,像BN和残差连接可以应用到大部分的模型、任务和数据集上。我们假设通用的特征包括加权残差链接(WRC),跨
2021-10-20 17:20:38 2537
原创 每天一点C++——获取multimap某个key的所有value
multimap中可以保存多个key值,介绍一下获取某一key值所有value的方法。这些方法对于multiset也是可以使用的。使用equal_range使用count统计出数量使用lower_bound upper_bound获取起止迭代器,和1类似代码:#include <iostream>#include <map>using namespace std;typedef multimap<string, string>::iterator
2021-10-11 15:13:07 3248
原创 卷积神经网络——YOLOv3论文翻译
论文链接:https://arxiv.org/abs/1804.02767YOLOv3: An Incremental ImprovementAbstract (摘要)我们提出了一些对YOLO的升级!我们做了一些小的设计修改来使它更好。我们同样训练了该新网络,它的表现非常不错。它比上一个版本大一点但是精度更高。别担心,它仍然足够快。使用320x320的输入时YOLOv3的执行速度为22ms得到mAP为28.2,与SSD精度一样高但是速度快了三倍。如果看老的检测指标——0.5IOU的mAP,YOLOv3
2021-08-02 17:48:40 1200
原创 每天一点C++——const和constexpr
C++11中添加了一个constexpr的关键字,今天简单介绍一下。const关键字我们在前面的一篇文章中已经介绍过了:https://blog.csdn.net/itlilyer/article/details/109201275const可以修饰变量、参数、返回值、函数等等,主要实现两种表达:一是这个值不可以被修改;二是这是个常量。constexpr是C++11新加入的用来表示该值在编译阶段就可以确定,可以是编译宏的值,#define的值,常量值等。看下下面的代码:#include <i
2021-07-29 15:25:17 101
原创 每天一点C++——多维数组的创建和初始化
使用vector来实现多维数组。已知数组大小已经知道数组大小的话可以通过下面方式来创建数组。数组int myArray[3][4];vectorstd::vector<std::vector<int>> vec(13, std::vector<int>(7, 2));未知数组大小int func(const std::vector<std::vector<int>> & data) { size_t or
2021-07-29 11:25:13 1048
原创 卷积神经网络——YOLOV2(YOLO9000)论文翻译
论文链接:https://arxiv.org/abs/1612.08242YOLO9000: Better, Faster, StrongerAbstract我们介绍一个最先进的,实时的目标检测系统——YOLO9000,它可以检测超过9000种目标类型。首先我们提出了针对YOLO的各种改进方法,即有新的思路也借鉴了以往的工作。经过提升后的模型——YOLOv2,是在标准检测任务(像PASCAL VOC 和COCO)上表现最好的。通过使用一种新颖的多尺度的训练,相同的YOLOv2模型可以使用不同的输入大小
2021-07-16 11:10:09 899 2
原创 机器学习之评价指标(二)——分类评价指标
回归问题的评价指标见:https://blog.csdn.net/itlilyer/article/details/117880207现在我们介绍一下分类问题中常用的评价指标。在介绍评价指标前首先要了解"混淆矩阵"。"混淆矩阵"个人理解是一个分析一个分类模型对一个输入数据预测结果不同情况的说明矩阵。从表格中看到真实值和预测结果会有四种组合:真正(True Positive): 把标签也就是真实值为True的预测为Positive,比如,将一张小狗图片,标签为狗,预测结果也为狗。真负(True N
2021-07-08 18:11:07 1415 2
原创 shell常见命令(1)——变量大小写转换
大小写转换将脚本的输入参数转换为大小或小写param1=${1^^} #转换为大写param2=${2,,} #转换为小写echo $param1echo $param2变量的大小写转换使用typeset设置变量保存大写还是小写,两个选项-u是大小,-l是小写。param1=${1^^} #转换为大写param2=${2,,} #转换为小写echo $param1echo $param2typeset -l ccctypeset -u dddccc=$param1
2021-06-29 15:12:57 2940
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人