自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 linux采用scp命令拷贝文件到本地,拷贝本地文件到远程服务器

1.从服务器复制文件到本地: scp root@192.168.1.100:/data/test.txt /home/myfile/ 补充:多文件拷贝 scp root@192.168.1.100:/data/\{test1.txt,test2.cpp,test3.bin,test.*\} /...

2020-01-10 14:28:29

阅读数 12

评论数 0

原创 yolov3模型微调相关

使用-clear命令 通过模型1训练出的backup或者final.weights文件代替预训练模型darknet53.conv.74,并在训练命令的末尾加上-clear命令,这样模型的训练会从初始状态开始,比如: ./darknet cfg/yolo.data cfg/yolo.cfg ba...

2020-01-09 15:27:20

阅读数 18

评论数 0

转载 【TensorRT】Ubuntu16.04 + TensorRT-5.1.5.0 + ONNX-TensorRT 安装及 yolov3转onnx

一、软硬件版本 已安装 Ubuntu 16.04 python 2.7.16 显卡: Tesla P4 cuda 9.0.176 cudnn 7.5 待安装 TensorRT-5.1.5.0 二、下载 从nvidia官网下载适用 cuda9.0 的 Tar 安装文件 Ten...

2020-01-07 09:54:08

阅读数 103

评论数 0

原创 yolov3剪枝

https://blog.csdn.net/xidaoliang/article/details/87877562

2019-12-31 09:37:15

阅读数 63

评论数 0

原创 ubuntu18.04修改根目录下只读文件

首先要安装一个插件 nautilus-admin 使用命令 sudo apt install nautilus-admin 然后重启文件管理器 nautilus -q 可以在ubuntu中使用右键以管理员方式打开了

2019-12-30 15:05:19

阅读数 56

评论数 0

原创 ubuntu编译caffe

https://blog.csdn.net/u011021773/article/details/81298666

2019-12-30 15:04:16

阅读数 7

评论数 0

原创 Ubuntu18.04下安装ROS

https://blog.csdn.net/haiyinshushe/article/details/84256137

2019-12-26 18:28:57

阅读数 15

评论数 0

原创 windows下anaconda虚拟环境中安装opencv

1. activate tensorflow 2. conda install -c menpo opencv3

2019-10-09 09:53:07

阅读数 12

评论数 0

转载 基于tensorflow框架下的cascade r-cnn的训练和测试

基于tensorflow框架下的cascade r-cnn的训练和测试 github代码:https://github.com/DetectionTeamUCAS/Cascade-RCNN_Tensorflow 环境: python = 2.7 tensorflow-gpu = 1.3 ...

2019-09-20 15:47:30

阅读数 193

评论数 1

转载 安装detectron

原文链接:https://blog.csdn.net/weixin_39916966/article/details/99728387 https://blog.csdn.net/qq_34782826/article/details/99883057 https://blog.csdn.net/...

2019-09-20 11:29:17

阅读数 102

评论数 0

原创 TensorRT对模型加速

TensorRT 使用步骤 1.创建Builder 2.创建Network 3.创建Parser 4.绑定输入、输出以及自定义组件 5.序列化或者反序列化 6.传输计算数据 7.执行计算 8.传输计算结果 ...

2019-09-11 18:15:25

阅读数 42

评论数 0

原创 anaconda+win10+pytorch+cpu 安装

在cmd命令行 改变当前目录为文件pytorch-nightly-cpu-1.1.0.dev20190528-py3.6_cpu_0.tar.bz2所在的目录, 执行conda install --offline pytorch-nightly-cpu-1.1.0.dev20190528-py...

2019-07-28 19:30:47

阅读数 28

评论数 0

转载 C++线程安全的单例类

单例模式是一种非常常用的设计模式,几乎在稍大的工程项目中都会用到。单例类保证在全局中只有唯一一个类的实例对象,并且在类的内部提供了获取这个唯一实例的接口。在类中,实例化出一个对象需要调用构造函数,为了防止在类的外部调用构造函数构造出实例,对类的构造函数就应有所限制,可以将构造函数的访问权限设置为p...

