自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (3)
  • 收藏
  • 关注

原创 机器学习-卷积神经网络CNN中的单通道和多通道图片差异

在CNN中涉及到的主要就是image kernel bias这三个元素。这里image表示是首层的输入,后边卷积层的impute都是前边的output,与首层操作类似,不再多说。# 定义一个二维卷积层# 假设有一个4维的输入张量 x,形状为 (batch_size, in_channels, height, width)# 在输入张量上应用卷积层# 输出张量的形状为 (batch_size, out_channels, output_height, output_width)其中,

2023-03-07 18:44:15 3474 3

原创 玩转NVIDIA Jetson (30)--- 解决jetson平台使用Python import包时出现illegal instruction(cpre dumped)问题

这个方法是最简单的方法,需要注意的是,这种方法只适用于特定的软件包,不能解决所有类似的问题。最近在一台新的jetson nano上配置python开发环境,使用conda方法安装的包,在import导入时出现了错误。作用就是设置OpenBLAS库使用ARMv8架构编译,这样可以避免与Jetson Nano的CPU架构不匹配的问题。这个问题之前在国外的论坛找到过解决方案,但是时间久了又忘了,这次再遇到,记录下来,以免以后再碰到同样的问题。在这种情况下,可以通过设置环境变量来指定使用的CPU架构。

2023-02-28 10:43:21 1191

原创 玩转NVIDIA Jetson (29)---浅谈jetson nano上的CPU绑定

根据问题,找到原因,因地制宜。

2023-02-21 10:31:15 442

原创 玩转NVIDIA Jetson (28)--- jetson clocks对tensorRT推理速度的影响

使用resnet18训练了一个CNN网络,放到jetson nano上进行推理的时候,发现前几组推理耗时比较久,五次大概是50ms 40ms 30ms 20ms这种递减的情况,随后进入了一个比较稳定的阶段,稳定在20ms左右的推理速度。jetson clocks的使用在之前文章中专门提过,这次是在使用tensorRT加速CNN的时候偶然发现了他的一些影响,记录下来,希望对其他人有所帮助。可以看到,除了第一次耗时之外,后边的计算耗时就很稳定了,也解决了我的应用问题。

2023-02-15 12:45:45 610 6

原创 机器学习-LSTM中的几个参数理解

LSTM参数

2022-12-21 10:54:06 2937

原创 matlab将变量保存为txt文件的方法

matlab变量保存到txt文档

2022-12-12 14:18:26 2774

原创 玩转NVIDIA Jetson (27)--- jetson系统时间问题

jetson nano 时间不同步的问题处理

2022-12-08 10:41:08 1313 5

原创 使用MobaXterm tunneling访问集群(服务器)jupyter notebook

想要在本地计算机C上使用高性能服务器上的计算节点运行jupyter notebook相关的代码。高性能服务器上通常只有一个公网ip用于账户登陆管理,但有多个计算节点,需要使用公网IP通过SSH方式登入管理节点A,并使用SSH二次登陆计算节点B,此时如果需要在本地计算机C上想要操作计算节点B的计算资源,例如使用节点B的jupyter notebook,需要进行单独的配置。

2022-11-22 10:04:26 1516

原创 环境配置 - Conda虚拟环境下配置jupyter notebook

jupyter notebook使用anaconda环境3. 将当前环境写入jupyter notebook中注意,这里的env是环境明, display_name是你要在jupytername里显示的kernel名字,一般情况下是一个名字,也可以不一致,这个看个人需求。这时候通过change kernel就可以使用配置好的anaconda环境了

2022-11-14 15:03:22 1076

原创 玩转NVIDIA Jetson (26)--- 在python虚拟环境中快速使用tensorRT

python版本的tensorRT是跟随jetpack已经安装好的,但是在编译的时候只适配了python2.7和python3.6版本,也就是jetpack自带的python版本,如果需要在自己创建的conda环境中进行使用,会出现无法引入包的情况。pythonpath环境变量是导入包的时候自动检索的目录,默认情况下是检索python解释器所在文件目录下的包,我们只需要将这个变量多配置一个原机自带的python包目录,就可以快速使用tensorRT了。2.切换到你所使用的虚拟环境,安装pycuda。

2022-09-04 17:24:03 1294

