3 TwT520Ly

尚未进行身份认证

人之所以能,是相信能!

等级
TA的排名 1w+

【Numpy使用】numpy中的副本与视图

对于numpy中的array进行操作的时候,可以三种复制方式。1.浅拷贝2.视图方式(view)3.深拷贝(copy)1.浅拷贝直接进行赋值的方式,没有新对象的构造,两次创建的变量是指向相同的内存区域的。importnumpyasnpa=np.arange(50)b=aprint(id(a),id(b))利用id()验证之后,发现a和b是指向相同内存区域的,只...

2018-11-16 17:42:57

【C++】测试时间

为了精准的获取程序块的运行时间,使用sys/time.h进行时间测试。structtimevalstart;structtimevalend;unsignedlongTime=0;gettimeofday(&start,NULL);...gettimeofday(&end,NULL);Time=1000000*(end.tv_sec-...

2018-10-08 17:48:01

【NCNN源码分析】4.内存分配器(未完成)

NCNN定义内存池分配器实现高效的内存管理。

2018-09-29 15:10:35

【NCNN源码分析】3.基本数据结构分析

对于NCNN,在网络层传递的过程中,进行数据流动的方式是通过自定义的blob实现的,对于blob通过生产者编号和消费者编号进行定义,producer表示输出该blob的网络层编号,consumers表示以该blob作为输入的网络层编号,前者只能是一个制造者,后者可以是多个使用者。classBlob{public://emptyBlob();public:#if...

2018-09-29 15:08:56

【NCNN源码分析】2.网络层基类

Layer类是所有其他网络层的一个基类,所有的网络层都会从Layer继承,实现互异的计算过程,所有网络层的相似之处在于输入输出的规范以及前向传播的过程。Option是属性类,lightmode表示轻量级模式在网络推理中会不断地进行垃圾回收,num_thread表示线程数量,并且定义两个内存分配器,一个是对基本数据结构blob的内存分配,另一个是对计算空间workspace的内存分配。class...

2018-09-29 14:54:07

【技巧】如何魔改程序可以在x86架构上开发neon?

对于Neon程序的开发,大致上有两种方式1.直接在arm板子上写代码,但是一般容易导致板子严重发热。2.在PC端写完代码,然后直接放到arm上运行,但是如此复杂的指令很容易拼写错误。于是,我们需要对项目进行一次神奇的改动,就是单纯的在我们的工程下面引入arm_neon.h,很显然这样子是可以使用代码补全的,不过是无法实现编译过程的,流程如下:1.找到头文件arm_neon.h,大约是100...

2018-09-26 14:42:00

【NCNN源码分析】1.基本数据类型

对于NCNN而言,核心在于网络的前向推理过程(Inference),其主要数据类型为mat,该数据类型以类的形式定义在src/mat.h中,其中包含了mat的构造函数、析构函数、常见的运算过程。#if__ARM_NEON#include<arm_neon.h>#endif通过宏变量__ARM_NEON控制Neon的使用。//emptyMat();...

2018-09-25 20:03:50

【NCNN源码分析】0.前言

从上半年开始,一直就比较关注NCNN的进展,在嵌入式平台上,NCNN可以说是非常好的一个选择了。后面的话,会不断地更新博客,对NCNN源码进行分析,如果理解不到位的地方,欢迎指正!...

2018-09-25 19:44:04

【Linux技术】编译安装Boost(待整理)

参考:https://blog.csdn.net/this_capslock/article/details/47170313

2018-09-25 11:17:16

【SSE】存储方式有关的扩展定义关键字__declspec(待整理)

参考:https://blog.csdn.net/iamoyjj/article/details/4195635

2018-09-25 11:08:13

【各种技巧】Windows常见的计数器方式(待整理)

参考:https://blog.csdn.net/MoreWindows/article/details/6854764

2018-09-25 10:40:35

【Linux技术】libyuv各平台编译(待整理)

参考:https://blog.csdn.net/wszawsz33/article/details/51669719

2018-09-25 10:36:22

【SSE】常见的SSE指令以及简单使用(待整理)

参考:https://blog.csdn.net/tercel_zhang/article/details/80002692

2018-09-25 10:21:28

【C++】g++参数介绍(待整理)

参考:https://www.cnblogs.com/lidan/archive/2011/05/25/2239517.html

2018-09-25 10:15:59

【汇编编程】查看汇编代码

#include<iostream>usingnamespacestd;intmain(){ cout<<"HelloWorld!"<<endl; return0;}文件保存为main.cpp,执行g++-Smain.cpp在同级目录下面生成main.s,是原始代码文件的汇编代

2018-09-21 20:10:19

【图像处理】关于图像的多种格式

RGB与BGR在使用OpenCV获取图像的时候,读取进来的数据是BGR格式的,而不是RGB格式。测试方法://testthecolorchannel对于RGB而言,有两种方式可以进行表示,一种是RGB24,另一种是RGB32。RGB24是三通道的图像,分别是R、G、B,RGB32是四通道的图像,分别是R、G、B、Alpha,第四个通道表示图像的透明度,在图像合成的时候有很...

2018-08-23 15:26:05

【OpenCV】使用CMake链接自己路径下面的OpenCV库

\qquad在实际开发中,不一定会拥有sudo权限,所以需要将OpenCV编译在非环境路径下面。之前将OpenCV配置在系统路径下面的时候,在CMake中我们是使用find_package进行查找的,使用CMake链接函数库,无非就是对头文件和动态(静态)链接的引用,只要find_package找到的函数库,就可以直接使用XXX_LIBRARIES和XXX_INCLUDE_DIRSA进行处理。...

2018-08-23 15:16:48

【各种技巧】在Pycharm中常见的配置问题

无法在Pycharm中使用CUDA,显示libcudnn.so因为在linux环境下面,pycharm可能无法找到CUDA的环境变量,所以需要配置CUDA的环境变量。在Run->EditConfigurations,找到Environmentvariables,添加LD_LIBRARY_PATH并且设置CUDA的安装位置。无法在Pycharm导入同级文件模块因为Pycharm...

2018-08-08 18:07:23

【OpenBLAS】BLAS、LAPACK、ATLAS、OpenBLAS区别

1.BLASBasicLinearAlgebraSubprograms,基础线性代数子程序。定义了一组API,可以进行向量之间乘法、矩阵之间的乘法等。使用Fortran语言开发的。2.LAPACKLinearAlgebraPackage,线性代数包,底层使用BLAS,使用Fortran语言编写。在BLAS的基础上定义很多矩阵和向量高级运算的函数,如矩阵分解、求逆和求奇异值等。...

2018-07-25 12:00:03

【CUDA】设计优秀的CUDA程序

首先需要对我们的程序进行性能测试:(1)时间:使用CUDA事件的方式进行时间测试。(2)内存带宽:根据运行时间和传入到核函数的数据内存量进行带宽计算。优秀的CUDA程序:1.在给定的数据规模下,选用算法的复杂度不明显高于最优的算法。2.Activewrap(激活的线程束)的数量能够让SM载满,而且Activeblock的数量大于2,能够有效的隐藏访存延迟(使用足...

2018-07-19 17:10:19

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!