自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wxq的博客

keep coding :)

  • 博客(52)
  • 收藏
  • 关注

原创 ubuntu中文输入法配置

ubuntu中文输入法ibus快速配置

2022-08-24 12:29:52 424

原创 Transformer入门笔记-自用

Transformer的提出解决了两个问题:首先它使用了Attention机制,将序列中的任意两个位置之间的距离缩小为一个常量;其次它不是类似RNN的顺序结构,因此具有更好的并行性,符合现有的GPU框架。Decoder与encoder有三大主要的不同:Decoder SubLayer-1使用的是“Masked” Multi-Headed Attention机制,防止为了模型看到要预测的数据,防止泄露。SubLayer-2是一个Encoder-Decoder Multi...

2022-05-14 23:40:53 276

原创 3D目标检测入门论文: CaDDN, DETR3D

[CVPR2021] Projecting Your View Attentively: Monocular Road Scene Layout Estimation via Cross-view Transformation概要transform the front-view monocular image to the top-view road layout提出cross-view transformation module,利用视图之间的关系和cycle consistency加强视图变换

2022-05-14 23:37:35 612

原创 BEVFormer: Learning Bird’s-Eye-View Representation from Multi-Camera Images via Spatiotemporal论文阅读

一、概要提出新框架BEVFormer,用spatiotemporal transformer学习统一的BEV表示,来支持多个自动驾驶感知任务。空间上,用cross-attention让每个BEV query从roi across camera views中提取空间特征;时间上,用 self-attention循环融合历史BEV信息。9.0 points higher than previous best arts on nuScenes test set。二、方法1. Spatial Cro

2022-05-14 23:21:41 272 1

原创 基于鸟瞰图的三维目标检测

M2BEV: Multi-Camera Joint 3D Detection and Segmentation with Unified Bird’s-Eye View Representation概要:propose a unified framework to transform multi-camera images to a Bird’s-EyeView (BEV) representation for multi-task AV perception, including 3D obje

2022-05-14 23:17:06 596

原创 基础知识记录

增量学习灾难性遗忘:第一,由于每次对模型的参数进行更新时,只能用大量的新类别的样本和少量的旧类别的样本,因此会出现新旧类别数据量不均衡的问题,导致模型在更新完成后,更倾向于将样本预测为新增加的类别;第二,由于只能保存有限数量的旧类别样本,这些旧类别的样本不一定能够覆盖足够丰富的变化模式,因此随着模型的更新,一些罕见的变化模式可能会被遗忘,导致新的模型在遇到一些旧类别的样本的时候,不能正确地识别。增量学习任务分为,数据增量和类别增量。数据增量过程中,增量任务和原始任务之间没有新类别出现,两者具...

2022-05-14 23:12:40 500

原创 python装饰器

1. 是什么装饰器的本质就是python函数,用来给其他函数增加额外功能。用于提高程序复用性,减少冗余。通俗解释:在不同内裤外面穿同一条长裤,可以在不影响内裤功能的同时增加保暖功能。不同内裤指不同的函数,同一条长裤指同一个装饰器,装饰器可以让其他函数在不需要做代码变动的前提下增加额外功能。2. 例子import loggingdef use_logging(func): def wrapper(*args, **kwargs): logging.warning

2022-03-21 23:25:02 279

原创 星际争霸相关论文阅读笔记

Modular Architecture for StarCraft II with Deep Reinforcement Learning (2018, University of California, Berkeley)作者相信DRL与人类知识的结合能有效降低问题复杂度,所以为星际AI提出了一个模块化架构,由多个模块分担决策责任,每个模块根据其负责问题的特性选用DRL或人工规则等方法来控制游戏的一个方面,例如建造顺序、工人管理、侦测。除了多个决策模块,还有一个中央scheduler检查所有模块提出

2021-10-20 21:31:19 585

原创 Real World Games Look Like Spinning Tops (DeepMind NIPS2020) 论文阅读记录

