自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(178)
  • 收藏
  • 关注

原创 GLFW环境搭建

1.下载glfw3我这里下载的是glfw3.3.6,可以自己在官网下载。GLFW官网也可以使用的我下载的zip文件链接:https://pan.baidu.com/s/16zRJdM26xYW4JQ4PJqZWMw 提取码:kczy解压文件,编译其实可以使用官网上的预编译的版本,这里我使用vs2019也很好编译。首先是解压zip文件,然后使用vs打开先点击全部生成,然后点击安装G...

2022-04-03 13:12:00 99

原创 RetinaFace在TensorRT8.2上部署

github地址模型MoblieNetV1-Retinaface开发环境Windows10CUDA11.1 + CUDNN8.2.1TensorRT8.2EAGTEST + GLOGOPENCV4CMake语言C++代码下载后需要自行配置CUDA和CUDNN,并配置OPENCV和TensorRT。如果不需要GTEST和GLOG可以自行删除多余代码。代码是从我的项目代码中...

2021-10-14 02:12:00 92

原创 tensorflow实现resnet

先学习下如何自己完成一个resnet网络用于cifar100训练,后面在使用迁移学习训练。如果不知道resnet具体的网络结构可以自己学习下,这里只进行实现。1. BasicBlock实现BasicBlock首先是继承layer.Layerclass BasicBlock(layers.Layer):然后重写里面的init和call方法。1)先在init定义Basic中的基础操作,...

2021-04-18 12:01:00 99

原创 tf中tensorboard的使用

1 安装tensorboardpip install tensorboard2 使用命令打开tensorboard并设置logdirtensorboard --logdir logs #logs是我自己设置的log输出目录根据提示打开web网页,我这里是http://localhost:6006/。3 代码中创建log输出创建log writerimport datatimec...

2021-04-10 12:45:00 57

原创 tensorrt序列化和反序列化失败

今天开发的时候用tensorrt的序列化和反序列化,总是报engine为nullptr的错误。首先我序列化的是时候是这样写的caffeToTRTModel(deployfile, modelfile, NULL); ofstream trtModelFile(cacheFile); trtModelFile.write((char *)trtModelStre...

2021-04-09 17:24:00 99

原创 C++离散均匀分布

1、c++中使用离散均匀分布可以引用这个有文件#include <random>2、在使用std::uniform_int_distribution类模板构造一个分布对象。static constexpr int __MIN_CNT__ = 200;std::uniform_int_distribution<> randomer(0, __MIN_CNT__ - ...

2021-04-05 12:50:00 29

原创 windows x64 libyuv编译

环境 vs2019 cmake-gui1.编译libjpeg下载libjpeg1)解压后,下载 win32.mak,提取码:qnml ,放在解压目录下用vs2019打开在工具中选择命令行输入nmake /f makefile.vs setup-v152)打开生成的jpeg.sln新建平台x64然后右键项目重新生成生成成功,关闭当前vs。不会的我这里有生成好的 提取码:...

2021-03-29 19:50:00 76

原创 tf.norm、tf.equal和tf.unique

import tensorflow as tf'''L2范数 sqrt(∑kXk^2)无穷范数 abs(max(Xk))L1范数 sum(abs(Xk))'''a = tf.ones([2,2])print(tf.norm(a)) # tf.norm算的是L2范数#等价于print(tf.sqrt(tf.reduce_sum(tf.square(a)))) #这里redu...

2021-03-12 20:37:00 29

原创 tf中的stack、concat、unstack、split

concat和stacktf.concat需要保证除了拼接的维度,其他维度都相同。tf.stack需要保证所有的维度都相同。tf.concat中axis参数是设置那个维度进行拼接。tf.stack中axis是表示新创建的维度的位置。tf.stack会创造一个维度(要求进行stack的tensor的shape是一样的),而tf.concat会在指定的维度上进行合并。tf.stack可以...

2021-03-11 22:23:00 32

原创 c语言中的access函数

linux系统中access#include <unistd.h>int access(const char *pathname, int mode);access函数用来判断指定的文件或目录是否存在(F_OK),已存在的文件或目录是否有可读(R_OK)、可写(W_OK)、可执行(X_OK)权限。F_OK、R_OK、W_OK、X_OK这四种方式通过access函数中的第二个参数...

2021-03-09 14:45:00 43

原创 解决deprecated-declarations的正确的做法

合项目分支代码的时候,cmake出现大量的警告 deprecated-declarations,于是我按照网上的教程改了CMakeLists.txt,增加下面的属性set(CMAKE_CXX_FLAGS "-Wno-error=deprecated-declarations -Wno-deprecated-declarations ")结果导致项目中出现大量的cv找不到。这里项目中CMak...

2021-03-08 17:52:00 351

原创 tensorflow中的gather、gather_nd、boolean_mask

1. gatherimport tensorflow as tfa = tf.random.normal([4, 38, 8])print(a.shape)a_1 = tf.gather(a, axis=0, indices=[3, 1]) # 第一维度的3和1,这里的indices是不用限制顺序的print(a_1.shape)a_2 = tf.gather(a, axis=...