原创 玩转NVIDIA Jetson (25)--- jetson 安装pytorch和torchvision

在jetson上安装pytorch能够快速的帮助PC用户在熟悉的环境下进行开发,但是这个过程里边有一些坑,我建议大家参照官方给出的安装指导来进行安装,包括pytorch和包含各种网络的torchvision。这里需要特别注意的一个问题就是你需要选择与你机器上jetpack相匹配的版本,千万别下错了,比如我这里用的是jetpack4.6,那我安装的pytorch就是V1.10.0版本。我还是建议大家用虚拟环境,不然jetson上的python环境非常容易被搞乱,具体安装方法见之前的文章。

2022-09-04 10:45:37 5329 4

原创 玩转NVIDIA Jetson (24)--- jetson docker非sudo使用

jetson系统中安装了docker,但在使用的时候每次都需要加sudo权限,很麻烦。6.测试docker命令,拉取一个ubuntu18.04镜像跑hello world。解决方案是将当前用户添加到docker的用户组里,这样就避免了重复的sudo输入。一般会出现类似 docker:x:127,证明用户组存在,如果没有,手动创建。一般会出现 docker:x:127:nano, nano就是我们新加入的。3.将当前用户加入docker用户组,以nano用户名为例。5.查看用户是否已经在用户组中。

2022-08-24 08:44:18 521

原创 玩转NVIDIA Jetson (23)--- jetson nano 添加swap内存

不管是使用4GB还是2GB的nano,在进行一些任务会受到内存的限制,要么卡死,要么killed,要么无法分配内存,而刷机的时候我们很少会去分配swap分区,这会影响到我们使用jetson进行一些大内存的任务,比如训练神经网络,编译一些软件工具,使用tensorRT等。本文介绍如何在刷机后添为nano添加swap分区,从而保障一些AI任务的运行。创建好swap分区以后,在/etc/fstab文件中追加一行。这样保障了改变的永久生效。

2022-08-19 11:50:24 1335 2

原创 玩转NVIDIA Jetson (22)--- jetson clocks的使用

Jetson 使用了DVFS (Dynamic voltage and frequency scaling )技术,该技术的目的是调节各处理器的电压值。有的时候我们需要在一次开机过程中的一段时间使用高性能模式,任务结束后又想要关闭应该如何操作。在默认情况下,DVFS功能是开启的,但针对一些特殊的任务,比如用深度网络run一张图片,需要打开性能封印。系统默认是不开启jetson_clocks模式的,也就是一个平衡性能的状态,此时使用命令。保存当前的DVFS模式,然后关闭DVFS。查看板子当前的工作状态。

2022-08-19 11:32:14 2789

原创 Jetson人工智能系列(1)- jetson安装python和anaconda那些事

jetson平台下的python版本管理和anaconda安装

2022-06-19 11:12:31 4277 9

原创 linux时间相关函数

kernel#include <linux/ktime.h>ktime_t calltime, delta, rettime;unsigned long long duration;calltime = ktime_get();YOUR FUN HERErettime = ktime_get();delta = ktime_sub(rettime,calltime);duration = (unsigned long long)ktime_to_ms(delta);u

2022-01-10 16:04:03 573

原创 玩转NVIDIA Jetson (21)--- jetson isolcpus

在jetson平台jetpack4.6之后的版本,可以很容易的将一个CPU独立出来使用。打开/boot/extlinux/extlinux.conf在APPEND选项最后加入isolcpus=3这时可以通过cat /proc/cmdline来查看是否已经将isolcpus加入,并且重启可以通过系统监视来查看独立出来的CPU是否使用率是0%。独立出来的CPU不接受其他程序进行运算,除非显示的使用taskset -c 3 xxx上述代码可以使XXX程序单独运行

2022-01-03 20:24:45 1005

原创 Linux进程相关操作

1. 查看系统内所有的进程ps -eps -efps -Aps -eF这几个命令显示的内容多少不一样,大家可以自己长尝试一下。2.通过进程名字查看PIDpgrep namepgrep -l namepgrep -o namepgrep -n namename就是你要找的进程名字。这种情况适用于自动化获取PID,并进行一些操作的情况。3.查看进程的详细信息cat /proc/pid/status4.查看进程的优先级chrt -p pid5.修改进程.