博弈论被用来描述和分析很多策略交互,包括Go,StarCraft等现实游戏。了解这些游戏的共同结构有助于理解特定方法有效的原因及其局限。论文研究的就是现实游戏的几何结构。在论文提出的Game of Skill假说中,策略显示出类似陀螺的几何结构。纵轴表示transitive strength,横轴表示non-transitive dimension也就是在纵轴当前所处的transitive strength的number of cycles。论文专注于两方面:第一,从理论和实验上研究Games

2021-10-20 17:40:46 1353

原创 强化学习算法实现小结

Q learning主要就是选择动作和更新Q表两个函数。选择动作就是选Q表中当前状态Q值最大的动作,用np.argmax就能返回值最大元素的下标。Q表使用defaultdict字典类型建立,一级索引state得到该状态下所有动作的Q值,二级索引action得到该状态该动作的Q值。from collections import defaultdictself.Q_table = defaultdict(lambda: np.zeros(self.action_dim)) Q表的更新:Q

2021-09-12 20:18:50 1253

原创 PPO近端策略优化算法概述

Policy Gradient算法存在两个问题,一是蒙特卡罗只能回合更新,二是on-policy采集的数据只能使用一次。对于第一个更新慢的问题,改用时序差分方法,引入critic网络估计V值,就能实现单步更新。对于第二个数据利用率低的问题,引入重要性采样,就能用一个不同于当前策略的固定策略去采样很多的数据并反复利用。总的来说,PPO(Proximal Policy Optimization)就是采用Actor-Critic架构和重要性采样对PG进行改进的算法,也是OpenAI默认的强化学习算法。

2021-09-12 11:56:39 2252

原创 DDPG深度确定性策略梯度算法概述

DDPG(Deep Deterministic Policy Gradient)是连续控制领域的经典强化学习算法,是结合PG和DQN的一种off-policy方法。可以看作是DQN的改进,在DQN的Q网络基础上引入Actor网络预测一个使Q值最大的动作值,从而能够应对连续动作空间,且使用了DQN中的目标网络和经验复现技巧。Deep指深度网络,Deterministic指确定性策略也就是Actor输出的是一个动作值而不是动作概率分布,虽然叫Policy Gradient但却是AC架构。

2021-09-11 19:56:05 1423

原创 PyTorch中TensorboardX的使用

Tensorboard是TensorFlow的一个可视化工具,TensorboardX使得其他深度学习框架例如PyTorch也可以使用Tensorboard的功能。1.创建writerfrom tensorboardX import SummaryWriterwriter = SummaryWriter('log')2.用add_scalar添加要记录的数字常量例如训练时在每个episode里记录loss和reward来监控训练过程:# 在第i_ep个episode里: .

2021-09-07 14:40:19 438 5

原创 First return, then explore论文阅读

