cos

RocketMq源码随笔-刷盘

只谈情不闲聊 提交于 2021-01-18 18:57:34
RocketMq源码随笔-刷盘 引言 在rocketmq中有两种刷盘模式:同步刷盘和异步刷盘。 从类图上来看,有三个不同的实现思路。那下面逐一来看过。 适用情况如下 同步刷盘使用GroupCommitService。 异步刷盘且未开启TransientStorePool,使用FlushRealTimeService。 异步刷盘且开启TransientStorePool,使用CommitRealService。 欢迎加入技术交流群186233599讨论交流,也欢迎关注技术公众号:风火说。 <!--more--> GroupCommitService GroupCommitService是在同步刷盘的时候会使用到的。 该类有两个属性:requestsWrite和requestsRead。都是使用volatile关键字修饰的List对象。 putRequest 该方法用于将刷盘请求放入。首先是对requestWrite对象进行加锁处理,然后将请求放入其中后,解锁。解锁换成后,调用方法wakeup唤醒可能在休眠中的线程。 doCommit 这个方法是在run方法中被调用。真正实现了数据的磁盘刷写。下面来看下逻辑。 首先是在requestRead上进行加锁。 如果requestRead队列不为空,则进行子流程刷盘操作。 遍历requestRead列表,为每一个元素执行对应的逻辑,如下:

多模态阅读笔记 Noise Estimation Using Density Estimation for Self-Supervised Multimodal Learning

|▌冷眼眸甩不掉的悲伤 提交于 2021-01-14 17:18:55
Noise Estimation Using Density Estimation for Self-Supervised Multimodal Learning 这篇文件讲的是, 按照现有多模态的任务, 往往会 出现噪音的问题 , 噪声 使得模型一直得不到最好结果, 而这篇文章提出一个去噪方法,自监督的去训练一个去噪模块来消除噪声, 实验结果显示, 用此方法, 能够直接提高 VQA, Text-To-Video Retrieval 等任务的表现 本文贡献 证明多模态噪声的消除任务 可以归结为 多模态密度估计任务 提出一个模块用于学习一个抗噪声能力强的表示 并且变成一个 max margin ranking loss function. 通过HowTo100M dataset 进行自监督训练如何去噪 , 然后用于5个任务, 结果可以发现进行提升 本文相关工作 Density Estimation: 密度估计 假设我们有一组来自未知密度函数的观察到的数据点,我们的目标是从观测到的数据估计他们的 概率密度函数 参数或半参数方法 非参数方法 密度估计理论(部分)_sinat_31184961的博客-CSDN博客_密度估计 自监督学习 一文读懂自监督学习_zandaoguang的博客-CSDN博客_自监督学习 多模态表示学习 joint representation 联合表示

The Preliminary Contest for ICPC China Nanchang National Invitational and International Silk-Road...

ⅰ亾dé卋堺 提交于 2021-01-13 09:52:06
两个队友链接: YZJ CKX A. PERFECT NUMBER PROBLEM 题库链接 思路:2^1*(2^2-1), 2^2*(2^3-1), 2^4*(2^5-1), 2^6*(2^7-1), 2^12*(2^13-1) 代码: #include<bits/stdc++.h> using namespace std; int main() { cout << " 6\n28\n496\n8128\n33550336\n " ; return 0 ; } View Code B. Greedy HOUHOU 题库链接 C. Angry FFF Party 题库链接 思路:java大数算,贪心减 代码: import java.util.* ; import java.math.* ; public class Main { /** * @param args */ static class Matrix { BigInteger a[][] = new BigInteger [2][2 ]; public void init() { for ( int i = 0; i < 2; ++i) for ( int j = 0; j < 2; ++j) a[i][j] = BigInteger.ZERO; } public void _init() { init(); for (

[阅读笔记]Attention Is All You Need

无人久伴 提交于 2021-01-11 08:13:34
Transformer 本文介绍了 Transformer 结构, 是一种 encoder-decoder , 用来处理序列问题, 常用在NLP相关问题中. 与传统的专门处理序列问题的encoder-decoder相比, 有以下的特点: 结构完全 不依赖于CNN和RNN 完全依赖于 self-attention 机制, 是一种 堆叠的self-attention 使用 全连接层 逐点 point-wise 计算的 整个Transformer的结构图如下所示: Encoder and Decoder Stacks 如上所说, Transformer是基于 stacked self-attention 的, stack 方式具体为: Encoder Encoder是由$N=6$个独立的层堆叠而成的, 每层有两个子层: 第一个层为 multi-head self-attention 结构 第二层为 simple, position-wise fully connected feed-forward network , 即基于位置的简单全连接反馈网络 在每个子层又引入了 residual connection , 具体的做法为每个子层的输入与输出 相加 , 这就要求每个子层的输入与输出的维度是完全相等的. 然后再使用 layer normalization . 因此每个子层的最终输出为:

【bzoj2829】信用卡凸包 凸包