2021-12-19 12:00:04 463

原创 QT产生随机数

使用QT的QTime库产生随机数,代码如下#include <QTime> QTime randtime; randtime = QTime::currentTime(); qsrand(randtime.msec()+randtime.second()*1000); //以当前时间ms为随机种子 int n = qrand() % 100; //产生100以内的随机整数float fn = float(n)/10; //产生10以内的随机浮点数,精度为小数点

2021-11-27 16:37:08 12860

原创 工具类 - jetson录屏工具和串口调试工具

录屏工具vokoscreen安装sudo apt-get install vokoscreen运行vokoscreen带界面的串口调试工具cutecom安装sudo apt-get install cutecom运行cutecom

2021-10-26 10:14:22 783

原创 Linux ubuntu开机自动加载设备驱动

背景自己写的驱动在用的时候经常需要手动加载,这很麻烦,本文介绍如何开机自动进行驱动加载。第一种方法,适合部署阶段,也就是你的驱动不会再改了step1准备好你的.ko文件,将它复制到/lib/modules/xxx/kernel/drivers/xxx第一个XXX代表了你机器的架构,比如你是4.9-Linux,第二个XXX是你依据你的驱动类型归类的文件夹,比如你的驱动是基于SPI的驱动,那就放在SPI下面。Step2建立驱动map文件depmod -aStep3

2021-10-21 12:09:25 5787 6

原创 玩转NVIDIA Jetson (20)--- jetson 配置国内源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bakjiaruyixianeirong.deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universedeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main mult..

2021-09-29 15:50:10 1415

原创 docker常用命令

docker所有命令集合 attach Attach local standard input, output, and error streams to a running container build Build an image from a Dockerfile commit Create a new image from a container's changes cp Copy files/folders between .

2021-09-28 23:05:31 140

原创 github上传本地文件夹到新仓库

首先打开github,选择新建仓库填写仓库名字,添加仓库然后打开自己本地要上传的文件夹git initgit add .git commit -m "first commit"git branch -M maingit remote add origin https://github.com/gaosiy/test.gitgit push -u origin main这里注意remote add 是你自己的链接...

2021-09-18 13:46:51 581

原创 解决jetson Xavier nano没有spidev的问题

在最新的36.2.1版本中,使用ls /dev/发现没有spidev0.0之类的设备,自然也就无法使用spidev的驱动了,之前的版本是默认加载spidev的。不知道这个版本是怎么考虑的。解决办法1modprobe spidev这种方式是手动加载spidev的驱动,但是重启后失效。解决办法2打开module config的文件gedit /etc/modules-load.d/modules.conf添加一行spidev这样每次启动会默认加载。...

2021-09-18 11:05:50 1846 11

原创 C语言动态创建二维数组

在编程中有时需要使用二维数组作为buffer,下面是我写的一个二维数组的demo。这里面涉及到几个内存操作的知识点,一个一个的来讲。1. 创建两个1维数组,用于给二维数组填充值的时候使用。/*2行27列,一维数组长度为27*/#define BUFF_SIZE_ROW 2#define BUFF_SIZE_COL 27int main(){ /*初始化两个原子数据,全1和全2*/ unsigned char data[BUFF_SIZE_COL];

2021-08-30 22:45:02 3883

原创 玩转NVIDIA Jetson(19)--- jetson的40pin外部接口

Jetson平台的所有设备都向外提供了40pin的接口,包含了丰富的常用通信接口,SPI,I2C,UART等。下图是Xavier的40pins的详细信息。下图是nano的40pins详细信息。以上两张图片均来源于国外网站https://www.jetsonhacks.com/下面说说上边两幅图如何应用1.关于GPIO编号。如Xavier图中所示的,pin7是GPIO422,这个GPIO422就是你在写程序的时候输入的GPIO编号信息。比如我可以用以下代码设置GPIO...

2021-08-29 20:46:09 2901 3

原创 玩转NVIDIA Jetson (18)--- nano xavier设备树device tree相关

