
AI
文章平均质量分 66
papaofdoudou
我的藏经阁,用数学解释问题,用编程解决问题
展开
-
分布式训练常用的集合通信及其通信原语
集合通信(Collective Communications)是一个进程组的所有进程都参与的全局通信操作,其最为基础的操作有 发送send、接收receive、复制copy、组内进程栅障同步Barrier以及节点间进程同步(signal +wait ),这几个最基本的操作经过组合构成了一组通信模板也叫通信原语,比如:1对多的广播broadcast、多对1的收集gather、多对多的收集all-gather、1对多的发散scatter、多对1的规约reduce、多对多的规约all-reduce、组合的规约与发转载 2024-08-10 09:11:51 · 443 阅读 · 0 评论 -
断点续训实现
当我们的数据集很大,或模型很复杂时,往往会耗费几天甚至数月时间;这时如果因为一些难以预料的原因(电脑关机、电脑崩溃、爆显存等等)导致训练中断,真是会让人崩溃!因此,我们需要一些机制来避免上述问题!就像断点续传,操作系统中的中断恢复机制一样,断点续训的代码实现,需要啥保存啥加载啥就完事了,epoch,model,optimizer,weight...原创 2024-08-08 19:56:03 · 321 阅读 · 0 评论 -
解析PCIE/PCI设备配置空间
可以查看配置空间中是否存在PCI_CAP_ID_EXP能力,对应图中的黄色字段,有定义PCI_CAP_ID_EXP就属于PCIE设备,其/sys/devices/pci0000:00/0000:00:1c.4/config文件有4K个字节,比PCI设备(256字节)要多。关于PCIE设备,需要注意的是,如果终端EP是PCIE设备,则链路上有所有的设备也必须是PCIE设备,才能发挥出最大带宽性能,比如下图,0000:02:00.0是N卡PCIE设备,它的上游设备0000:00:1c.4也是PCIE设备。原创 2024-05-15 07:51:37 · 1997 阅读 · 1 评论 -
越界侦测和区域入侵侦测,你真的分清楚了么?
越界侦测?区域入侵?你真的分的清吗?今天就给大家详细讲解一下越界侦测和区域入侵两个侦测功能的不同之处以及设置方法。越界侦测VS区域入侵通过上面的对比,我们能看出,越界侦测侦测的是画面是否有物体“越界”,而区域入侵侦测的是是否有物体“入侵”我们设置的区域。越界侦测红色的线是我们画的界限,那么我们在设越界侦测时还可以设置侦测的方向。例如:设置从A→B报警,而从B→A不报警。PS:越界行为是一种动态行为,表达正在越界,越界正在发生。区域入侵蓝色的区域是我们画的侦测区域,当有任何物体从任何方向进入该区域,设备都会报转载 2022-02-09 15:59:47 · 8502 阅读 · 1 评论 -
GPU推理和端侧NPU推理的一处不同
端侧AI推理主要使用NPU完成,为了在性能,功耗和面积和通用性之间取得平衡,主流NPU采用了加速器架构,将算子固化在硬件中,并辅以可编程单元执行一些自定义算子/长尾算子兼顾灵活性。原创 2023-06-03 12:53:03 · 2539 阅读 · 0 评论 -
非极大值抑制(Non-Maximum Suppression,NMS)
结束转载 2021-12-05 10:06:56 · 327 阅读 · 0 评论 -
CNN col2im和im2col的实现
代码:import numpy as npdef im2col(mtx, block_size): mtx_shape = mtx.shape sx = mtx_shape[0] - block_size[0] + 1 sy = mtx_shape[1] - block_size[1] + 1 # 如果设A为m×n的,对于[p q]的块划分,最后矩阵的行数为p×q,列数为(m−p+1)×(n−q+1)。 result = np.empty((bloc原创 2021-11-03 16:17:46 · 516 阅读 · 0 评论 -
Linux&Tina动态调压调频配置与实现
动态调压调频功能配置菜单:修改后,对应的.config DEFAULT 策略发生变化:默认原来的策略是:或者直接串口写入 echo performance >/sys/devices/system/cpu/cpufreq/policy0/scaling_governor动态修改。最大最小频率和lscpu的输出是match的。原创 2021-09-28 13:23:33 · 1464 阅读 · 0 评论 -
基于keras的fashion_mnist模型训练过程
1.下载fashion_mnist数据使用以下三行代码下载fashion mnist数据from tensorflow import kerasfashion_mnist = keras.datasets.fashion_mnist(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()查看数据信息:构建网络:import tensorflow as tffr原创 2021-09-25 21:35:25 · 1471 阅读 · 1 评论 -
关于卷积和卷积核的作用一例
代码:import matplotlib.pyplot as pltimport pylabimport cv2import numpy as npimg = plt.imread("jpeg.jpeg") #在这里读取图片plt.imshow(img) #显示读取的图片pylab.show()fil_0 = np.array([[ -1,-1, 0],原创 2021-09-21 18:54:59 · 388 阅读 · 0 评论 -
keras使用以及网络模型一例
import numpy as npimport kerasfrom keras.models import Sequentialfrom keras.layers import Dense, Dropout# Generate dummy datax_train = np.random.random((1000, 20))y_train = np.random.randint(2, size=(1000, 1))x_test = np.random.random((100, 20))y.原创 2021-09-21 17:56:07 · 4822 阅读 · 0 评论 -
基于Tensorflow keras的线性回归模型实现
首先参考这篇文章安装开发环境:Win10上安装anaconda深度学习开发环境吐槽一句,python语言以及基于python语言之上构建的深度学习开发环境虽然极大方便了学习和开发,但是处理包管理,以及包之间的依赖关系一团乱麻,简直让人崩溃,比如python的版本不同,算法包以及运行时环境包的版本就需要选择指定版本,而且这种包和python版本之间的依赖关系已经敏感到让人发指的地步,即使是python的小版本变化也会导致之前可用的包无法运行。更加雪上加霜的是,tensorflow,keras的版本管理原创 2021-09-21 17:50:12 · 508 阅读 · 0 评论 -
Tensorflow 模型的保存和载入
Minst训练模型源码:import tensorflow as tf #导入tensorflow库from tensorflow.examples.tutorials.mnist import input_datafrom tensorflow.python.framework import graph_util import pylab mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)tf.reset_de原创 2021-09-20 21:48:50 · 956 阅读 · 0 评论 -
利用计算图计算公积金余额
根据公积金管理办法,员工入职单位发放工资之日起按照缴存基数缴存住房公积金,提取则是按照每月%90的比例,现在我们利用计算图来计算一下,一张余额为m的银行卡,再经过多轮缴存和提取后,卡内余额遵守什么样的规律.首先,假设小A刚刚入职一家公司,每月公积金缴存额为5000,提取比例为0.9,卡内原本余额为0。传统级数方法:第0月, 0第1月, 5000 * 0.1第2月,(5000 * 0.1 + 5000)*0.1第3月, ((5000 * 0.1 + 5000)*0.1 + 500...原创 2021-09-03 09:41:42 · 338 阅读 · 0 评论 -
性能指标(模型评估)之mAP与混淆矩阵
结束!转载 2021-09-02 16:23:45 · 868 阅读 · 0 评论 -
目标检测之 IoU
IoU 作为目标检测算法性能 mAP 计算的一个非常重要的函数。但纵观 IoU 计算的介绍知识,都是直接给出代码,给出计算方法,没有人彻底地分析过其中的逻辑,故本人书写该篇博客来介绍下其中的逻辑。1. IoU的简介及原理解析IoU 的全称为交并比(Intersection over Union),通过这个名称我们大概可以猜到 IoU 的计算方法。IoU 计算的是 “预测的边框” 和 “真实的边框” 的交集和并集的比值。开始计算之前,我们首先进行分析下交集和并集到底应该怎么计算:我们.转载 2021-09-02 14:56:46 · 636 阅读 · 0 评论 -
验证Linux“__schedule“调用条件,关中断和关调度是必须的嘛?
"__schedule"函数是linux操作系统中的核心函数,就是它实现了操作系统最基本的多任务切换功能,使系统可以称之为操作系统,"__schedule"函数功不可没!看下图,所有的引起任务切换的调用路径最终都会调用到__schedule函数,可见它在系统实现中的核心作用。原创 2020-11-30 16:07:54 · 1383 阅读 · 1 评论 -
有趣的复平面变换
Geogebra画了几个复平面上的变换图形,感觉特别有意思,对非线性空间的变换又有了更加几何化的理解,先来看第一个:1. 在复平面的变换图形,下图展示的是一组平行于坐标轴的线段,经过f(z)变换后的图形,是不是很漂亮?可以代数推导一下:对于所以,坐标轴x=0映射为负半轴,y=0映射为正半轴,原点仍在原点。坐标网格分别映射为左右复平面上的弯曲抛物线,以x=a为例:则点在复平面上的轨迹是:确实是一条抛物线。...原创 2020-11-26 08:50:39 · 3285 阅读 · 0 评论 -
复变函数与高维空间
三次方程的根如果不是三个实根的情况(很容易构造一个三个根都是实根的三次方程),那么一定是一个实根和两个共厄虚根,并且后者的三个根一定可以在同一个圆上,当然圆心不一定是在原点,但是一定在实轴上,毕竟,三个不在同一个直线上的点共圆,结合共厄条件,很容易的出圆心位于实轴。可以看到,除了实轴上的根,其他两个根渐露真容。要知道,这里我们是采用了一个技巧才能办到的,因为模为0和方程有根等价,就是采用取模的办法,使复变函数的实部和虚部当做一个整体看待否则,这样四维空间的图像就落到了三维空间中,否则,是看不到这一图像的。原创 2020-11-16 20:22:12 · 2007 阅读 · 0 评论 -
代数方程根在复平面上分布的几何证明
人们在代数方程根的研究主要由于三个方向:1>关于根的存在性问题.2>不求解方程而按照它的系数去探索它的根的一些性质,例如它是否具有实数根,有多少个,几个正的几个负的等等问题.3>关于方程的根的近似计算问题.第一个问题,由于伽罗瓦的横空出世而获得彻底解决,并由此发展出了近世代数和群论用来解决更一般性问题.由于计算机的发展,第三个问题也得到很好解决,牛顿法在例如matlab, octave,python等工具中得到广泛应用,用这些方法的工具可以很快的解出高次方程的数值解...原创 2020-11-14 19:19:58 · 2118 阅读 · 3 评论 -
积分基本定理的几何推导说明
对于微积分的核心概念,个人感觉有一句话描述的非常到位,"导数是变化的原因,积分是变化的结果"!书上对微积分基本定理的描述以及证明如下:设在闭区间上连续,是在上的一个原函数,则:给出的证明过程是:因与均是在上的原函数,只能相差一个常数,即:让所以则:令得证。这个证明比较突兀,尤其是,一笔带过,很是气人,究竟为什么函数的积分和它的原函数之间有此种联系呢?并未说明,下面用数形结合的方式尝试说明这个问题。首先,插入一个只要介绍微积分必会用来做例子的经典题目,求方程。原创 2020-11-11 23:20:22 · 3677 阅读 · 0 评论 -
复变函数可视化以及代数基本定理
图中可见,方程的次数和根的个数似乎有某种对应关系,事实上,次数等于根树,这是代数基本定理,模曲面方程和复平面的n个接触点为零点,就好像有n根支柱将整个曲面支撑起来,不断变化a,b,c,d的值,这三个支柱相对位置在复平面上会发生变化,但始终和复平面有接触,根据达朗贝尔引理(了解就好,对理解关系不大),曲面上的任何一个极小值点都是0,没有一个极小值是正的非零值。二维复空间可以解释做实的,但是四维的空间. 空间维度本来就不够用,笛卡尔坐标系用两个实轴来表示,委实有点浪费,实际上一维的实数空间用一个轴就够了。原创 2020-11-10 13:56:41 · 5358 阅读 · 0 评论 -
用单个神经元实现TensorFlow线性回归拟合
很多介绍TF开发的书籍中都喜欢用逻辑回归拟合线性二维数据来开始介绍TF的开发过程,按照数据准备,模型搭建,反向损失函数定义和训练模型,使用模型的的顺序来介绍,并给出代码。但TF框架本身隐藏了其中的大部分流程,只暴露了一小部分参数供给用户程序调节,导致学习者知其然但不知道其所以然,可能一行剪短的tf函数调用,隐藏了大部分的实现细节。根据网上学习的资料,结合自己摸索,这里给出一种不依赖tensorflow用单神经元实现一次函数拟合的例子,也是用python实现。这样做一方面是因为自己也是个新手,写出来的过程本身原创 2020-11-04 17:08:32 · 1050 阅读 · 2 评论 -
神经网络的结构和原理入门
神经网络的结构,简单示意图如下:神经网络的关键是中间的连线,而不是节点.数学原理如下:Size 28*28的图片含有像素点784各,构成输入向量假设第一层的第i个节点对第二层的j的节点的权重为: 则 传递矩阵为:W矩阵第一维代表后层的节点,第二维标识前层的节点....原创 2020-10-28 19:43:47 · 1491 阅读 · 1 评论