自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

夏天Alex

linux驱动、音视频编解码、算法相关学习记录

  • 博客(139)
  • 资源 (5)
  • 问答 (2)
  • 收藏
  • 关注

原创 CNN记录】pytorch中flatten函数

作用:将连续的维度范围展平维张量,一般写再某个nn后用于对输出处理,end_dim:终止的维度,-1为最后一个轴。start_dim:开始的维度。

2023-10-20 14:33:27 739

原创 vmware安装ubuntu22.04无法和window主机拷贝文件处理

vmware安装ubuntu系统一般安装了vmware tools就能实现和主机相互拷贝文件,但是ubuntu22.04失败了,原因是新版本呢ubuntu(22.04,20.04等)默认启用了新版的窗口系统Wayland而非原来的X11,而vmware tools没有支持这个特性(文件/etc/gdm3/custom.conf 中 WaylandEnable=false 打开。2、重启GDM服务sudo systemctl restart gdm3 或者直接reboot。1、禁用Wayland。

2023-10-11 13:50:27 558 1

原创 【CNN记录】pytorch中BatchNorm2d

对于所有的batch中样本的同一个channel的数据元素进行标准化处理,即如果有C个通道,无论batch中有多少个样本,都会在通道维度上进行标准化处理,一共进行C次。:分母中添加的值,目的是计算的稳定性(分母不出现0),默认1e-5。:BN中存储的均值方差是否需要更新,true需要更新。第一个值都是-1.3416,对上了,其他都是一样。:对输入的四维数组进行批量标准化处理(归一化):用于运行过程中均值方差的估计参数,默认0.1。:设为true时,给定开易学习的系数矩阵r和b。

2023-07-12 17:31:32 2946

原创 ELF文件格式解析

ELF格式分析

2023-07-11 11:15:21 2877

原创 【CNN记录】pytorch中shuffle_channel

将输入data的通道混洗重排,把所有通道分成group个组,并通过逐一从每个组中选择元素来组成新的顺序。依据这个功能,可以由几个op融合成shuffle_Channel。reshape1把channel分成对组。transpose组进行转置交换。reshape2组合并。

2023-05-19 16:54:01 359

原创 fp32和fp16之间转换

fp16、fp32转换

2023-02-28 16:55:47 4755

原创 【CNN记录】tensorflow中depth_to_space

tensorflow 、depth_to_space

2023-02-14 10:31:13 745

原创 shell脚本中getopt介绍

getopt命令

2022-12-02 14:10:23 1521

原创 【CNN记录】tensorflow中reduceMax、reduceMin、reduceSum、reduceMean介绍

reducemin等

2022-11-21 15:29:06 1453

原创 【CNN记录】pytorch中argMax、argMin

pytorch、argmax、argmin

2022-11-21 14:01:51 901

原创 【CNN记录】pytorch gather函数

gather其实就是根据index中索引查找input中元素重排,数据都是原来的,只是重新查找形成新张量矩阵。index维度为1x1x2x4,所以gather输出也是这个dims。根据上面的公式,我们可以一个个来取值。这么看下来可能有点懵,我们举个栗子。...

2022-08-04 16:47:18 290

原创 【CNN记录】tensorflow slice和strided_slice

切片函数

2022-08-01 14:19:02 330

原创 【CNN记录】transpose函数

transpose介绍

2022-07-08 15:47:35 1488 1

原创 leetcode ----2个有序数组合并,并去重

解题思想:由于2个数组已经是排序的性质,可以使用2个指针分别指向2个数组,两两比较小数放到新的数组里同时指针向后移动一位,如果是相同,那么2个指针都向后移动1位参数描述:num1、num2位数组nums1Size、nums2Size为数组个数m、n为有效值个数ps:因为最后的值要放倒nums1中,所以nums1内存能放的个数需要=m+n才行。int merge_arr(int* nums1, int nums1Size, int m, int* nums2, int num

2022-05-15 22:10:00 3068 1

原创 linux等待队列wait queue

linux内核的等待队列是在内核中运用非常广泛的数据结构,它是以双循环链表为基础的数据结构,与进程的休眠---唤醒机制紧密相连,可以用来同步对系统资源的访问、异步事件通知、跨进程通信等。假设进程A想要获取某资源(读网卡数据),但是此时资源没有准备好(网卡还未接收到数据),这时内核必须切换到其他进程进行,直到资源准备好再唤醒该进程。1、等待队列头struct __wait_queue_head { spinlock_t lock; //...

2022-03-29 17:05:20 4688

原创 一段代码计算余弦距离

在NPU的接入过程中,经常会遇到最终结果精度不足的情况,这个时候我们就需要dump每层数据和原始框架float结果对比,可能很多人直接beyond compare,有时候肉眼可以看出来,不过最好的方法还是看它的余弦相似度。基本上所有NPU的发布包里或多或少都提供了类似的功能,比如rknn、nnie等。 NPU跑的是量化网络,dump下来一般已经做了反量化,所以得到的也是float结果,所以可以直接比较。通常相似度的比较可以用余弦距离和空间欧式距离表示,一般用的多的可能是余...

2022-03-18 17:45:51 2382

原创 v4l2摄像头采集流程及应用程序

V4L2是linux上用于采集图片、视频、音频数据的一套框架,在远程会议、视频监控系统、嵌入式多媒体终端中都有广泛的应用。V4L2通过打开驱动中创建的/dev/videoX设备,就可以进行一系列的操作,比如申请内存、设置格式、设置属性、开启采集等等。通过v4l2采集步骤示例代码:#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <fc...

2022-03-17 09:55:41 4125 3

原创 linux中断介绍(概念、顶半部和底半部、linux中断编程)

中断的概念:指CPU在执行过程中,出现某些突发事件急待处理,CPU暂停执行当前程序,转去处理突发事件,处理完后CPU又返回原程序被中断的位置继续执行.中断的分类:内部中断:来自cpu内部(软件中断、cpu溢出、触发错误等)外部中断:来自cpu外部,由外设触发屏蔽中断和不可屏蔽中断可屏蔽中断:可以通过屏蔽字被屏蔽,屏蔽后该中断不再触发响应不可屏蔽中断:中断无法...

2022-02-23 13:34:02 2221

原创 函数调用过程栈帧变化

某个函数运行时,机器需要分配一定内存去进行函数内的各种操作,这个过程包括将数据和控制从代码的一部分传递到另一部分,分配的这部分就是栈帧,栈帧其实就是是一段有界限的内存空间,它为函数局部变量分配空间,退出该函数时释放这些空间,回到调用它的地方执行下一条指令。栈的作用:传递参数、局部变量分配、保存调用的返回地址、保存寄存器以供恢复上一栈帧了解程序在内存中分布的都知道,栈是从高地址向低地址延伸的,每个函数的调用,都有它自己独立的一个栈帧栈帧主要是有下面2个指针工作ebp:帧指针...

2022-02-22 14:43:29 938

原创 linux进程写时拷贝技术cow(copy-on-write)

Linux程序中,创建进程使用的是fork()函数,它会产生一个核父进程基本完全相同的子进程,这里先记住有相同的物理内存,区别仅仅在于pid、ppid和某些统计量。子进程后面基本都会执行exec系统调用,它会引起子进程另起内存拷贝一份,如果创建子进程都需要拷贝内存的话,辛苦拷贝的又完全放弃了,出于效率考虑,Linux引入了写时复制技术,也就是只有进程空间的各段内容要发生变化时,才会将父进程的内容复制一份给子进程。在fork之后exec之前两个进程用的是相同的物理空间(内存...

2022-02-18 13:56:07 1366

原创 linux内核管理算法---buddy系统算法概念初探

Buddy Systemlinux伙伴算法解决的问题是频繁地请求和释放不同大小的一组连续页框,必然导致在已分配的页框块内分散了很多小块的空闲页面,导致程序运行到后面,无法分配出满足要求的大块连续页框。为了避免这种情况,linux引入了伙伴系统算法,它把所有的空闲页框分为11个块链表,每个块链表分别包含大小为2^0、2^1、2^2……2^10,即1、2、4、……、1024个连续页框的页框块,每块能申请最大的1024个页框对应4M大小的连续内存。另外伙伴算法每次只能分配2的幂次页的空间,...

2022-02-18 09:30:45 724

原创 linux内核态和用户态调试

调试

2022-02-16 14:24:35 623

原创 Ubuntu 16.04安装配置NFS实现开板板挂载pc目录

ubuntu16.04/ubuntu18.04安装配置nfs实现挂载共享目录

2022-02-16 13:48:22 637

转载 图像bayer pattern介绍及插值原理

1、bayer格式介绍bayer格式图片是伊士曼·柯达公司科学家Bryce Bayer发明的,Bryce Bayer所发明的拜耳阵列被广泛运用数字图像  对于彩色图像,需要采集多种最基本的颜色,如rgb三种颜色,最简单的方法就是用滤镜的方法,红色的滤镜透过红色的波长,绿色的滤镜透过绿色的波长,蓝色的滤镜透过蓝色的波长。如果要采集rgb三个基本色,则需要三块滤镜,这样价格昂贵,且不好制造,因为三块滤镜都必须保证每一个像素点都对齐。当用bayer格式的时候,很好的解决了这个问题。bayer格式图片在一.

2022-02-15 10:31:01 1782

转载 create_singlethread_workqueue与create_workqueue的区别

使用create_singlethread_workqueue创建工作队列即使对于多CPU系统,内核也只负责在一个cpu上创建一个worker_thread内核线程;而使用create_workqueue创建工作队列对于多CPU系统,内核将会在每个CPU上创建一个worker_thread内核线程,使得线程处理的事务能够并行化

2021-12-01 16:37:10 3866

原创 NVDLA runtime vp 搭建

简介NVDLA虚拟平台提供了一个可精确注册的系统,可以在该系统上快速开发和调试软件。该虚拟平台基于GreenSocs QBOX,它是与QEMU和SystemC共同仿真的解决方案。下面的图89显示了NVDLA虚拟模拟器的顶层示意图。包含ARMv8“虚拟” SoC板的QEMU仿真器,以提供高性能CPU仿真和通用设备。该仿真器包装在带有一组TLM-2.0接口的标准SystemC模块内,可以与其他SystemC模块进行交互。1、下载 Virtual Simulator$ git clone https:/

2021-04-15 14:15:32 2104 11

原创 NVDLA compiler

NVDLA简介nvdia深度学习加速器(NVDLA)是一种免费开放式架构,具有可扩展性,高度可配置性,旨在简化集成和可移植性。NVDLA软件生态系统包括一个设备上的软件堆栈(开源版本的一部分),一个完整的培训基础架构,用于构建包含深度学习的新模型,以及将现有模型转换为可在设备上使用的形式的解析器软件。可以提供其自己的硬件平台以及软件内核:NVDLA可以加速神经网络推理工作,可分两步完成针对DLA硬件优化训练有素的神经网络,并将图形转换为DLA HW指令。转换后的图形将保存到称为可加载的平面缓冲区

2021-04-14 13:25:21 3488 3

原创 ubuntu16.04找不到libgtk-x11-2.0.so解决方法

解决方案:需要安装32位的库,命令如下:apt-get install libgtk2.0-0:i386如果出现类似下面的错误E: Unable to locate package libgtk2.0-0E: Couldn't find any package by regex 'libgtk2.0-0'那么还需要使用下面的命令打开32位支持功能,支持后重新安装gtk库sudo dpkg --add-architecture i386sudo apt-get update如果想删

2020-10-27 08:40:05 1500

原创 交叉编译sysstat工具(mpstat、iostat、sar等)

linux下经常需要分析cpu占用率、io使用情况、内存使用情况等系统相关状态,sysstat是一个工具包,里面集成了很多条工具命令。有的嵌入式设备中不带sysstat里面的命令,这个时候就需要我们根据开发板的编译链手动编译一下就可以使用了。iostat - 提供CPU统计,存储I/O统计(磁盘设备,分区及网络文件系统)mpstat - 提供单个或组合CPU相关统计pidstat - 提供Linux进程级别统计:I/O、CPU、内存等sar - 收集、报告、保存系统活动信息:CPU、内存、磁盘、中

2020-10-10 17:38:20 2685

原创 linux中创建python virtualenv虚拟环境

背景:我们在开发过程中经常开发A需要这个python2.7,开发B需要python3.5,而且有很多相同但是不同版本的依赖包,这个时候虚拟环境virtualenv就派上用场了,anaconda3也有同样的功能,但是它比较大功能也更加全面,对于我个人来说直接使用virtualenv更加便捷一点。下面介绍一下基本步骤1、安装virtualenv环境sudo apt install virtualenv2、创建工作目录及创建运行环境mkdir py_work && cd py_work

2020-09-25 15:42:47 960

原创 名字太长辣眼睛,ubuntu如何设置不显示用户和本机名?

有时候在linux下进入到某个很深的目录中,光路径都能占一行,看起来及其尴尬,又或者需要截图出去,但是又不想暴露过多信息,一般操作就是截图后再马赛克掉,类似下面这样现在有一种十分简单的方法# sudo vi /etc/bash.bashrc修改、添加如下#原来效果是这样:\u 用户名 \h 主机名export PS1="\u@\h#" #那么我们可以改成export PS1="test@local# " 就变成这样了当然你也可以改成其他的,看起来很清爽。...

2020-08-14 10:32:18 1613

原创 linux下解决pip [Read timed out] 的方法

修改~/.pip/pip.conf (如果没有该目录、文件,则新建一个)增加内容如下[global]index-url = https://pypi.tuna.tsinghua.edu.cn/simple[install]trusted-host = https://pypi.tuna.tsinghua.edu.cn另外还有一些其他的源阿里云 http://mirrors.aliyun.com/pypi/simple/豆瓣 http://pypi...

2020-07-09 22:32:33 726

原创 softmax中axis参数

从caffe中我们看到softmax有下面这些参数// Message that stores parameters used by SoftmaxLayer, SoftmaxWithLossLayermessage SoftmaxParameter { enum Engine { DEFAULT = 0; CAFFE = 1; CUDNN = 2; } optional Engine engine = 1 [default = DEFAULT]; // The

2020-07-02 16:46:47 2360 2

原创 makefile中$(var)和$$(var)

makefile中我们经常看到$(var),表示对var的引用,它其实是读取makefile中的变量var,然后将其扩展开,传给shell命令。但是不要轻易的认为这个makefile中var就和shell中var是同一个变量了,shell中的var是一个内置变量,其值是由makefile传递给shell的。而$$(var)是用来访问shell内定义的变量(不是makefile中定义的变量)。如果某个规则是由多个shell命令构成,如果每句之间没有用;和\连接起来的话,其实它们就是相互无关的命令。下面举

2020-06-27 18:04:38 4259

原创 makefile添加打印的几种方式

makefile中添加打印信息有下面几种方式1、如果是在目标中,可以使用下面的方式SRC := ./src/test1.cSRC += ./src/test2.cINC := ./inc/test.h$(info SRC = $(SRC))$(warning INC = $(INC))#注意:执行到error会直接stop退出$(error INC = $(INC))test: @echo SRC=$(SRC) @echo INC=$(INC) $(info SRC = $(SR

2020-06-22 16:40:15 8934

原创 【linux】u盘挂载到linux出现Structure needs cleaning解决办法

插入U盘后打开该盘错误如下:解决办法从图可以看到u盘空间位于/dev/sdb2分区所以执行sudo fsck -vcfy /dev/sdb2ps:fsck 是检查和修复linux文件系统的工具,具体用法可以查看man...

2020-04-29 17:57:21 1972

原创 ubuntu18.04配置tensorflow

可以选择pip方式安装不过在不管windows和linux,都推荐利用anaconda配置环境,避免很多莫名其妙的问题一、安装anaconda3及python1、wget https://repo.continuum.io/archive/Anaconda3-5.1.0-Linux-x86_64.shor 官网自行下载or 此镜像下载2、下载路径下执行:~:bash An...

2020-04-26 13:05:01 735

原创 【vs2015】如何在vs中指定dll目录

平时我们调用三方动态库的时候一般是把dll库放在exe的同级目录,这样是ok的,但是有时候我们为了目录的整洁干净需要把所有三方库放在一个统一的目录下,就需要在属性中指定路径,网上搜索了若干方法,最后是在stackoverflow中找到一个有效的解决方案,供参考。右键项目->Properties->Debugging->Environment,这个里面进行指定,...

2020-04-22 10:00:27 1999

原创 container_of解析

宏定义位于:include/linux/kernel.h #define container_of(ptr, type, member) ({ / const typeof( ((type *)0)->member ) *__mptr = (ptr); / (type *)( (char *)__mptr - offsetof(type,member) );})...

2020-03-23 09:22:06 209

原创 Android.mk语法笔记

目前经常需要使用ndk编译跑在手机上的dmeo程序,需要需改Android.mk,大部分都是和makefile类似,遇到用的少的不会用的还是笔记之...1、MY_CPP_LIST := $(wildcard $(LOCAL_PATH)/src/*.cpp)MY_CPP_LIST += $(wildcard $(LOCAL_PATH)/src/common/*.cpp)LOCAL_...

2020-03-12 11:16:01 245

Caffe网络模型各层详解.zip

caffe网络模型各个层详解(中文版),pdf高清版本,讲解了prototxt的各个参数,入门可以看看

2019-12-12

linus-4-9.37bd.txt.zip

开发海思3519av100时候需要的内核版本,使用镜像下载在着实缓慢,所以下载好了放到网盘供大家使用,亲测编译ok。

2019-12-03

C+++GUI Qt4编程 (第二版) 高清 中文文字版

非常适合qt4初学者,按照上面的例子做吧。

2014-03-12

串口通信程序(VS2008)

自己做的串口通信程序,并且可以利用输入的数据控制图形旋转不同角度

2012-12-26

新编数字电路与数字逻辑[张虹][习题解答].

电子类学生基础课程数字电路与逻辑的安安,张虹版

2012-11-30

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

TA关注的人

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