2019-07-02 16:49:15

阅读数 23

评论数 0

原创 C++函数内的静态变量初始化以及线程安全问题

1. 如果是编译时和加载时初始化, 是不会存在线程安全这个issue的; 因为这两种初始化一定发生在Main函数执行之前, 这个时候尚未进入程序运行空间; 而这些初始化一定是在单线程环境下操作的! -- 都是在执行C Runtime的startup代码中的void mainCRTStar...

2019-07-02 16:23:29

阅读数 36

评论数 0

转载 惊群现象

惊群效应也有人叫做雷鸣群体效应,简言之,惊群现象就是多进程(多线程)在同时阻塞等待同一个事件的时候(休眠状态),如果等待的这个事件发生,那么他就会唤醒等待的所有进程(或者线程),但是最终却只可能有一个进程(线程)获得这个时间的“控制权”,对该事件进行处理,而其他进程(线程)获取“控制权”失败,只能...

2019-07-02 16:18:14

阅读数 7

评论数 0

原创 程序什么时候应该使用线程,什么时候单线程效率高

1.耗时的操作使用线程,提高应用程序响应 2.并行操作时使用线程,如C/S架构的服务器端并发线程响应用户的请求。 3.多CPU系统中,使用线程提高CPU利用率 4.改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立的运行部分,这样的程序会利于理解和修改。 对于处理时...

2019-07-02 16:10:23

阅读数 183

评论数 0

转载 用动态规划方法找字符串中最长回文子串

LeetCode中有这么一道题: 给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为1000。 示例 1: 输入: "babad" 输出: "bab" 注意: "aba"也是一个有效答案。 示例 2: 输入: &q...

2019-06-26 16:39:12

阅读数 22

评论数 0

转载 【深度学习】深入理解Batch Normalization批标准化

转自https://www.cnblogs.com/guoyaohua/p/8724433.html Batch Normalization作为最近一年来DL的重要成果,已经广泛被证明其有效性和重要性。虽然有些细节处理还解释不清其理论原因,但是实践证明好用才是真的好,别忘了DL从Hint...

2019-06-10 10:31:18

阅读数 10

评论数 0

转载 vector资源释放

1. vector容器的内存自增长 与其他容器不同,其内存空间只会增长,不会减小。先来看看"C++ Primer"中怎么说:为了支持快速的随机访问,vector容器的元素以连续方式存放,每一个元素都紧挨着前一个元素存储。设想一下,当vector添加一个元素时,为了满足连续存放...

2019-05-14 22:17:26

阅读数 179

评论数 0

转载 share_ptr的线程安全性

shared_ptr线程安全性分析 正如《STL源码剖析》所讲,“源码之前,了无秘密”。本文基于shared_ptr的源代码,提取了shared_ptr的类图和对象图,然后分析了shared_ptr如何保证文档所宣称的线程安全性。本文的分析基于boost 1.52版本,编译器是VC 2010。 ...

2019-05-14 22:12:30

阅读数 156

评论数 0

原创 成员函数里memset(this,0,sizeof(*this))会发生什么

this里面可能包含string之类的对象,把这些对象清零会导致非法数据。 即使一个类现在是POD,维护升级之后可能就不再是POD了。因此memset(this,0,sizeof(*this))是一种危险的写法。 没有virtual function,没有vtable,同时class当中没...

2019-05-14 22:10:34

阅读数 189

评论数 0

转载 谈谈stl标准库的线程安全性

线程安全规则应用到标准 C++ 库中的所有类,这也包括 shared_ptr,如下所述。 有时提供更强的保证(例如,如下所述的标准 iostream 对象和专门用于多线程的类型,如 中的类型)。 从多个线程读取某个对象时,该对象是线程安全的。 例如,给定对象 A,可安全地同时从线程 1 和线程 ...

2019-05-14 22:07:47