2021-03-02 22:20:00 46

原创 pip install 安装的时几个可换源

有时候pip安装的东西时候会超时,适当选择源可以解决问题。方法是pip install 加上-i 下面的某个源地址就好了,临时用下就好,不用设置成默认的,因为有时清华源好用,有时科大源好用,自己试试就知道了。阿里云 http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/豆瓣...

2021-02-25 11:34:00 23

原创 windows安装TF

查看本机python和pip的版本python --versionpip --version我这例python为3.6 pip为211创建虚拟环境先自己找好一个盘,比如我选的E盘控制台e:python -m venv --system-site-packages .\venv激活虚拟环境.\venv\Scripts\activate更新e:\venv\Scripts\py...

2021-02-24 15:38:00 26

原创 shell获取本机IP并输出到屏幕上

#!/bin/bashlocal_ips=$(/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v 172.17.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:")local_port=9955for element in ${local_ips} do echo -e "\0...

2021-02-24 15:12:00 38

原创 glog编译依赖gfags导致问题

glog使用--alsologtostderr参数时报这个错误ERROR:unknown command line flag ‘alsologtostderr’其实这个问题可以将--alsologtostderr换成GLOG_alsologtostderr=1就可以解决。根本这个原因是glog默认依赖gflags。如果还是想使用--alsologtostderr参数,可以参照以下步骤分析问...

2021-02-04 13:03:00 84

原创 ubuntu开放指定端口

今天遇到个问题就是有个代码使用了flask,项目明明起来了,结果使用浏览器访问就是不行。后面研究发现原来是服务器的端口没有开放出来。这里记录下开放端口的步骤临时开放sudo apt-get install iptables #安装iptables工具iptables -I INPUT -p tcp --dport 9956 -j ACCEPT #开放9956端口,生成规则iptable...

2021-02-02 19:28:00 24

原创 tf编译无法下载49177915a14a.tar.gz

