自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 【论文细读】Transformer在强化学习上的缺陷

自注意力机制在NLP领域大杀四方,Transformer更是众生平等,但是使用RL算法去优化大规模Transformer网络却是困难重重,本文提出框架修改,超越了基线为LSTM的网络。

2023-04-17 10:24:54 381 1

原创 【论文细读】微软发布的基于Transformer的机器人网络

这是一个基于Transformer的机器人网络。可以学习到高数据量的模型。

2023-03-28 10:40:25 455

原创 挖的新坑-【Linux驱动】

字符设备是Linux驱动中最基本的一类设备驱动,字符设备就是一个字节,按照字节进行读写操作设备,读写数据是分先后顺序的。比如我们常见的点灯、按键、IIC、SPI、LCD等都是字符设备,这些设备的驱动就叫做字符设备驱动。linux中一切皆文件,驱动加载后会在“/dev”目录下生成一个相应的文件,应用程序通过对这个名为“/dev/xxx” (xxx 是具体的驱动文件名字)的文件进行相应的操作即可实现对硬件的操作。比如现在有个叫做/dev/led 的驱动文件,此文件是 led 灯的驱动文件。

2022-12-10 15:49:50 190

原创 vim简介及常规操作

vim编辑器:(对数字小键盘的识别差)

2022-11-08 21:28:08 384

原创 Linux C C语言库的创建和调用

假如,你有一个庞大的工程,代码量达到数百兆甚至是数G,你经常会遇到好多重复或常用的地方。每次使用到这些地方时如果都重新写一份基本相同的代码,这当然可以,不过这样会大大地降低工作效率,而且影响代码的可读性。更不好的是日后的修改工作会使你变得非常的繁琐,这样很不利于后期的维护。如果把这些相同的功能代码分别以模块的形式存放起来,把他们编译成库,使用时直接调用他们的库,这样直接使用起来非常的方便,更有利于代码的维护和升级。

2022-11-07 15:33:30 460

原创 Linux下编译工具 gcc

gcc全称是GNU Compliler Collection,他是一个能够编译多种语言的编译器,发展到现在已经不是刚开始大家以为的C语言编译器那样了(GNU C Compiler),现在除了C语言还支持C++,java,Pascal等语言,同时还支持多种硬件。

2022-11-06 20:49:03 633

原创 进程与线程(八股文)

进程是计算资源(CPU,内存)分配的基本单位线程是计算机CPU调度和分配的基本单位,也就是程序执行的最小单位1、运行一个程序时,系统首先创建一个进程,同时分配地址空间和其他资源,随后将进程加入就绪队列,指导分配到CPU时间就可以正式运行了。2、线程是进程的一个执行流。代码其实真正运行的是进程里面的线程。3、main()函数本质上属于一个进程业属于一个线程,我们既可以在main函数里面创建子进程,也可以同时创建子线程。

2022-10-21 19:43:38 289

原创 C++排序算法(上)冒泡排序、计数排序、选择排序、快速排序、堆排序

前言冒泡排序法。

2022-10-17 16:29:12 278

原创 PyTorch源码解读 torch.utils.data

理解 Python 的迭代器是解读 PyTorch 中 torch.utils.data 模块的关键。在 Dataset, Sampler 和 DataLoader 这三个类中都会用到 python 抽象类的魔法方法,包括_,_和DatasetSamplerDataLoader。

2022-10-10 12:32:37 427

原创 【草履虫10天学会C++网络编程】 UDP

特点:不可靠,不能保证IP数据包能成功到达它的目的地无连接:不维护后续数据包的状态信息。每个数据包的处理是相互独立的,可以不按照发送顺序接收。简单文件传输协议(一般用于局域网,被用于设计小文件),基于UDP,不会对用户进行有效验证。二进制模式文本模式提供给客户端上传和下载文件的功能。默认端口:69。记住:会创建一个新的套接字哈每次收到文件 ——>客户端必须要发ACK(N)——>不发继续发 ——>重复6次——>当数据小于512则代表是最后一次发送在读写作码上改成下载请求。