阅读数 164

评论数 0

原创 虚函数的内存结构,菱形继承的虚函数内存结构

https://blog.csdn.net/u010235142/article/details/78307022

2019-05-14 22:04:27

阅读数 126

评论数 0

转载 子类不能继承父类的函数有哪些

但是一个派生类的指针可以安全地转化为一个基类的指针。这样删除一个基类的指针的时候,C++不管这个指针指向一个基类对象还是一个派生类的对象,调用的都是基类的析构函数而不是派生类的。如果你依赖于派生类的析构函数的代码来释放资源,而没有重载析构函数,那么会有资源泄漏。所以建议的方式是将析构函数声明为虚函...

2019-05-14 22:01:56

阅读数 1543

评论数 0

原创 C++中为什么用模板类

1:可用来创建动态增加或减少的数据结构 2:它与某种特定类型无关,因此代码可重复使用 3:它在编译时检查数据类型而不是运行时检查数据类型,保证了类型的安全 4:它是平台无关的,具有很好的移植性 ...

2019-05-14 21:57:14

阅读数 323

评论数 0

原创 protected,public,private在继承中的可见性

在C++里,继承有三中方式,public、protected、private三中继承方式,我们需要记住这3种继承的可见性问题,会有两个可见性的问题, 一是子类与父类的可见性, 二是对象的可见性(具体更多是指对象与父类的成员可见性问题),我们必须记住,三种继承的方式都并不会影响子类成员对父类成员...

2019-05-14 11:12:27

阅读数 138

评论数 0

转载 说一下C++的返回值优化

前言 大家都知道“过早的优化是万恶之源”这句话,然而我相信其中的大多数人都不知道自己是不是在做过早的优化。我也无法准确的定义什么叫做“过早的优化”,但我相信这“过早的优化”要么是得不偿失的,要么干脆是有害无利的。今天我就想举个我认为是“过早的优化”的例子。 从函数返回值 为了从一个函数得到运...

2019-05-14 11:03:41

阅读数 24

评论数 0

转载 临时对象在什么时候会产生

临时对象 临时对象是看不见的,它们不出现在你的源代码中。在栈上建立一个没有命名对象叫做临时对象。临时对象产生和释放都会对应构造函数和析构函数的调用。一切都是函数的调用而已。 1、为了使得函数调用成功产生临时对象 仅当通过传值方式和传递常量引用参数时,才可能发生类型转换。传递非常量引...

2019-05-14 10:37:02

阅读数 197

评论数 0

转载 什么是回调函数,回调函数的使用场景

1.回调函数基本定义- 什么是函数指针 通俗来说,函数指针是一个指向特定函数的指针。函数的类型由其参数及返回类型共同决定,与函数具体名称无关。示例代码如下:int testFun1(int param1,long param2,float param3); //普通函数定义 该函数的类型为int...

2019-05-13 21:42:10

阅读数 192

评论数 0

原创 如何区分一段代码是C++还是C代码编写的

C与C++在很多地方不同,比如 1.最明显的是看输入输出:C用库函数printf()和scanf(),C++用标准流类cout和cin 2.最本质的是看有无类class,这也是C++与C最根本的区别 当然,有的程序表面上看是C++风格的,但用的是机构化的思想,而不是面向对象的思想。 最明显的区别...

2019-05-13 21:26:05

阅读数 507

评论数 0

转载 标准库函数和系统调用的区别

写在前面:所谓标准库函数,这里暂时讨论C语言的标准库函数。库函数是语言本身的一部分,而系统函数是内核提供给应用程序的接口,属于系统的一部分。函数库调用是语言或应用程序的一部分,而系统调用是操作系统的一部分。 一、标准库函数和系统调用的区别 函数库调用 系统调用...

2019-05-13 21:24:04

阅读数 42

评论数 0

转载 如何定义一个只能在堆上创建的类,如何定义一个只能在栈上创建的类