ERROR: /root/sshfs_dir/tensorflow-v1.10/third_party/eigen3/BUILD:30:1: no such package '@eigen_archive//': java.io.IOException: Error downloading [https://storage.googleapis.com/mirror.tensorflow.org...

2021-01-25 15:43:00 47

原创 通过Dockerfile创建caffe-gpu环境

自己先安装docker和nvidia-docker再看下面的教程。我这里GPU型号为 tesla T4, 算力为7.5,会有一些特殊处理。首先是我不会在Dockerfile中编译caffe本次环境安装通过Dockerfile安装,如果按照本教程要先安装docker以及nvidia-docker1. 下载caffe的代码git clone https://github.com/BVLC/c...

2021-01-12 19:28:00 24

原创 选用删除函数,而不是使用private未定义的函数

c++98中通常就函数定义为private,来表示这个函数不可用。比如常见的禁止复制构造函数或者复制拷贝函数。当然private也有些好的用法,比如单例中。但是我们这里讨论的是删除某个函数。class NonCopyable { protected: NonCopyable() = default; ~NonCopyable() = default; private: No...

2021-01-11 19:43:00 26

原创 带限定作用域的枚举类型和非不限定作用域的枚举型别

带限定作用域的枚举型别通过enum class声明,非限定作用域的枚举型别通过enum声明。1、非限定作用域的枚举型别可能导致枚举量泄漏到所在的作用域空间namespace TestSpace {enum Color { red = 0, green, blue,};auto red = true; // 错误}; // namespace TestSpace而限定...

2021-01-11 17:41:00 31

原创 cudnn8.0+cuda10.0链接地址

cudnn真的不好下,这里我下载的链接。https://盘.摆度.抗/s/1txEtdIfRMNi07NAndONFJQ 密码: jub9

2021-01-07 14:42:00 18

原创 InnerClass

#include <atomic>#include <functional>class ParserBase { public: virtual void Process () = 0;}; // class ParserBaseclass Base { public: Base(); void SetRuning(bool runni...

2021-01-04 15:07:00 16

原创 meta

1. value metafunction#include <assert>template<int X>struct IntIdentity { static constexpr int my_value = X;};int main() { static_assert(42 == IntIdentity<42>::my_value, ...

2020-12-29 21:04:00 13

原创 InterruptCB

typedef struct InterruptCB { int (*callback)(void*); void *opaque;} InterruptCB;class Parse{ public: static int InterruptCallBack(void* ctx) { Parse* parse = reinterpret_cast<Parse*&...

2020-12-29 16:59:00 16

原创 dirs、pushd、popd

1、dirs显示当前目录栈中的所有记录语法(1)格式:dirs [-clpv] [+n] [-n](2)选项-c 删除目录栈中的所有记录-l 以完整格式显示-p 一个目录一行的方式显示-v 每行一个目录来显示目录栈的内容,每个目录前加上的编号+N 显示从左到右的第n个目录,数字从0开始-N 显示从右到左的第n个日录,数字从0开始注意:d...

2020-12-29 14:48:00 13

原创 []、()、{}

容器创建时[]与{}#include <iostream>#include <vector>int main() { std::vector<int> vec[2]; vec[0].push_back(1); vec[1].push_back(2); //vec[0].push_back(1); vec[1].push_back(2...

2020-12-24 15:55:00 19

原创 auto

auto1、减少代码量2、与std::function相比,更快。使用auto声明functonal时,auto声明存储一个壁报变量,与该闭包是同一型别的,内存量也和该闭包是一样的。而使用std::function的时候声明的是一个std::function的实例,不管是什么样都占用固定的尺寸的内存。如果该内存不够用的时候std::function的构造函数都会分配堆内存来存储闭包。所...

2020-12-21 17:05:00 15

原创 decltype

decltype就是用于给定的名字或者表达式,decltype能告诉你该名字或表达式的型别。通常来说结果是符合自己的预期的。const int i = 0; // decltype(i) 是 const int bool f(const Widget& w); //decltype(w) 是 const Widget& struct Point { int x, y;...

2020-12-21 15:18:00 16

原创 auto型别推导

前置文章 型别推导采用auto进行变量声明时候,型别饰词取代ParamType。所以也存在三种情况:情况1:型别饰词是指针或者引用,但不是万能引用。情况2:型别饰词是万能引用。情况3:型别饰词不是指针也不是引用。int x = 27;const int cx = x;auto&& uref1 = x; // x 型别为int,且为左值 ...

2020-12-15 11:37:00 17

原创 型别推导

函数模板大致形如:template<typename T>void f(ParamType param);f(expr);什么是型别推导?就是推导模板中,在函数调用之类中T到底是啥。template<typename T>void f(const T& param);int x = 0;f(x); // T 推导为int, ParamType推导...

2020-12-14 18:37:00 18

原创 GCC diagnostic ignored

在项目中通常会使用第三方库,然后在使用三方库时会出现许多编译警告,可以通过下面的方式忽略#ifdef __GNUC__#pragma GCC diagnostic push#pragma GCC diagnostic ignored "-Wdeprecated-declarations"#endif这里可以根据需要忽略什么#pragma GCC diagnostic push用于记录当...

2020-12-10 11:17:00 54

原创 docker-compose

安装指南1. 安装sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose2. 权限sudo chmod +x /usr/local/bin/docker-...

2020-11-30 14:13:00 15

原创 lvalue required as unary ‘&’ operand以及改动后的Segmentation fault

lvalue required as unary ‘&’ operand#include <iostream>struct A { int data_;};void CreateA(A** a_addr) { *a_addr = new A;}void DestoryA(A* a) { if (a) { delete a; a =...

2020-11-27 17:29:00 245

原创 struct

C++struct支持数据类型为简单类型的隐式转换,包括stl中一些容器。#include <iostream>#include <string>struct Widget { int x; std::string str;};int main() { Widget w1; w1.x = 10; w1.str = "hello"; Wi...

2020-11-25 19:52:00 12

原创 数据类型及指针大小

最近写代码,内存分配不管二级还是一级全放在一起申请,导致各种地址偏移,转换。这里记录几个常见的数据的大小#include <iostream>#include <stdint.h>int main() { std::cout << "void** :" << sizeof(void**) << std::endl; std...

2020-11-25 15:28:00 18

原创 deleting ‘void*’ is undefined [-Werror=delete-incomplete]

error: deleting ‘void*’ is undefined [-Werror=delete-incomplete]今天做了一件这样的事params_size = 2 * sizeof(void *) + sizeof(int *) + 2 * sizeof(int) + sizeof(int *) + 4 * sizeof(int);cpu_params = new uint...

2020-11-25 14:37:00 77

原创 pytorch(c++)安装并测试

下载解压# If you need e.g. CUDA 9.0 support, please replace "cpu" with "cu90" in the URL below.wget https://download.pytorch.org/libtorch/nightly/cpu/libtorch-shared-with-deps-latest.zipunzip libtorch...

2020-11-23 16:47:00 23

原创 享元模式

存在在软件系统中采用纯粹的对象方案的问题:大量细粒度的对象会很快充斥系统中,从而带来很高的运行时的代价。需要解决的问题如何避免大量的细粒度的问题的同时,让客户段程序任然能够透明的使用面向对象的方式进行操作。方案:运用共享技术有效的支持大量细粒度的对象。FlyWeight其实这部分,不太常用。记得部门之前有人打算在现在做的系统的上加上一个内存池。好像被打回去重做了。其实这部分的内容比较想...

2020-11-23 15:26:00 14

原创 单例模式

单例模式可以说得上最简单的模式,我记得我本科毕业时找工作,很多公司问到设计模式都是谈单例模式,mvc之类的。单例模式说简单也简单,说可研究点也很多。怎么说呢?有时候我们想保存一个全局只需要一个变量或者对象实例的时候(比如这个对象创建很复杂但是实际使用对象实例中状态基本不会变化),会怎么做呢?可能首先想到的是全局变量,但是从第一门 编程课开始,就有人时不时提醒自己,不要要使用全局变量,不要使...

2020-11-23 11:15:00 19

空空如也

空空如也

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

TA关注的人

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