2022-10-02 13:57:11 1029

原创 动态规划刷题笔记(薄弱)

动态规划即利用历史记录来避免重复计算。而这些历史记录,我们得需要一些变量来保存,一般是用一维数组或者二维数组来保存。

2022-09-24 20:40:14 154

原创 Leetcode顺序刷题笔记(饱含注释版)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2022-09-23 17:38:41 860

原创 C++多线程 草履虫闭着眼睛都能学会啦

当创建一个线程时,它的某个属性会定义它是否是可连接的(joinable)或可分离的(detached)。只有创建时定义为可连接的线程才可以被连接。以下简单的实例代码使用 pthread_create() 函数创建了 5 个线程,并接收传入的参数。” 消息,并输出接收的参数,然后调用 pthread_exit() 终止线程。如果 main() 是在它所创建的线程之前结束,并通过 pthread_exit() 退出,那么其他线程将继续执行。在这里,pthread_create 创建一个新的线程,并让它可执行。

2022-09-15 23:05:55 160

原创 C++常成员函数 常对象成员

可以看出常成员函数的声明形式为:返回类型 成员函数名 (参数表)const。实际上,const的位置不同是易于搞混的。

2022-09-15 09:05:26 436

原创 C++网络编程

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考socket 插座,运行在计算机的两个程序通过socket建立一个通道,数据在通道中传输。目的是为了隐藏TCP/IP协议。流(stream):基于TCP协议,是一个有序的、可靠的、双向字节流通道,传输数据不会丢失不会重复,顺序也不会错乱。

2022-09-14 22:15:47 1294

原创 C++ 虚函数(试验富文本编辑器)

首先我们先复习一下C++的三大特性:封装就是将数据和行为(或功能)有机结合起来,形成一个整体。把数据和处理数据的操作结合形成类,数据和函数都是类的成员。增强安全性和简化编程。对外隐藏实现细节暴露公共接口。外部通过接口来调用。继承:继承就是A类被B类继承,A类为父类,B类为子类。B类继承Al类的所有公共和保护成员数据(属性)和成员函数(方法)。子类可以重新定义父类某些属性,重写父类的某些方法,即覆盖父类的某些属性和方法。使其获得与父类不同的功能。多态:一个接口多种实现状态。

2022-09-13 23:54:50 284

原创 C++11新特性 智能指针 看完这篇草履虫也会啦

内存泄漏(Memory Leak)是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,导致程序运行速度减慢甚至系统内存崩溃等严重后果。堆内存泄漏:我们经常说的内存泄漏就是堆内存泄漏,在堆上申请了资源,在结束使用的时候,没有释放给OS,从而导致该块内存不会被再次使用。资源泄漏:通过指的系统资源,比如socket,(socket是一个接口,在用户进程与TCP/IP协议之间充当中间人,完成TCP/IP协议的书写,用户只需理解接口即可)。

2022-09-13 23:48:52 267

原创 C++ define和typedef的区别

用来定义类型的别名,起到类型易于记忆的功能。另一个功能是定义机器无关的类型。如定义一个REAL的浮点类型,在目标机器上它可以获得最高的精度:typedef long double REAL。是c语言的语法,是预处理阶段的指令,将程序的字符替换,不做正确性检查,define 不不是语句句,千万不不能在句句尾加分号。是关键字,在编译时处理,有着类型检查功能,在自己的作用域里面给已经存在的类型一个别名,但是不能在一个函数里面定义。#define不只是可以为类型取别名,还可以定义常量、变量、编译开关等。

2022-09-09 13:51:16 297

原创 C++11新特性 右值引用

左值引用的缺陷:如果一个函数的返回值出了该函数作用域后就会被销毁掉,这个返回值的生命周期就结束了,因此就不能使用传引用返回,所以只能通过传值返回,而传值返回至少需要进行一次拷贝构造(如果编译器比较旧,就需要进行两次的拷贝构造),在旧的编译器下,如果一个函数是返回值给另一个函数并创建出新对象的时候,中间过程中需要先拷贝构造出一个临时对象,然后再通过这个临时对象在另一个函数内拷贝构造出一个新对象,然后这个临时对象就会被销毁掉。纯右值的概念等同于我们之前所理解的右值,指的是临时变量或字面量值;