1.如何定义一个只能在堆上生成的类 方法一:首先我们要在堆上定义一个对象的时候一定要用new ,比如A *a=new A; C++会先在堆上malloc一块内存,然后执行构造函数。 相信有些人看到这个题都会这样想: class A { public: A() { return new...

2019-05-13 21:09:25

阅读数 42

评论数 0

转载 C++4种类型转换

总 结   去const属性用const_cast。   基本类型转换用static_cast。   多态类之间的类型转换用daynamic_cast。   不同类型的指针类型转换用reinterpreter_cast。 static_cast 任何具有明确定义的类型转换,...

2019-05-13 20:59:00

阅读数 39

评论数 0

转载 迭代器和普通自指针有什么区别

迭代器与指针的差别: 迭代器: (1)迭代器不是指针,是类模板,表现的像指针。他只是模拟了指针的一些功能,通过重载了指针的一些操作符,->,*,++ --等封装了指针,是一个“可遍历STL( Standard Template Library)容器内全部或部分元素”的对象,本质是封装了原生...

2019-05-13 16:00:19

阅读数 106

评论数 0

转载 为什么需要虚继承,虚继承的实现原理

虚继承和虚函数是完全无相关的两个概念。 虚继承是解决C++多重继承问题的一种手段,从不同途径继承来的同一基类,会在子类中存在多份拷贝。这将存在两个问题:其一,浪费存储空间;第二,存在二义性问题,通常可以将派生类对象的地址赋值给基类对象,实现的具体方式是,将基类指针指向继承类(继承类有基类的拷贝)...

2019-05-12 21:07:54

阅读数 141

评论数 0

转载 析构函数可以是纯虚的么

C++中析构函数可以为纯虚函数吗? 众所周知,在实现多态的过程中,一般将基类的析构函数设为virtual,以便在delete的时候能够多态的链式调用。那么析构函数是否可以设为纯虚呢? class CBase { public: CBase() { ...

2019-05-12 19:59:38

阅读数 204

评论数 0

转载 析构函数可以调用虚函数,构造函数为什么不可以调用虚函数

简要结论: 1. 从语法上讲,调用完全没有问题。 2. 但是从效果上看,往往不能达到需要的目的。 Effective 的解释是: 派生类对象构造期间进入基类的构造函数时,对象类型变成了基类类型,而不是派生类类型。 同样,进入基类析构函数时,对象也是基类类型。 所以,虚函数始终仅仅调用基类的虚函...

2019-05-12 19:50:31

阅读数 104

评论数 0

原创 内联函数、构造函数、静态成员函数可以是虚函数么

都不可以。 1.内联函数需要在编译阶段展开,而虚函数是运行时动态绑定的,编译时无法展开; 2.构造函数在进行调用时还不存在父类和子类的概念,父类只会调用父类的构造函数,子类调用子类 的,因此不存在动态绑定的概念; 3.静态成员函数是以类为单位的函数,与具体对象无关,虚函数是 与对象动态绑定...

2019-05-12 19:40:07

阅读数 162

评论数 0

原创 为什么需要纯虚函数

通过它可以指明一个虚拟函数只是提供了一个可被子类型改写的接口。   纯虚函数是在基类中声明的虚函数,它可以在基类中有定义,而且派生类必须定义自己的实现方法。基类不能生成对象,可以使用指针或者引用派生类对象。基类不在基类中实现纯虚函数的方法是在函数原型后加“=0”   virtual void ...

2019-05-12 19:25:00

阅读数 295

评论数 0

原创 为什么C++访问虚函数比访问普通函数慢

原因: 1.- 运行时需要得到对应类的函数的地址 2.- 当在用父类的引用或者指针调用虚函数时,会先从该对象的头部取到虚函数的地址(C++标准规定虚函数表地址必须放最前),再从虚函数表中取到实际要调用的函数的地址,最终调用该函数 3.- 调用虚函数,相比普通函数,实际上多了三条指令:取虚表,取函数...

2019-05-12 19:16:09

阅读数 67

评论数 0

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