时间秒杀一切 提交于 2021-01-09 01:51:10
题目描述 输入 输出 样例输入 2 6.0 2.0 0.0 0.0 0.0 0.0 2.0 -2.0 1.5707963268 样例输出 21.66 题解 凸包 傻逼题,答案显然为:所有圆心构成的凸包周长+一个圆的周长。这里求凸包用的方法是求上下两个凸壳再拼起来。 时间复杂度为排序的 $O(n\log n)$ 我才不会告诉你puts("nan:)可以过呢 #include <cmath> #include <cstdio> #include <algorithm> using namespace std; const double pi = acos(-1); struct data { double x , y; data() {} data(double a , double b) {x = a , y = b;} data operator-(const data &a)const {return data(x - a.x , y - a.y);} double operator*(const data &a)const {return x * a.y - y * a.x;} bool operator<(const data &a)const {return x == a.x ? y < a.y : x < a.x;} }p[40010] , sa[40010] , sb

[NLP]Transformer模型解析

一笑奈何 提交于 2021-01-08 06:31:44
简介 [2] Attention Is All You Need 是 2017 年 google 提出来的一篇论文,论文里提出了一个新的模型,叫 Transformer ,这个结构广泛应用于 NLP 各大领域,是目前比较流行的模型。该模型没有选择大热的 RNN/LSTM/GRU 的结构,而是只使用 attention layer 和全连接层就达到了较好的效果,同时解决了 RNN/LSTM/GRU 中的 long dependency problem, 以及传统 RNN 训练并行度以及计算复杂度高的问题。缺点是输入固定长度的序列,需要对原始文本进行裁剪和填充,导致不能学习到序列中更长距离的依赖关系。 Transformer 总体结构 [1] Transformer 采用 Encoder-Decoder 架构。 上图就是论文中提出的 Transformer 结构。其中左半部分是 encoder 右半部分是 decoder. Encoder 层中有 6 个一模一样的层结构,每个层结构包含了两个子层,第一个子层是 多头注意力层 ( Multi-Head Attention, 橙色部分),第二个子层是 前馈连接层 ( Feed Forward ,浅蓝色部分)。除此之外,还有一个残差连接,直接将 input embedding 传给第一个 Add & Norm 层(黄色部分)以及 第一个

Gym

妖精的绣舞 提交于 2021-01-07 05:02:19
题意: 给定几个圆,求最短的围合,把这几个包围起来,而且到圆的距离都不小于10. 思路: 把每个圆的半径+10,边等分5000份,然后求凸包即可。 #include<bits/stdc++.h> using namespace std; #define mp make_pair typedef long long ll; const double inf= 1e200; const double eps=1e- 12 ; const double pi= 4 *atan( 1.0 ); int dcmp( double x){ return fabs(x)<eps? 0 :(x< 0 ?- 1 : 1 );} struct point{ double x,y; point( double a= 0 , double b= 0 ):x(a),y(b){} }; point operator +(point A,point B) { return point(A.x+B.x,A.y+ B.y);} point operator -(point A,point B) { return point(A.x-B.x,A.y- B.y);} point operator *(point A, double p){ return point(A.x*p,A.y* p);} point

基于springboot2的开源OA办公系统

心已入冬 提交于 2021-01-06 01:10:42
Active4j-oa是基于 active4j-jsp 快速开发框架构建而来的OA办公系统。基于springboot2.0,以Spring Framework为核心容器,Spring MVC为模型视图控制器,Mybatis Plus为数据访问层, Apache Shiro为权限授权层, Redis为分布式缓存,Quartz为分布式集群调度,JSP作为前端页面引擎,采用JSTL标签库封装组件的开源框架。 项目介绍 Active4j-oa是基于 active4j-jsp 快速开发框架构建而来的OA办公系统。基于springboot2.0,以Spring Framework为核心容器,Spring MVC为模型视图控制器,Mybatis Plus为数据访问层, Apache Shiro为权限授权层, Redis为分布式缓存,Quartz为分布式集群调度,JSP作为前端页面引擎,采用JSTL标签库封装组件的开源框架。 Active4j-oa目前内置了绝大部分常见办公系统功能,包括系统管理,工作流管理,个人办公,人力资源管理,执行力管理等几大模块。开发者只需根据具体业务需求,稍加改进,就可以开发出一套完整的OA办公系统。 技术文档 讨论加群:qq群①:203802692 qq群②:773872959 演示地址: http://www.active4j.com:9005/oa 官方网站:

程序填空题(二)

风格不统一 提交于 2021-01-04 16:41:32
1.尼科彻斯定理 This program is to verify Theorem of Nicoqish.That is the cube of any integer can be represented as the sum of some continue odd numbers.For example, 8^3=512=57+59+61+63+65+67+69+71. #include <iostream> using namespace std; int main() { int n,a,i; while(1) { cout<<"Please input a integer to verify(0 to quit): "; cin>>n; if(n==0) __________; // (1) // 输出等差数列,首项为a*a-a+1,公差为2,项数为n a=n*n-n+1; cout<<n<<"*"<<n<<"*"<<n<<"="<<n*n*n<<"="<<a; for (i=1; __________;i++) // (2) cout<<"+"<<__________; // (3) cout<<endl; } return 0; } 2.角谷猜想 This program is to verify Jiaogu Guess.That is given any

Android_CardView

喜夏-厌秋 提交于 2021-01-03 14:22:21
Android_CardView   是Android的5.0之后出现,使用CardView需要独立的导入   他本身也是一个Layout,可以在其中布局其他的view,继承与FramLayout可以实现一个3D和阴影的效果 常用属性 1. cardBackgroundColor: 设置背景色 2. cardCornerRadios :设置圆角半径 3. contentPadding : 设置内部padding 4. cardElevation : 设置阴影大小 5. cardUseCompatPadding : 默认为false   用于5.0即以上,true则可以添加额外的padding绘制阴影 6. cardPreventCornerOverlap: 默认true   用于5.0意向,添加额外的padding,防止内容与圆角重叠 Demo:制作微信公众号图文消息 效果图: 布局文件xml <? xml version="1.0" encoding="utf-8" ?> < FrameLayout xmlns:android ="http://schemas.android.com/apk/res/android" android:layout_width ="match_parent" android:layout_height ="wrap_content" xmlns