强化学习志在通过奖励函数使算法能自主学习解决复杂序列决策问题,但在许多实际问题中奖励函数的设计非常困难。过于稀疏的奖励使智能体难以探索到有效路径、学不到东西,人为塑造较为密集的奖励又可能误导智能体、学到违背初衷的东西。所以需要能更好应对奖励的稀疏性(sparsity)和误导性(deception)的办法。论文没有探讨奖励函数的设计,而是着眼于如何进行有效探索,因为论文认为对状态空间充足的探索能够发现稀疏的奖励并避开具有误导性的局部最优。为了应对阻碍有效探索的两个问题detachment(算法忘记了如何到

2021-09-06 23:14:47 470

原创 python defaultdict

普通的dict={}如果查找一个不存在的键值会报keyerror,而defaultdict查找不存在的键值不会报错而是有默认值。创建defaultdict时的参数可以是工厂函数也可以是自定义的没参数的函数,函数返回值就是查找不存在键值时的默认值。例如:from collections import defaultdictdict1 = defaultdict(int) # 默认0dict2 = defaultdict(set) # 默认set()dict3 = defaultdict(

2021-09-05 17:02:52 201

原创 python argparse

argparse是python标准库推荐的命令行解析模块。import argparse# 创建一个解析对象,description为可选的用于描述脚本用途的信息parser = argparse.ArgumentParser(description="calculate X to the power of Y")# 向解析对象中添加你要关注的命令行参数parser.add_argument("x", type=int, help="the base") # 位置参数parser.add_a

2021-09-02 09:30:23 66

原创 DQN-FlappyBird项目学习

博客:https://yanpanlau.github.io/2016/07/10/FlappyBird-Keras.html代码:https://github.com/yanpanlau/Keras-FlappyBird一、代码说明flappy_bird_utils.py主要加载游戏需要的图像音频等文件,wrapped_flappy_bird.py主要提供GameState类能接收动作返回更新的游戏状态,qlearn.py主要接收图像输入、图像预处理、卷积神经网络选择动作、使用DQN训练网络(

2021-07-26 16:12:26 669

原创 C++笔记(自用,持续更新)

#C++## 智能指针是行为类似于指针的类对象。帮助管理动态内存分配,过期时自动释放内存。## 友元友元类的所有方法都可以访问原始类的私有成员和保护成员。

2021-06-21 17:16:16 63

原创 TensorFlow学习笔记(自用,持续更新)

tensorflow擅长的任务就是训练深度神经网络TensorFlow采用数据流图(data flow graphs)来计算, 首先得创建一个数据流图, 然后再将数据(数据以张量(tensor)的形式存在)放在数据流图中计算. 节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组, 即张量(tensor). 训练模型时tensor会不断的从数据流图中的一个节点flow到另一节点, 这就是TensorFlow名字的由来.-》先创建结构,再放入数据进行计算。数据叫

2021-06-02 10:53:23 180 1

原创 NNI (Neural Network Intelligence)简介

NNI是什么自动机器学习(AutoML)工具和框架,最热门开源项目之一能做什么支持机器学习生命周期中的多个环节,包括特征工程、神经网络架构搜索(NAS)、超参调优和模型压缩等等(配图),都能使用相应的自动机器学习算法来完成。优势支持多框架、多训练平台,中文文档,易用的命令行工具和web界面安装pip install nni怎么用以超参优化为例首先,定义好需要搜索的超参空间;然后,在需要调参的网络启动之前,通过 NNI 的接口读取参数并...

2021-06-02 09:48:59 4260

原创 TensorBoard基本用法

使用步骤1.创建writer,写日志文件 writer=tf.summary.FileWriter('logs', tf.get_default_graph())2.保存日志文件 writer.close()3.运行可视化命令,启动服务 tensorboard --logdir logs最后一项是日志文件的路径4.打开可视化界面 通过浏览器打开服务器访问端口http://localhost:6006/示例在类的定义里用一个变量控制是否需要保存log,默认为False不..

2021-06-01 10:10:14 200

原创 vue子组件给父组件传值

父组件App.vue<template> <div id="app"> <ChildA @func="receiveData" /> <!-- 表示子组件$emit语句中指定用来传递数据的函数func在父组件中实际指的是receiveData函数 --> <!-- 其中@是v-on:的简写 --> </div></template><script>import Chi

2020-10-10 17:47:46 634

原创 2020年数字所上科大武大北航清深夏令营面经

上科大20分钟面试,自我介绍后四个老师一人问一块专业知识,最后问些别的以及英语,没有问项目。算法:说一种喜欢的算法,我说快排后追问了快选(我说了小根堆和基于快排两种方法) 数学:正定矩阵、正交矩阵的定义 编程语言:会哪些语言,c、c++、python的区别,c指针的作用,面向对象三特点及解释 体系结构/计组/操作系统/数据库:虚拟内存的作用,java虚拟机与虚拟内存的关系,快表与高速缓存的比较,缓存的一致性原理,数据库事务的原子性,fork函数 其它:想做什么方向;计算机图形学主要学了什么,

2020-08-23 12:28:51 2347 4

原创 滑动窗口算法示例

leetcode76. 最小覆盖子串给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串。样例:输入:"ADOBECODEBANC""ABC"输出:"BANC"说明:如果 S 中不存这样的子串,则返回空字符串""。如果 S 中存在这样的子串,我们保证它是唯一的答案。class Solution{public: ...

2020-04-18 18:48:15 61

原创 MacBook Pro 2017版A1708 更换ssd

MacBook Pro 2017年不带touchbar的A1708款,也是传说中最后一款能自己换ssd的MBP。更换前后磁盘容量如图↓ssd是在淘宝买的,看介绍和评价挺靠谱。换下来之后感觉一切正常,cpu温度、电池损耗情况都没觉得有变化,磁盘读写速度明显提高,最重要的是从此可以挥霍磁盘空间了✌️在youtube上截了别人128G换1T前后的图,和我的差不多↓一、备份数...

2020-04-08 20:06:10 35053 14

转载 遗传算法的基本原理与方法(转)

遗传算法的实现有6个主要因素:参数的编码、初始种群的设定、适应度函数的设计、遗传操作、算法控制参数的设定、约束条件的处理。基因gene 染色体 chromosome 群体population 复制reproducation 交叉 crossover 变异mutation 适应性 fitnessSGA 基本遗传算法(Simple Genetic Algorithm) 遗传算子 Gene...

2020-04-07 16:17:23 910

原创 dyld: Library not loaded: @rpathlibmysqlclient.21.dylib Reason: image not found 问题解决

问题:解决:第一步 :disablecsrutil(关闭SIP)重启 Mac 同时按住 command +r 不放,直到屏幕出现苹果图标和进度条, 导航栏找 terminal,输入csrutil disable 回车,重启Mac第二步 :建立软连接,在terminal以下指令sudo ln -s /usr/local/mysql/lib/libmysqlclient.2...

2019-12-03 20:33:07 1058 1

原创 PAT1003 Emergency (25 分)

1.用fill函数将一个区间的元素都赋同一个值,在<algorithm>里: fill(d, d+MAX, INF);//一维数组d fill(G[0], G[0]+MAX*MAX, INF);//二维数组Gmemset函数在<string.h>里,只能用于置0或者-1。2.细小的错误耗费了大量的时间,写的时候就该认真。#include &...

2019-11-30 16:59:26 150

原创 PAT1034 Head of a Gang (30 分)

1.用两个map完成结点的string名字与int下标的双向映射。2.结果也用map,自动实现按key字典序排列。3.难免有细节在编写时考虑不周,需要在debug时调整。(1)每个连通分量结点数目numCount的统计,初值为1,每增加一条边时,若另一个顶点尚未访问才++numCount。(2)处理完一条边,需要把其权值清0防止重复添加。即:bool visited[MAX]是用来...

2019-11-30 14:39:36 123

原创 PAT1100 Mars Numbers (20 分)

1.一般整数到其它类型的映射用数组,如果是大整数则需要用map,因为开不出那么大的数组导致读入的整数不能做下标;其它类型到其它类型的映射用map,最常用的就是map<string, int>mp, 而且常常是与int到string映射的数组对应。2.打表查表的方法非常好用!模拟转换(进制转换、字符串转数字)写起来太耗时,20分的题不会那么复杂,要记得有打表查表的方法啊!3.读一...

2019-11-30 13:19:14 134

原创 install PostgreSQL in Ubuntu

照着ppt一条一条执行,遇到问题就一个一个解决。命令行给的报错/反馈要自己看。不要一直换教程,应该照着同一个教程从头执行到尾。比如网上先sudo apt update再sudo apt install ***是管用,但是本质上和ppt里的方法不一样,ppt里是从源码编译(用到了make还有一些配置参数),网上是安装现有的包。按老师给的来,统一环境之后便于操作。mac和ubuntu两边...

2019-11-28 23:59:54 164

原创 PAT1081 Rational Sum (20 分)

1. 除法和取余运算之前都要检查除数是否为0。2. abs函数在cstdlib里,其它数学函数在cmath里。3.辗转相除法求最大公约数,然后a/d*b求最小公倍数。4.分数化简:为负时使分子问负分母为正(否则输出时负号位置会在分号后面);分子为0;最大公约数5.分数输出:整数;假分数以带分数形式输出;真分数#include <cstdio>//#include...

2019-11-28 00:36:10 180

原创 PAT 1098 Insertion or Heap Sort (25 分)

大根堆:根结点值大于其左右子结点值(或者说每棵子树中都是根结点最大)的完全二叉树。完全二叉树通常用数组存放,牢记下标特点:x/2, x, 2x, 2x+1。堆排序:每次交换根结点与最后一个结点值,然后从新的根结点向下调整(最后一个结点不在堆的范围了)。第一轮,使数组中最大元素放到了最后一个位置。排完后数组就是升序的了。别人好的方法技巧要学起来:1.只需要每轮序列...

2019-11-28 00:29:40 111

原创 并查集“好朋友” && PAT1107 Social Clusters (30 分)

典型用途:求解等价类问题实现关键:1. int father[N]; //father[i]表示元素i所在类的代表元。如果father[i]=i,说明i是这棵树的根结点(也即这个等价类的代表元),可利用该特点递推地找代表元。若两个元素的根结点相同,说明在同一个等价类中。仅当还不在一个等价类中时才需要合并,注意:合并是让一个等价类的根结点成为另一个等价类的根结点的父亲,如fat...

2019-11-28 00:04:32 150

原创 PAT1066 Root of AVL Tree (25 分)

1.新结点也即叶子结点的高度是1而不是0。 newnode->height = 1;2.判断树形时用的是平衡因子,而不是树的高度。。3.根结点bf是2或者-2时才需要调整,其它情况是平衡的不需要调整。所以注意==2判断完了是else if判断==-2而不是直接else。即else if(getBalancedFactor(root) == -2){}4.root应该初始化为NULL,否...

2019-11-26 19:23:15 134

原创 PAT1090 Highest Price in Supply Chain (25 分) 1079Total Sales of Supply Chain (25 分)

使用向量数组,将父结点相同的结点下标存在同一个向量中,也即结点i的子结点的下标都存在parentNode[i]中。本质上还是树的层次遍历。(改叫child可能更合适,child[i]表示结点i的所有子结点的下标)。方法一:BFS#include <cstdio>#include <vector>#include <queue>#include &...

2019-11-26 11:59:35 159

原创 PAT1064 Complete Binary Search Tree

1. 养成在三元运算符?:两边加括号的习惯。复杂算术表达式最好加括号。2.报错Thread 1: EXC_BAD_ACCESS则重点检查指针或数组下标。如果用了递归,则首先检查递归出口,极有可能是过晚退出递归造成的越界访问。比如退出递归的条件中左右坐标的关系带不带等号,有时是相等一种退出、小于另一种退出。3.把中间结果打印出来有助于定位错误。4.preSequence函数通过计算左子树...

2019-11-25 19:33:11 110

原创 PAT1074 Reversing Linked List

#include <cstdio>using namespace std;#include <algorithm>#define MAX 100005struct Node{ int data; int flag;//0:not in; 1: in int add; int next; int order;}node[M...

2019-11-22 12:56:05 86

原创 PAT1051 Pop Sequence && PAT1056 Mice and Rice

1051 Pop Sequence#include <cstdio>#include <stack>using namespace std;#define MAX 1005stack<int> s;int a[MAX], m, n, k;int main(){ scanf("%d %d %d", &m, &n, &a...

2019-11-22 00:17:05 121

原创 PAT1067 Sort with Swap(0, i)

#include <cstdio>#include <algorithm>using namespace std;#define MAXN 100005int pos[MAXN];int main(){ int n, num; scanf("%d", &n); int left = n - 1; for (int i=0...

2019-11-21 00:37:00 126

空空如也

空空如也

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

TA关注的人

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