- 博客(239)
- 资源 (12)
- 收藏
- 关注
原创 PyG(torch_geometric)的MessagePassing详解
MessagePassing是图神经网络(Graph Neural Networks,GNNs)的一个基础组件,它被设计用来处理图形数据的问题。在图形数据中,数据点(节点)之间的关系(边)是非常重要的信息。MessagePassing通过在节点之间传递和聚合信息,使得每个节点都能获取其邻居节点的信息,从而更好地理解图形的结构和特性。具体来说,MessagePassing的工作方式是这样的:对于每个节点,它会收集其所有邻居节点的信息(这个过程称为消息传递),然后将这些信息聚合起来(这个过程称为消息聚合)。
2023-11-15 11:31:49
1826
原创 PyTorch QAT(量化感知训练)实践——基础篇
本文介绍了int8量化和QAT的原理,并基于PyTorch介绍了提供的PTQ和QAT的方法。
2022-07-25 17:41:49
6937
原创 ImVoxelNet论文解读
ImVoxelNet核心贡献点:1)端到端的基于单帧或者多帧(每个场景帧数可以不一样)RGB图像的3D目标检测2)能够兼容室内和室外(主要针对自动驾驶)的场景3)能够兼容单目相机和多目相机(自动驾驶不同传感器配置组合)的目标检测...
2022-07-22 10:57:59
1552
转载 汽车电子电气架构演进
传统汽车还未引入CAN/LIN总线时,汽车的电子电气架构十分复杂,下图参考各个功能模块ECU之间的通信和交互,需要连接多个数据线。随着系统ECU的增加和功能的不断增加,汽车的数据线越来越多,可以想象车上会有多少线束。对比上图,在使用了CAN/LIN总线协议之后,硬线连接少了,整车电子电气架构得以简化,解决了当时汽车电子系统复杂的数据线问题,也降低了设计复杂度提高了效率。对比上图,当芯片处理能力大幅度提升,新的总线技术引入之后,更少的域控制器承载了更多的整车功能。...
2022-07-21 10:04:14
2711
原创 MobileEye的RSS(Implementing the RSS Model on NHTSA Pre-Crash Scenarios)学习笔记
MobileEye的RSS(Implementing the RSS Model onNHTSA Pre-Crash Scenarios)学习笔记
2022-06-14 17:37:49
378
原创 InplaceABN Backward Error
近日在对一个包含InplaceABN模块的网络进行魔改的时候,遇到了如下报错:RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [64, 256, 7, 7]], which is output 0 of InPlaceABNBackward, is at version 3; expec
2021-12-09 10:55:18
680
转载 自动泊车系统进化史
前言自动泊车是指汽车自动泊车入位不需要人工控制,系统能够自动帮你将车辆停入车位,在倒车入库中可谓是驾驶者的一项利器。当我们找到一个理想的停车地点,只需轻轻启动按钮、坐定、放松,其他一切即可自动完成。自动泊车技术同样适用于主动避撞系统,并最终实现汽车的自动驾驶。不同的自动泊车系统采用不同的方法来检测汽车周围的物体。 有些在汽车前后保险杠四周装上了感应器,它们既可以充当发送器,也可以充当接收器。这些感应器会发送信号,当信号碰到车身周边的障碍物时会反射回来。 然后,车上的计算机会利用其接收信号所..
2021-11-18 16:29:36
2999
原创 docker容器启动失败如何定位(查看容器日志)
在使用docker的时候,在某些未知的情况下可能启动了容器,但是过了没几秒容器自动退出了。这个时候如何排查问题呢?通常碰到这种情况无非就是环境有问题或者应用有问题,应用问题再本地可以进行调试解决,但是环境问题就比较头疼了。这个时候我们就需要查看容器的日志来进行排查。我们可以通过如下命令来获取容器的日志地址docker inspect --format '{{.LogPath}}' 97069f94437b然后通过cat命令查看上述命令找到的日志地址cat /var/lib/docke
2021-11-09 18:03:22
2896
1
原创 PyTorch Code Snippets
1. 卷积计算import torchfilter = torch.nn.Conv2d(2, 1, 2, 1, 1, 3, bias=False)filter.weight[0][0][0][0]=2filter.weight[0][0][0][1]=1filter.weight[0][0][1][0]=1filter.weight[0][0][1][1]=-1filter.weight[0][1][0][0]=-3filter.weight[0][1][0][1]=2fi..
2020-12-02 15:11:49
643
原创 Kaggle比赛Mechanisms of Action (MoA) Prediction数据预处理处理
1. 数据预处理1.1QuantileTransformerclasssklearn.preprocessing.QuantileTransformer(*,n_quantiles=1000,output_distribution='uniform',ignore_implicit_zeros=False,subsample=100000,random_state=None,copy=True)Transform features using quantiles informa...
2020-11-21 14:47:38
919
原创 计算多边形(polygon)面积的算法原理和python实现
计算多边形(polygon)的面积其实很简单,假设是n边形,分割为n-2个三角形,积分别计算每个三角形面积后累加得多边形面积。如下图所示:那么如何计算三角形的面积呢?△ABC的面积是“向量AB”和“向量AC”两个向量叉乘的绝对值的一半。其正负表示三角形顶点是在右手系还是左手系。代码如下:import mathimport reVERTICES_FILE = "vertices.txt"class Point: def __init__(self, x, y):.
2020-11-12 13:42:58
8062
3
原创 GloVe与word2vec的区别,及GloVe的缺陷
GloVe与word2vec,两个模型都可以根据词汇的“共现co-occurrence”信息,将词汇编码成一个向量(所谓共现,即语料中词汇一块出现的频率)。两者最直观的区别在于,word2vec是“predictive”的模型,而GloVe是“count-based”的模型。具体是什么意思呢1,Count-based VS PredictivePredictive的模型,如Word2vec,要么根据context预测中间的词汇,要么根据中间的词汇预测context,分别对应了word2vec的两种.
2020-09-15 16:35:49
4531
原创 CAN协议要点及车辆CAN协议破解
一、CAN协议要点1. 电压2. 波形3. CAN报文概述CAN一共规定了5中类型的帧,帧也称为报文。CAN总线的数据帧有标准格式(StandardFormat)和扩展格式(ExtendedFormat)的区分。4. CAN报文编码格式Intel格式编码 当一个信号的数据长度不超过1 Byte,并且信号在一个字节内实现时,该信号的高位(S_msb)将被放在该字节的高位,信号的低位(S_lsb)将被放在该字节的低位。 当一个信号的数据长度超过..
2020-07-02 16:52:05
11391
1
原创 Keras使用多GPU训练模型、保存、加载
多GPU训练可以在一定程度上提高训练的效率,Keras在以TensorFlow为底层的时候,可以方便的调用多GPU进行训练。其训练的原理是将一个神经网络在多块GPU中进行初始化,并且将一个batch的数据分配到不同的GPU中,反向传播结束后,再使用CPU进行合并更新参数。举个例子,同时使用两块GPU,batchsize是16的话,Keras会将8个给1号GPU,另外8个给2号GPU,训练结束后将二...
2020-04-21 16:00:04
2409
原创 C++11内存对齐之std::aligned_storage与alignas与alignof
1. std::aligned_storage可能的源码实现:// PR c++/56859// { dg-require-effective-target c++11 }template<unsigned size, unsigned alignment>struct aligned_storage{ using type = struct { align...
2020-03-26 16:52:45
8492
原创 C和C++11的std::assert
C语音的static_assert:C++11的static_assert:示例代码:#include <type_traits> template <class T>void swap(T& a, T& b){ static_assert(std::is_copy_constructible<T>::v...
2020-03-26 16:25:52
1602
原创 C++11之std::ratio
今天在写代码,遇到了需要将std::chrono::duration转换到timespec,需要得到秒和纳秒,于是乎,我想到用std::nano::den(std::ratio<1, 1000000000>的别名)来做为纳秒求余的分母。std::ratio的定义在<ratio>,核心代码如下: /** * @brief Provides compile-...
2020-03-26 16:14:46
963
原创 C++11之thread_local
C++11标准加入了thread_local这个修饰符,支持每个线程,拥有被thread_local修饰的全局变量的一份拷贝。
2020-03-26 12:41:24
825
原创 C++17的inline variable
我们在C++的头文件中,定义一个变量,比如:int global_var = 10;在多个.cc里面#inlucde这个头文件,编译会报”重复定义“的错误,而如果定义的是一个常量,比如:const int global_const = 10;却不会报错,这是为什么呢?C++17的...
2020-03-25 20:10:56
2945
原创 为什么STL的容器提供了top和pop两个函数,而没有合并成一个函数?
STL的stack、queue等容器,提供了top和pop两个独立的函数,而没有合并成一个函数,这是为什么呢?首先,有一点很重要,即使容器为空,pop也是不会抛出异常的,这可能是由于STL希望自己的适用场景更加广泛,对于嵌入式等C++代码以及向前兼容的代码,不要求一定要用try catch写代码。有了这个大前提,就不难明白为什么STL如此设计了:1. 首要是异常安全(exception...
2020-03-17 16:31:58
525
转载 AOP 面向切面编程
什么是AOP?AOP全称Aspect Oriented Programming意为面向切面编程,也叫做面向方法编程,是通过预编译方式和运行期动态代理的方式实现不修改源代码的情况下给程序动态统一添加功能的技术。AOP技术利用一种称为“横切”的技术,剖解开封装对象的内部,将影响多个类的公共行为封装到一个可重用的模块中,并将其命名为Aspect切面。所谓的切面,简单来说就是与业务无关,却为业务模...
2020-03-17 12:04:31
644
转载 Defensive Programming 防御式编程(Defensive Programming)
Defensive Programming防御式编程(Defensive Programming)是提高软件质量技术的有益辅助手段怎么理解呢?防御式编程思想的理解可以参考防御式驾驶:在防御式驾驶中要建立这样一种思维,那就是你永远也不能确定另一位司机将要做什么。这样才能确保在其他人做出危险动作时你也不会受到伤害。你要承担起保护自己的责任,哪怕是其他司机犯的错误。防御式编程的主...
2020-03-14 16:20:46
2506
原创 版本编号GA的含义:alpha->beta->RC->GA
GAGeneral Availability,正式发布的版本,官方开始推荐广泛使用,国外有的用GA来表示release版本。RELEASE正式发布版,官方推荐使用的版本,有的用GA来表示。比如spring。Stable稳定版,开源软件有的会用stable来表示正式发布的版本。比如Nginx。Final最终版,也是正式发布版的一种表示方法。比如Hibernate。RCRel...
2020-03-12 21:01:47
791
原创 MQ消息队列中间件介绍及IoT领域应用
为什么使用消息队列? 消息队列有什么优点和缺点? Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景? 为什么使用消息队列其实就是问问你消息队列都有哪些使用场景,然后你项目里具体是什么场景,说说你在这个场景里用消息队列是什么?面试官问你这个问题,期望的一个回答是说,你们公司有个什么业务场景,这个业务场景有个什么技术挑...
2020-03-12 20:46:24
1802
原创 StarUML画类图、时序图的使用指南
UMLUML:统一建模语言(Unified Modeling Language)。在 UML 系统开发中有三个主要的模型:功能模型:从用户的角度展示系统的功能,包括用例图。 对象模型:采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类图、对象图、包图。 动态模型:展现系统的内部行为。包括时序图,活动图,状态图。以下主要总结开发过程中常用的类图和时序图,及类之间的各种关系。...
2020-03-10 21:23:44
14494
原创 C++语法特性cheat paper
1. explicit关键字C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式)。注:C++中不存在implicit关键字,C#等编程语言中才有,此处仅仅是为了说明。上面也已经说过了,explicit关键...
2019-10-08 20:54:54
944
原创 《C++11并发编程》读书笔记
1-4章初始的C++标准在1998年发布,13年后,C++标准委员会给语言本身,以及标准库,带来了一次重大的变革。新C++标准(也被称为C++11或C++0x)在2011年发布,带来一系列的变革让C++编程更加简单和高效。C++标准第一次承认多线程在语言中的存在,并在标准库中为多线程提供组件。这意味着使用C++编写与平台无关的多线程程序成为可能,也为可移植性提供了强有力的保证读者们...
2019-10-08 17:44:19
319
原创 在VSCode中使用cmake-format插件对CMakeLists.txt文件格式化
Install and Configure cmake-formatStep 1: Install cmake-formatpip install cmake_formatStep 2: Install camke-format in vscodeStep 3: Set Extension Settings{ "files.associations": { "uni...
2019-07-10 10:09:54
12419
3
原创 Linux串口属性设置
1.属性描述串口属于终端设备,其接口属性用termios结构描述,如程序清单13.9所示。程序清单13.9 termios结构structtermios{ tcflag_tc_cflag/*控制标志*/ tcflag_tc_iflag;/*输入标志*/ tcflag_tc_oflag;/*输出标志*/ tcflag_tc_l...
2019-06-15 13:40:07
8998
转载 嵌入式的那些通信协议
1.USART通用同步/异步串行接收/发送器,USART是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备。区别于UART,UART是通用异步收发传输器,USART属于UART的增强型,在异步传输时没有啥区别,但是USART比UART多了同步传输功能,他可以为通信设备提供主动时钟。(由于通常都是使用异步传输,UART与USART就没有啥区别,所以以下USART与UA...
2019-06-14 20:08:13
6507
原创 Andrej Karpathy的炼丹技巧
1、先别着急写代码训练神经网络前,别管代码,先从预处理数据集开始。我们先花几个小时的时间,了解数据的分布并找出其中的规律。Andrej有一次在整理数据时发现了重复的样本,还有一次发现了图像和标签中的错误。所以先看一眼数据能避免我们走很多弯路。由于神经网络实际上是数据集的压缩版本,因此您将能够查看网络(错误)预测并了解它们的来源。如果你的网络给你的预测看起来与你在数据中看到的内容不一致,...
2019-04-28 14:36:25
1158
原创 《Bag of Tricks for Image Classification with Convolutional Neural Networks》论文笔记
1. Training procedure refinements:1. data augmentations2. optimization methods.3. loss functions 2. Baseline Training Procedure: Randomly sample an image and decode it into 32-bit floatin...
2019-01-07 20:09:29
472
原创 海思Hi3519A SVP从入门到精通(二 NNIE开发指南)
1. NNIE介绍NNIE 是 Neural Network Inference Engine 的简称,是海思媒体 SoC 中专门针对神经网络特别是深度学习卷积神经网络进行加速处理的硬件单元,支持现有大部分的公开网络,如 Alexnet、VGG16、Googlenet、Resnet18、Resnet50 等分类网络,Faster R- CNN、YOLO、SSD、RFCN 等检测网络,以及 Se...
2018-12-27 10:15:34
42552
27
原创 海思Hi3519A SVP从入门到精通(一 概述)
1. SVP简介SVP(Smart Vision Platform)是海思媒体处理芯片智能视觉异构加速平台。该平台包含了 CPU、DSP、NNIE(Neural Network Inference Engine)等多个硬件处理单元和运行在这些 硬件上 SDK 开发环境,以及配套的工具链开发环境。2. 开发框架SVP 开发框架如图所示。目前 SVP 中包含的硬件处理单元有 CPU、vis...
2018-12-26 13:39:45
12380
1
原创 海思Hi3519A MPP从入门到精通(五 YUV图像格式)
1. YUV简介YUV格式有三大类:planar,packed,semi-planar。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交叉存储的。对于semi-planar的YUV格式,先连续存储所有像素点的Y,紧接着连续交叉存储所有像素点的U,V。YUV,分为三...
2018-12-24 11:53:31
11997
7
opencv_contrib-3.4.13_boostdesc_bgm.i等.zip
2021-02-07
hrnet_w32-36af842e.pth
2020-07-23
Fusing Multi-Stream Deep Networks for Video Classification
2016-06-08
Human Parsing with Contextualized Convolutional Neural Network
2016-04-17
Algorithms on Strings, Trees and Sequences
2014-11-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人