Transformer笔记3——SwinTransformer
简介
分类,分割,检测等任务中均是刷分神器
官方开源,各预训练模型全部给出
新一代backbone,可直接套用在各项下游任务中
提供大,中,小个版本模型;可以自由选择合适的
小窗口内算自注意力,和长度成线性关系
使用 相对位置偏移
我们训练的是下图上方的那个 bias table
解决的问题图像中像素点太多了,如果需要更多的特征就必须构建很长的序列,越长的序列算起注意力肯定越慢,这就导致了效率问题
能否用窗口和分层的形式来替代长序列的方法呢?这就是它的本质
CNN中经常提到感受野,transformer中该如何体现呢?(答案就是分层)
分成:借助CNN的思想,每层的序列长度都缩小,扩大每项的感受野
Transformer BlocksW-MSA:基于窗口的注意力计算
SW-MSA:窗口滑动后重新计算注意力
串联在一起就是一个block
步骤Patch Embedding最开始的那一步,构造序列
输入:图像数据(224,224,3)
输出:(3136,96)相当于序列长度是3136个,每个的向量是96维特征
通过卷积得到,Conv2d(3, 96, ker ...
Transformer笔记2 —— VIT
整体架构分析将图片分割成若干块,再展开为一个向量
对于图像分类任务,可以加一个0向量,最后一层该向量的输出作全连接即可
CNN缺点想要获得大的感受野(全局的信息)就必须堆叠很多层卷积!
这问题就来了,不断卷积+池化的操作感觉有点麻烦还不一定好
transformer根本不需要堆叠,直接就可以获得全局信息(缺点:比较吃数据)
计算公式
关于位置编码对于图像分类任务,编码有用,但是怎么编码影响不大
TNT:Transformer in TransformerVIT中只针对pathch进行建模,忽略了其中更小的细节
外部transformer处理序列。(一模一样)
内部transformer:
重组成多个超像素(4个像素点)
把重组的序列继续做transformer
内部transformer重组成新的向量:
新向量再通过全连接改变输出特征大小
内部组合后的向量与patch编码大小相同
最后与原始输入pathch向量进行相加
Transformer笔记1 —— BERT
传统RNN不能并行化Self-Attention机制来进行并行计算,在输入和输出都相同
输出结果是同时被计算出来的,现在基本已经取代RNN了
传统的word2vec用确定的词向量表达一个词,但不同词在不同语境下意义可能不同。
BERT通过上下文,来考虑词的词向量
整体结构
重点:
输入如何编码
输出结果
Attention目的
怎样组合
Self-Attention让计算机关注有价值信息 如何计算?
对于每一个词向量,得到三个新的向量
Q: query,要去查询的
K: key,等着被查的
V: value,实际的特征信息(和注意力无关)
如下图,用向量内积计算相关程度(分值)
相关分数向量用softmax进行归一化(得到这个词与其他所有词关系大小),在用这个大小和每个词语「实际的特征信息」V相乘再相加,得到新的向量。
整个过程
multi-headed机制一组q,k,v得到了一组当前词的特征表达 ,类似卷积神经网络中的filter ,能不能提取多种特征呢?
通过不同的head(q,k,v)得到多个特征表达
将所有特征拼接在一起
可以通过再一层全连接来降维 ...
CSP 合集
202203-3 计算资源调度器题意hh
思路一个个枚举计算结点,check,记得排序,map套set减少时间复杂度
代码分数:100
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374#include <bits/stdc++.h>using namespace std;typedef long long LL;typedef pair<int,int> PII;int n,m,l,g,f,a,na,pa,paa,paar;int dtq[1010];//由计算结点找到对应的区unordered_set<int> qtd[1010];//可用区内的计算节点map<int,unordered_set<int>> btd;//应用编号 to 计算节点map<int,unordered_set< ...
移动软件开发——个人项目
2022年夏季《移动软件开发》实验报告海缘——OUCer的表白交友APP姓名:王梓懿 学号:20040031047
姓名和学号?
王梓懿,20040031047
本实验属于哪门课程?
中国海洋大学22夏《移动软件开发》
实验名称?
个人项目任务
博客地址?
Github仓库地址?
adventurer-w/LoveInOUC (github.com)
1 项目介绍在表白墙等地方常常听看到同学们的交友、求助的声音。但传统表白墙具有一下缺点:
由于是人工审核,发布,很难保证消息的实时性
但由于QQ空间的限制,只能查看最近7天的消息
不能查看某一个用户的帖子
……
针对这一痛点,「海缘」为广大校友提供了一个实时发表并查看动态的APP平台,因为大一的时候学过一点 Android 开发,所以选择用安卓APP实现。
「海缘」这个名字有「在海大的缘分」的意思,希望大家能在海大认识那个ta~~~~
后端使用 *召 同学曾经写的一个新闻资讯平台的后台 ~~~
项目地址(github.com)
2 当前完成情况功能基本实现,已具备上线条件
3 模块功能与技术下 ...
分布式一致性算法 初探
什么是一致性一致性是指分布式系统中的多个服务节点,给定一系列操作,在特定协议的保障下,使这些节点对外呈现的状态是一致的,即保证集群中所有服务节点中的数据完全相同并且能够对某个提案达成一致
CAP Theorem根据FLP不可能结论,在一个异步系统中,网络时延无上限,即使只有一个成员是有问题的,也不可能达成共识。
Consistency一致性、Availability可靠性、Partition tolerance容错性,任何一个分布式系统中,最多只能满足其中两个性质(指满足表示两个之后再考虑第三个)。
强一致性任何一次读都能读到某个数据的最近一次写的数据。系统中的所有进程,看到的操作顺序,都和全局时钟下的顺序一致。简言之,在任意时刻,所有节点中的数据是一样的。
如:Paxos,raft,zab
弱一致性数据更新后,如果能容忍后续的访问只能访问到部分或者全部访问不到,则是弱一致性。
如:DNS,Gossip
CFT(非拜占庭容错算法)Basic Paxos角色Client:系统外部角色,请求发起者。
Propser:接受Client请求,向集群提出提议(propose)。并在冲突发生时起到 ...
区块链&BTC 初探
密码学原理hash哈希碰撞给定x和y,且有x!=y,但给定一个哈希函数Hash(),可以得到Hash(x)=Hash(y),则称为hash碰撞。实际应用中,哈希碰撞基本上难以避免,目前并不存在一个hash函数可以从数学上证明具有collision resistance的性质。
hiding我们认为,给定x和Hash(),可以很容易得到Hash(x),但没有办法在已知Hash(x)和Hash()的情况下,反推出x的具体取值。
Puzzle friendly该性质要求哈希值计算事先不可预测,仅仅根据输入很难预测出输出。例如:我们需要一个哈希值,存在于某一个范围内,只能通过不停运算查找出来。该性质保证了比特币系统中,只能通过“挖矿”获得比特币。
签名非对称加密假设A要给B发一条信息,A是发送者,B是接收者,窃听者C可以窃听他们之间的通讯内容。
B生成一个包含公钥和私钥的密钥对,私钥由B自行妥善保管,公钥发送给A,B的公钥被C截获也没关系。将公钥发给A,表示B请A用这个公钥对消息进行加密并发送给他。A将密文发送给B,密文被C截获也没关系,C可能拥有B的公钥,但是B的公钥是无法进行解密的。
即: ...
安卓实验合集
2022年夏季《移动软件开发》实验报告
姓名和学号?
王梓懿,20040031047
本实验属于哪门课程?
中国海洋大学22夏《移动软件开发》
实验名称?
实验5:第一个Android应用小程序
博客地址?
https://adventurer-w.com/2022/08/21/Android1/
Github仓库地址?
https://github.com/adventurer-w/OUC-WeChat2022/tree/master/AndroidEx1
一、实验目标
仿微信“发现”页创建列表布局
Textview imageview 使用
LinearLayout 使用
页面上主要包含5组列表,每组列表包含1-2个列表项。 具体内容解释如下:
• 列表组1:“朋友圈”单行列表项;
• 列表组2:“扫一扫”和“摇一摇”两行列表项;
• 列表组3:“看一看”和“搜一搜”两行列表项;
• 列表组4:“购物”和“游戏”两行列表项;
• 列表组5:“小程序”单行列表项。
此外我还完成了附加项目——仿微信钱包页面
二、实验步骤
match_p ...
微信小程序实验(合集)
2022年夏季《移动软件开发》实验报告姓名:王梓懿 学号:20040031047
姓名和学号?
王梓懿,20040031047
本实验属于哪门课程?
中国海洋大学22夏《移动软件开发》
实验名称?
实验1:第一个微信小程序
博客地址?
https://adventurer-w.com/2022/08/17/WeChat1/
Github仓库地址?
https://github.com/adventurer-w/OUC-WeChat2022
(备注:将实验报告发布在博客、代码公开至 github 是 加分项,不是必须做的)
一、实验目标1、学习使用快速启动模板创建小程序的方法;
2、学习不使用模板手动创建小程序的方法。
二、实验步骤1 自动生成小程序创建项目
测试项目
2手动创建小程序页面配置
将app.json 文件内 pages 属性中的“”pages/logs/1ogs”删除,并州除上一行末尾的逗号
删除 utils 文件夹及其内部所有内容
删除 pages 文件夹下的1ogs 目录及其内部所有内容
删除 index. wxml 和index ...
SSD代码
多尺度目标检测在特征图(fmap)上生成锚框(anchors),每个单位(像素)作为锚框的中心。
特征图的宽度和高度fmap_w和fmap_h,将会生成大小为s(假设列表s的长度为1)且宽高比(ratios)不同的锚框。
123456789def display_anchors(fmap_w, fmap_h, s): d2l.set_figsize() # 前两个维度上的值不影响输出 fmap = torch.zeros((1, 10, fmap_h, fmap_w)) # 生成一个假的fmap, batch_size=1,10通道。 anchors = d2l.multibox_prior(fmap, sizes=s, ratios=[1, 2, 0.5]) bbox_scale = torch.tensor((w, h, w, h)) d2l.show_bboxes(d2l.plt.imshow(img).axes, anchors[0] * bbox_scale) display_anchors(fmap_w=4, fmap_h=4, ...