背景本文介绍一些设备树相关的知识,包括设备树文件在哪,如何修改,如何编译,如何应用等。这些问题在我做设备驱动开发的时候踩了很多坑,找了很多资料。修改设备树文件的两种方式1.在机器上反编译DTB文件直接修改首先找到/boot/目录下系统所使用的dtb文件,具体文件需要去官网查看,我在下文中会列出nano和Xavier的文件名,其他机器可以自行去查找。找到文件后把他拷贝到外边的一个单独目录,建议拷贝两份,一份用于备份,一份做修改。使用dtc命令进行反编译。比如你的DTB文件是A.DTB,

2021-08-29 12:06:14 5569 9

原创 为什么要用设备树device tree

1.什么是设备树这里不会用太多专业名词来解释设备树是什么,如果需要从专业的角度去理解网上有很多相关的书籍和资源供大家参考。这里我用通俗的语言对设备树做一个解释。举个例子,你的设备驱动是一套炒菜的流程,但是具体用哪个锅,哪种火,是天然气还是电磁炉,你需要告诉他,这些东西也就是你机器的硬件信息。2.为什么要用设备树以往驱动的这些硬件信息都是存在一个单独的文件里的,但是你想想,这么多厨师,这么多种菜,显然每一个都准备一个文件来描述,这个会增加Linux内核的冗余度,对内核非常不友好。当一个公司在一

2021-08-29 11:00:48 3353

原创 linux设备驱动开发常用命令(持续更新)

1. 查看所有设备及设备号cat /proc/devices2. kernel log实时显示dmesg -wH3.手动创建设备节点,ad设备名字,c 字符驱动,200主设备号,0次设备号mknod ad c 200 0

2021-08-29 10:42:31 323 2

原创 玩转NVIDIA Jetson AGX Xavier(17)--- 驱动开发之jetson的设备驱动编译

前言通过内核编译设备驱动是做驱动开发的必备技能。这篇文章的内容我废了很大的劲儿,但是估计需要的人不多。NVIDIA给出了一套编译驱动的教程,在下边的链接,但是写的说实话不太好懂。我这里单独出一个。官方教程https://docs.nvidia.com/jetson/l4t/#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/kernel_custom.html#wwpID0EUHA如果后边地址该了,可以参考 ke.

2021-07-16 10:45:27 4123 11

原创 玩转NVIDIA Jetson AGX Xavier(16)--- 驱动开发之GPIO的应用

操作GPIO是使用硬件的开始,本篇介绍如何使用jetson的GPIO,这里使用的语言是C语言。操作GPIO包含两种方法:终端使用命令直接操作程序操作命令控制第一种方法可以帮我们了解GPIO在linux系统中的存在形式。建议大家了解这种方法,自己去操作一下,会对写代码非常有帮助。我们打开终端,进入GPIO的目录下/sys/class/gpiols一下该目录下的文件可以看到,最开始的gpiochipX是一组GPIO的控制器,不是具体的GPIO,如果我们想要控制具体的一个,首先查看jet

2021-06-25 17:19:35 4257 12

原创 玩转NVIDIA Jetson AGX Xavier(15)--- 驱动开发之jetson-io的应用

最近准备开始用jenson连接一些外设,因此需要做一些驱动开发来完成jenson和外设的通信,随后的即便文章会对jetson的外部接口和如何使能这些接口做一个介绍。本篇首先介绍一下jetson上推出的最新的工具jetson-io,这个工具可以说极大的方便了开发者使能jetson上的种种接口,如SPI I2C等。在jetson-IO推出来之前,也就是jetpack 32.3版本之前,想要使能SPI接口需要做很多的工作,非常麻烦,可以参考我之前的文章。这里还是强烈建议大家更新jetpack,然后用这个工具。

2021-06-25 16:53:11 2819 1

原创 c语言趣谈:不同数据类型变量的计算问题

最近在写一个AD驱动的时候遇到了一个问题:24位(bit)的数据,以补码形式传上来,如何转换为正确的补码形式存储在上位机中,从而得到正确的电压值。为什么这是一个问题呢?在计算机中,所有的数据类型都是2的幂次方的bit长度,比如8bit,16bit,32bit。但是如果24bit的一个数字,以补码的形式传上来,赋值给一个32bit的数据类型,这里就会有坑。这里的具体问题是,传上来的数据以byte为单位,3个byte组成一个24bit的数据,代表了一个电压值,这里是由于AD自身的属性。举个例子,某个电