2022-09-07 16:37:54 208

原创 C++ STL?看这篇就够啦。草履虫都能学会的STL教程!

几乎可以说,任何特定的数据结构都是为了实现某种特定的算法。STL容器就是将运用最广泛的一些数据结构实现出来。常用的数据结构:数组(array) , 链表(list), tree(树),栈(stack),** 队列(queue)**, 集合(set),映射表(map), 根据数据在容器中的排列特性,这些数据分为序列式容器和关联式容器两种。c语言中char风格字符串(以空字符为结尾的字符组难以掌握),不适合大型程序的开发,所以在头文件内定义了一种string类。与char相比,string是个类而char是个

2022-09-06 10:08:37 3778

原创 OpenCV3.4.5在VS2017中配置环境后,找不到opencv_world345d.dll的问题

opencv

2022-07-28 11:13:54 1057

原创 ROS操作系统中的.launch文件的作用

ros launch

2022-06-09 20:01:15 1471

原创 关于python matplotlib绘制时频图

时频分析(JTFA)即时频联合域分析,作为分析时变非平稳信号的有力工具,清楚地描述了信号频率随时间的变化关系。从图a中可以看到,在0-1s时间内,信号以10hz,1为振幅振动;在1-2s时间内,信号以20hz,1为振幅振动。在频谱图(图b)中只能看出10hz和20hz的尖峰,却不知道和时间的对应关系。在图c中,先沿横坐标看,时间从0-2s变动,接着固定一个时刻,观察纵坐标,发现在0-1s时段,振荡在0-20hz之间均有分布,但均值约为10hz,10hz振荡的幅值为深黑色,其余为浅黑色;1-2s时段,振荡均

2022-05-07 14:23:35 4087 1

原创 深度学习 BN(Batch Normalization),LN(Layer_Normalization)的区别

深度学习BN(Batch Normalization),LN(Layer_Normalization)的区别为什么会用BN和LN?神经网络的本质就是训练层数之间的参数,若层数过多,一层之间的参数发生变化,则会导致后面的层数放大错误,所以我们一般训练的时候都会选择较小的学习率,还有参数的初始化也很重要。BN层往往加在激励函数和全连接层之间。它可以将每层的数据分布都收缩到差不多的位置,加快模型收敛。因为许多的激活函数越往两边,梯度越小。所以还可以防止梯度消失。在网络的训练中,BN的使用使得一个minibat

2022-04-04 20:55:06 903

原创 actor-critic代码逐行解析(tensorflow版)

深度强化学习算法actor-critic代码逐行解析(tensorflow版)Actor是基于Policy-Gradients。可以选择连续动作,但是必须循环一个回合才可以更新策略。学习效率低。Critic网络继承了Q-learning 的传统,依然可以逐步更新。首先导入需要的包,这没什么好说的。import numpy as npimport tensorflow as tfimport gymimport matplotlib.pyplot as pltnp.random.seed(

2022-03-18 22:43:42 3034 6

原创 深度强化学习算法ACTOR-CRITIC

深度强化学习算法ACTOR-CRITIC及tensroflow代码复现复习一下经典的Policy-Gradient:先让agent和环境互动一下,最后一项某时刻t,做出动作at,可以计算出这个状态st,再看出奖励r多大。把这些奖励从t到T加起来。r前面的系数γ可以抛弃一些时间轴上久远的值,可以设0.9到1之间。b是基线,这项的目的是括号中的值有正有负。如果正数,要增加在这个状态采取这个动作的几率。这就是策略梯度(Policy-Gradient)。具体的方法:采样 n个序列,只有采样才能估计梯度的

2022-03-18 17:51:27 1058

空空如也

空空如也

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

TA关注的人

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