- 博客(45)
- 收藏
- 关注
原创 深度学习——计算性能(十)
在多个GPU之间拆分⽹络每个GPU将流⼊特定层的数据作为输⼊,跨多个后续层对数据进⾏处理,然后将数据发送到下⼀个GPU除⾮存框架或操作系统本⾝⽀持将多个GPU连接在⼀起,否则不建议这种⽅法拆分层内的⼯作例如,将问题分散到4个GPU,每个GPU⽣成16个通道的数据,⽽不是在单个GPU上计算64个通道。对于全连接的层,同样可以拆分输出单元的数量。因为每⼀层都依赖于所有其他层的结果。此外,需要传输的数据量也可能⽐跨GPU拆分层时还要⼤。因此,基于带宽的成本和复杂性,我们同样不推荐这种⽅法。
2024-12-19 18:30:00
634
原创 深度学习——循环神经网络(八)
接下来,我们将这个序列转换为模型的特征-标签(feature-label)对。**使⽤⼀个相当简单的架构训练模型:⼀个拥有两个全连接层的多层感知机, ReLU激活函数和平⽅损失。1f。
2024-12-18 17:45:00
1438
原创 深度学习——现代卷积神经网络(七)
观察图像特征的提取⽅法。在合理地复杂性前提下,特征应该由多个共同学习的神经⽹络层组成,每个层都有可学习的参数。
2024-12-17 19:00:00
2770
原创 深度学习——卷积神经网络(六)
本章介绍的卷积神经⽹络(convolutional neural network, CNN)是⼀类强⼤的、为处理图像数据⽽设计的神经⽹络。卷积神经⽹络需要的参数少于全连接架构的⽹络,⽽且卷积也很容易⽤GPU并⾏计算。因此卷积神经⽹络除了能够⾼效地采样从⽽获得精确的模型,还能够⾼效地计算。在本章的开始,我们将介绍构成所有卷积⽹络主⼲的基本元素。
2024-12-17 13:00:00
1057
原创 深度学习——深度学习计算(五)
⽣成⼀个⽹络,其中包含⼀个具有256个单元和ReLU激活函数的全连接隐藏层,然后是⼀个具有10个隐藏单元且不带激活函数的全连接输出层。但是实际训练过程中,我们的框架并不仅仅是简单的顺序架构,需要更强的灵活性。我们可能希望合并既不是上⼀层的结果也不是可更新参数的项,我们称之为常数参数。
2024-12-16 21:00:00
282
原创 深度学习——模型训练流程(四)
⾸先,我们建⽴字典DATA_HUB,它可以将数据集名称的字符串映射到数据集相关的⼆元组上,这个⼆元组包含数据集的url和验证⽂件完整性的sha-1密钥。所有类似的数据集都托管在地址为DATA_URL的站点上。下⾯的download函数⽤来下载数据集,将数据集缓存在本地⽬录(默认情况下为…/data)中,并返回下载⽂件的名称。我们还需实现两个实⽤函数:⼀个将下载并解压缩⼀个zip或tar⽂件,另⼀个是将本书中使⽤的所有数据集从DATA_HUB下载到缓存⽬录中。
2024-12-16 20:30:00
394
原创 深度学习——多层感知机(三)
softmax回归中通过单个仿射变换将输入直接映射成输出,然后在进行softmax操作。但是仿射变换中的线性是一个很强的假设,有一些关系并非是线性的而是非线性。
2024-12-16 20:00:00
1624
原创 Linux框架(三)——并行和互斥
Linux是一个多任务操作系统,肯定会存在多个任务共同操作同一段内存或者设备的情况,多个任务甚至中断都能访问的资源叫做共享资源。
2024-12-15 19:15:00
47
原创 深度学习——Softmax回归(二)
利用一些有顺序的类别,可以有分类问题转化为回归问题,分类数据的简单⽅法:独热编码(one-hot encoding)。独热编码是⼀个向量,它的分量和类别⼀样多。类别对应的分量设置为1,其他所有分量设置为0。为了估计所有可能类别的条件概率,我们需要⼀个有多个输出的模型,每个类别对应⼀个输出。模型的输出yi可以视为属于类i的概率,然后选择具有最⼤输出值的类别argmax(yi)作为我们的预测。个人理解其实就是输出每个类别可能的概率,然后选取其中概率最大的类别作为最终的预测结果。
2024-12-15 15:45:00
983
原创 Linux框架(二)——pinctrl和gpio子系统
Linux 驱动讲究驱动分离与分层,驱动分离与分层其实就是按照面向对象编程的设计思想而设计的设备驱动框架,不管什么外设驱动,GPIO 驱动基本都是必须的,而 pinctrl 和 gpio 子系统又是 GPIO 驱动必须使用的,修改设备树,添加相应的节点,节点里面重点是设置 reg 属性,reg 属性包括了 GPIO相关寄存器。
2024-12-15 12:30:00
864
原创 深度学习——线性回归(一)
""" 线性回归模型 """损失函数有很多种,其中常用的有平方损失、均方损失、L1范数、L2范数等L1Loss:平均绝对误差 (MAE)# 优化算法。
2024-12-14 22:16:35
319
原创 Linux框架(一)——设备树
关于设备树就讲解到这里,关于设备树我们重点要了解一下几点内容:①、DTS、DTB 和 DTC 之间的区别,如何将.dts 文件编译为.dtb 文件。②、设备树语法,这个是重点,因为在实际工作中我们是需要修改设备树的。③、设备树的几个特殊子节点。④、关于设备树的 OF 操作函数,也是重点,因为设备树最终是被驱动文件所使用的,而驱动文件必须要读取设备树中的属性信息,比如内存信息、GPIO 信息、中断信息等等。要想在驱动中读取设备树的属性值,那么就必须使用 Linux 内核提供的众多的 OF 函数。
2024-12-14 18:00:00
2098
原创 RK3568(六)——led设备驱动(GPIO子系统)
先关闭心跳灯功能,也就是在图 10.4.1.2 中第 167 行添加 status 改为 disabled,也就是禁止 work 这个节点,那么禁止心跳灯功能。
2024-12-13 17:00:00
468
原创 RK3568(五)——led设备驱动(设备树)
在上一节中,我们直接在驱动文件 newchrled.c 中定义有关寄存器物理地址,然后使用 io_remap 函数进行内存映射,得到对应的虚拟地址,最后操作寄存器对应的虚拟地址完成对 GPIO 的初始化。本章我们在第七章实验基础上完成,本章我们使用设备树来向 Linux 内核传递相关的寄存器物理地址,Linux 驱动文件使用上一章讲解的 OF 函数从设备树中获取所需的属性值,然后使用获取到的属性值来初始化相关的 IO。
2024-12-13 07:00:00
517
原创 RK3568(三)——led设备驱动
GPIO 配置好以后就可以控制引脚输出高低电平了,需要用到 GPIO_SWPORT_DR_L 和GPIO_SWPORT_DR_H 这两个寄存器,这两个原理和上面讲的 GPIO_SWPORT_DDR_L 和GPIO_SWPORT_DDR_H 一样,RK3568 的 IO 引脚可以设置不同的驱动能力,GPIO0_C0 的驱动能力设置寄存器为PMU_GRF_GPIO0C_DS_0。GPIO_SWPORT_DDR_L 和 GPIO_SWPORT_DDR_H 这两个寄存器用于设置 GPIO 的输入输出功能。
2024-12-12 06:30:00
1652
原创 RK3568(四)——led设备驱动(自动创建设备)
Linux 字符设备驱动开发的基本步骤,字符设备驱动开发重点是使用 register_chrdev 函数注册字符设备,当不再使用设备的时候就使用unregister_chrdev 函数注销字符设备,驱动模块加载成功以后还需要手动使用 mknod 命令创建设备节点。现在新的字符设备驱动已经不再使用这两个函数,而是使用Linux内核推荐的新字符设备驱动API函数。该方法在驱动模块加载的时候自动创建设备节点文件。
2024-12-12 06:30:00
493
原创 RK3568(一)——SDK环境搭建
adb 全称 Android Debug Bridge,直译过来就是 Android 调试桥,它是一个通用的命令行工具。adb 做为 Android 设备与 PC 端连接的一个桥梁,它可以让开发者通过网络或 USB 与 Android设备进行通信,从而作为 Android 设备的调试工具;在 Android 开发中,adb 是必不可少的一个工具。
2024-12-11 17:02:56
647
原创 神经网络学习笔记——神经网络基础(三)
在训深层练神经网络时,由于模型参数较多,在数据量不足的情况下,很容易过拟合。Dropout 就是在神经网络中一种缓解过拟合的方法。缓解过拟合的方式就是降低模型的复杂度,而 Dropout 就是通过减少神经元之间的连接,把稠密的神经网络神经元连接,变成稀疏的神经元连接,从而达到降低网络复杂度的目的。将 Dropout 层的概率 p 设置为 0.8,此时经过 Dropout 层计算的张量中就出现了很多 0 , 概率 p 设置值越大,则张量中出现的 0 就越多。
2024-03-31 17:59:25
531
原创 神经网络学习笔记——神经网络基础(一)
人工神经网络( Artificial Neural Network, 简写为ANN)也简称为神经网络(NN),是一种模仿生物神经网络结构和功能的 计算模型。
2024-03-28 22:31:29
840
原创 Elfboard-ELF开发板 Linux学习笔记(十)—— Linux源码介绍
编译完成之后,会在 arch/arm/boot/目录下生成 zImge 文件,就是内核镜像文件;在 arch/arm/boot/dts/下生成多个.dtb 设备树二进制文件;以及在某些驱动目录下生成.ko 模块。编译完成后,生成的文件以及路径参考 6.3.2 节。dtb 文件是设备树二进制文件,它是由设备树编译工具 DTC (Device tree compiler)编译 dts 文件而生成的。1.初次解压源码后,需要先配置一下,然后对整体进行编译。2.整体编译之后,可根据实际情况再进行单独编译。
2024-01-24 10:17:57
426
原创 Elfboard-ELF开发板 Linux学习笔记(九)—— git版本管理工具
git 就是一个版本管理库,也是一个版本管理工具,它的作用就是帮助我们记录版本信息,以及修改内容。git 的结构是分布式的资源库,特点是没有严格的服务器概念,每个单体都可作为资源库。这个特点就让我们人人有自己的 git 仓库这件事变得容易实现。
2024-01-20 18:22:08
453
原创 Elfboard-ELF开发板 Linux学习笔记(八)—— 设备树浅学笔记
设备树(Device Tree)是一种描述硬件资源的数据结构,它由 uboot 传递给 Linux 内核,被内核解析,内核根据设备树中的硬件描述信息加载利用相应驱动资源。在引入设备树之前,Linux 内核中充斥着大量的用于描述板级硬件信息的文件,拥有不同硬件资源的板卡 ,都有其对应的板级文件或者冗余文件,随着 Linux 内核支持的板卡越来越多,板级文件也越来越多。
2024-01-20 18:20:02
455
原创 Elfboard-ELF开发板 Linux学习笔记(七)—— Makefile基本语法学习
变量的名称 = 变量值变量的值将会是整个 Makefile 中最后被指定的值。
2024-01-16 22:50:46
1614
1
原创 Elfboard-ELF开发板 Linux学习笔记(六)—— 应用编程篇 串口通信(下)
第二步:获取当前配置参数 tcgetattr()第三步:写配置第四步:串口读写。
2024-01-12 19:02:30
628
原创 Elfboard-ELF开发板 Linux学习笔记(五)—— 应用编程篇 串口通信(上)
* 输入模式 *//* 输出模式 *//* 控制模式 *//* 本地模式 *//* 线路规程 *//* 特殊控制字符 *//* 输入速率 *//* 输出速率 */c_iflag:输入模式:输入模式控制输入数据(终端驱动程序从串口或键盘接收到的字符数据)在被传递给应用程序之前的处理方式。c_oflag:输出模式:输出模式控制输出字符的处理方式,即由应用程序发送出去的字符数据在传递到串口或屏幕之前是如何处理的。
2024-01-12 19:01:25
419
原创 Elfboard-ELF开发板 Linux学习笔记(四)—— 应用编程篇
在 Linux 系统下,一切皆文件,sysfs 是一个基于内存的文件系统,被称为虚拟文件系统,它对系统设备进行管理,产生一个包含所有系统硬件层次的视图,同时将内核信息以文件的方式提供给应用层使用。sysfs 文件系统把连接在系统上的设备和总线组织成为一个分级的文件、展示设备驱动模型中各组件的层次关系。
2024-01-09 13:36:03
1446
原创 Elfboard-ELF开发板 Linux学习笔记(三)—— 网络配置
用一个type-c线连接开发板端的debug端口,然后打开串口通信软件MobaXterm,配置一下串口和波特率:115200然后开启电源,开发板就会进行开启,成功将会打印。
2024-01-09 00:27:32
636
原创 Elfboard-ELF开发板 Linux学习笔记(二)—— 开发环境搭建
在安装好Ubuntu系统之后你会发现有一个很难受的问题,那就是windows和Ubuntu的复制粘贴并不是通用的。此时你需要安装一个工具,VMware tools工具安装成功之后便可使用复制粘贴、 文件拖拽。
2024-01-07 14:43:09
1749
1
原创 Elfboard-ELF开发板 Linux学习笔记(一)—— 开发环境搭建
我们选择安装的 Ubuntu 版本是 18.04,首先去 Ubuntu 官网获取 Ubuntu18.04 64 位镜像下载地址为:http://releases.ubuntu.com/18.04/下载“ubuntu-18.04.5- desktop-amd6 4.iso”这个版本。在安装系统之前,你需要先下载Ubuntu 18.04.6的镜像文件。下载完成后即可进行系统的安装。
2024-01-06 11:17:56
521
1
原创 stm32cubeMX+FreeRTOS(2)——软件IIC和硬件IIC读写AT24C2
【代码】stm32cubeMX+FreeRTOS(1)——软件IIC和硬件IIC读写AT24C2。
2023-11-12 19:04:34
1371
原创 stm32cubeMX+FreeRTOS(1)——USART 串口打印
参考:https://blog.youkuaiyun.com/qq_35697978/article/details/120138859。1.一定要包含#include 头文件。2.在KEIL里勾选 Use MicroLIB。默认前面的SYS和RCC配置完成。
2023-11-11 18:41:20
628
1
原创 STM32移植FreeRTOS过程中遇到的问题
把stm32f10x.h 替换成stm32f10x_hal.h 即可,使用ctrl+shift + f 就能找到了。_2.FreeRTOS移植过程中发生引用库重定义问题。
2023-10-11 21:58:18
201
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人