2021-06-25 15:51:08 410

原创 anaconda使用技巧

anaconda使用记录1.创建环境conda create -n gaosiy python==3.7激活环境conda activate gaosiy如果你重装系统或者换了个电脑,你可能用到如下的方法。导出环境conda env export --file gaosiy.yml直接用导出的环境文件创建环境conda env create -f gaosiy.yml这样会很节省时间2.安装包创建一个环境后有两种方式安装可用的包,一种是conda install nump

2021-03-31 17:01:17 208 4

原创 docker ubuntu无桌面环境安装qt

**更新apt**apt-get update**添加ppa**apt-get install software-properties-common**添加qt ppa**qt具体版本的PPA见https://launchpad.net/~beineri**add-apt-repository ppa:beineri/opt-qt-5.12.2-bionicapt-ge...

2020-02-23 14:43:06 2129 1

原创 玩转NVIDIA Jetson AGX Xavier(14)--- 在jetson上运行tensorflow+tensorrt的官方demo

本文介绍在jetson Xavier上如何从一个tensorflow的网络搭建到部署的完整过程。环境准备jetson Xavier jetpack4.2 (已安装tensorrt)tensorflow安装,请点击demo位置/usr/src/tensorrt/samples/python/end_to_end_tensorflow_mnist具体步骤打开demo文件位置,有...

2019-07-24 11:29:38 7550 10

原创 Ubuntu18.04安装美化工具tweak 和 dash to dock

此次美化主要是想把Ubuntu变得更易用一些,记录一下需要安装的工具sudo apt-get install gnome-tweak-tool这个工具非常好用,可以调整各种界面设置,也是各种主题美化的基础工具,主题美化可以去这个网站下载,主题非常多,基本上都是开源的https://www.opendesktop.org安装shell拓展,主题要修改需要有这个sudo apt-get i...

2019-07-24 10:48:12 13247 3

原创 玩转NVIDIA Jetson AGX Xavier(13)--- L4T内核kernel编译之在x86 PC上交叉编译jetson kernel

上一篇讲了在jetson平台上编译内核,本篇讲在x86 PC上编译这里提一点,我并不建议你用虚拟机来搞Linux开发,你的host至少应该是个ubuntu+windows双系统,虚拟机可能有各种问题,不要浪费时间在这些没有意义的问题上,可能会影响到你搞正事的情绪。配置交叉编译环境请查看第10篇博文玩转NVIDIA Jetson AGX Xavier(10)— L4T内核kernel编...

2019-06-19 09:37:45 6317 28

原创 玩转NVIDIA Jetson AGX Xavier(12)--- L4T内核kernel编译之在jetson上编译kernel

在Jetson平台上直接编译内核的好处是不存在交叉编译,编译非常顺利。但是慢!适用于想在Jetson平台上一步到位,干所有事的玩家本期内核版本L4T 32.1,使用Jetpack4.2刷机官网教程有点confuse,因为没说明白是在哪编译,对于初学者不太友好,老规矩放上官网教程https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra...

2019-06-19 09:19:25 6608 14

NVIDIA jetson Xavier中文指导手册

NVIDIA jetson Xavier中文指导手册,自己手动翻译,花了几天时间,需要的请拿去参考,主要是针对英语不太好的开发朋友,但是还是建议对比着英文原版一起看

2019-03-26

ubuntu12.04下安装freesurfer文件 libXss.so.1.0.0;libjpeg.so.8.0.2

ubuntu12.04下安装freesurfer必备来两个安装文件 ##**这里必须要说明一点,linux下的权限控制是非常严格的,基本上你放进usr/local 里的软件你没有权利在里边进行任何写的操作,所以建议把usr/local下边的freesurfer文件夹拷贝到home目录下面,这个目录下可以各种操作,其实freesurfer官方是建议安装到usr/local下的,但是我吃亏了。。。所以建议非linux大神,还是省事一些,放在home下边,跟desktop并列的目录下。然后你需要将 /etc/profile 中最后添加的那一行位置信息做相应的更改。log out**

2019-03-07

串口232向PC发送字符串程序

绝对可用,本程序亲测,向pc发送的字符串可自行改动,有汉语注释

2012-08-08

空空如也

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

TA关注的人

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