7 冷漠的蓝炮仗

尚未进行身份认证

我要认证

Python是世界上最好的语言

等级
TA的排名 8w+

模拟实现Tair中的版本号

模拟实现Tair中的版本号最近在公司项目中,遇到了一个分布式多线程并发环境下的短信重复发送问题,最后使用的分布式锁解决。在公司的缓存框架 Tair 中有 version 机制,这个 version 可以作为一个分布式锁使用。对 version 机制比较好奇,但是还没来得及去看框架源码,准备先自己在多线程环境下模拟一个类似的 version 机制。一、需求Tair是 Key-Value 型数据库,在 Tair 中插入数据时主要有以下几种情况:1、在 put 的时候,如果传入的 version 为0

2020-06-19 19:04:45

不能忽视的 Synchronization on a non-final field

Synchronization on a non-final field今天在做一个多线程试验的时候,对一个变量使用 synchronized ,出现了这样的提示 “Synchronization on a non-final field XXX”,查看详细文档可以看到下面这段话:Reports synchronized statements where the lock expression is a reference to a non-final field. Such statements a

2020-06-19 19:00:35

torch.sort

torch.sort()方法原型:torch.sort(input, dim=None, descending=False, out=None) -> (Tensor, LongTensor)返回值:A tuple of (sorted_tensor, sorted_indices) is returned, where the sorted_indices are the indices of the elements in the original input tensor.参数.

2020-05-14 12:37:00

Java版本简单布隆过滤器

最近搞NLP爬了点数据,有地方需要判断一些字符串是否在一个大集合里面出现过,联想到了此前的经历过的一个面试题。问:在做网络爬虫的时候,经常会有URL重复出现,怎么规避这种情况?答:Java里面可以用HashSet保存已经访问过的URL。问:如果这个URL的量很多呢?比如十亿条?答:如果能够忍受一定错误率的话,可以使用布隆过滤器,balabala…一、基本概念上面已经介绍了布隆过滤器...

2020-05-07 22:29:53

Java线程池详解

如果大家使用过P3C,在使用Executors创建线程时一定看到过这么一句话:线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。 说明:Executors返回的线程池对象的弊端如下:1)FixedThreadPool和SingleThreadPool:  允许的请求队列长度为I...

2020-03-29 19:37:11

Linux进程间通信方法

Linux进程间通信方法包括管道(有名管道和无名管道)、消息队列、共享内存、信号量和套接字。其中前四个属于同一台机器下进程间的通信,套接字则是用于网络通信。管道管道是Linux由Unix那里继承过来的进程间的通信机制,它是Unix早期的一个重要通信机制。其思想是,在内存中创建一个共享文件,从而使通信双方利用这个共享文件来传递信息。通常用于把一个程序的输出直接连接到另一个程序的输入,由于这种...

2020-02-22 16:26:32

【转载】Linux 创建子进程执行任务

Linux 操作系统紧紧依赖进程创建来满足用户的需求。例如,只要用户输入一条命令,shell 进程就创建一个新进程,新进程运行 shell 的另一个拷贝并执行用户输入的命令。Linux 系统中通过 fork/vfork 系统调用来创建新进程。本文将介绍如何使用 fork/vfork 系统调用来创建新进程并使用 exec 族函数在新进程中执行任务。fork 系统调用要创建一个进程,最基本的系...

2020-02-22 11:38:57

【转载】深入浅出java常量池

jvm虚拟内存分布程序计数器 是jvm执行程序的流水线,存放一些跳转指令。本地方法栈 是jvm调用操作系统方法所使用的栈。虚拟机栈 是jvm执行java代码所使用的栈。方法区 存放了一些常量、静态变量、类信息等,可以理解成class文件在内存中的存放位置。虚拟机堆 是jvm执行java代码所使用的堆。常量池Java中的常量池,实际上分为两种形态:静态常量池和运行时常量池。所谓...

2020-02-11 21:21:01

【转载】Java数据类型

java中数据类型基本类型:int、short、long、double、float、boolean、char 。注意:并没有String的基本类型,存在于栈中。包装类数据:integer、String、Double等包装类,存在于堆。自动装箱和自动拆箱当你用基本类型的值给包装类赋值时,就会发生基本类型向包装类型的转换:“自动装箱”当你用包装类的值给基本类型的值进行赋值时,系统也会自动...

2020-02-11 20:15:35

使用goproxy实现内网穿透

最近遇到这么一个问题,一些深度学习的任务对电脑要求比较高,以前一直都是白嫖的学校的服务器。但是最近要离开学校很长一段时间了,工作还没完成,便需要能够远程连接学校的服务器继续跑实验。问题出现了,学校的服务器是只能内网的机器访问,这就需要配置内网穿透来实现外部网络访问内网的服务器。目标外网的 A 机能够通过一台有公网IP的服务器 B 连接内网服务器 C 的22端口三台机器的IP如下:A(控...

2020-01-02 09:54:21

LCSTS中文数据集解析与处理

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2019-12-25 14:13:17

ROUGE和pyrouge的安装

ROUGE是由微软亚洲研究院知识挖掘组Chin-Yew Lin 研发的,用于摘要的自动评价,通过比较机器自动生成的摘要与人工生成的摘要中重叠单元的数量,来评价机器自动生成的摘要。该方法中考虑的重叠单元有n-gram, word sequences, word-pairs等,并提出了四个测量标准ROUGE-N, ROUGE-L, ROUGE-W, ROUGE-S。该包用Perl语言编写,目前版本...

2019-12-19 14:00:52

CentOS安装php7.2

在CentOS中直接使用sudo yum -y install php安装php,最后安装的版本是5.6,这是很老的版本了,肯定是不够的,所以我们需要另外的方法进行php7.x的安装。首先获取rpm:rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -Uvh http...

2019-06-11 20:45:36

归一化、标准化、中心化

一、概念归一化:把数据变成 [0,1] 或 [-1,1] 之间的小数。主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速。是一种简化计算的方式,将有量纲的表达式,经过变换,化为无量纲的表达式,成为标量,便于不同单位或量级的指标能够进行比较和加权。标准化:在机器学习中,我们可能要处理不同种类的资料,例如,音讯和图片上的像素值,这些资料可能是高维度的,资料标准化后会使每个...

2019-05-19 16:48:46

tf.nn.max_pool

max pooling是CNN当中的最大值池化操作,其实用法和卷积很类似关于池化的概念,可以参考我的这篇文章:https://blog.csdn.net/u012495579/article/details/90343636tf.nn.max_pool(value, ksize, strides, padding, name=None)一共有四个参数,和卷积很类似:value:需要...

2019-05-19 16:13:58

池化操作与反向传播

池化(pooling)主要是在用于图像处理的卷积神经网络中,但随着深层神经网络的发展,池化相关技术在其他领域,其他结构的神经网络中也越来越受关注。池化操作可以看做只取用某一个区域的关键特征,忽略其他特征。池化的作用1、pooling的结果是使得特征减少,参数减少,但pooling的目的并不仅在于此。2、pooling目的是为了保持某种不变性(旋转、平移、伸缩等)。池化的概念根据相关...

2019-05-19 16:05:31

tf.nn.conv2d

tf.nn.conv2d是TensorFlow里面实现卷积的函数,参考文档对它的介绍并不是很详细,实际上这是搭建卷积神经网络比较核心的一个方法,非常重要tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, name=None)除去name参数用以指定该操作的name,与方法有关的一共五个参数:inp...

2019-05-19 15:39:59

神经网络基础

目前,深度学习(Deep Learning,简称DL)在算法领域可谓是大红大紫,现在不只是互联网、人工智能,生活中的各大领域都能反映出深度学习引领的巨大变革。要学习深度学习,那么首先要熟悉神经网络(Neural Networks,简称NN)的一些基本概念。当然,这里所说的神经网络不是生物学的神经网络,我们将其称之为人工神经网络(Artificial Neural Networks,简称ANN)貌...

2019-05-09 16:46:53

算法分析—快速排序&主定理分析递归的复杂度

一、简介快速排序对于初学者而言算是实现较为困难的一种排序方法,而其代码的实现方法也有多种,本文采用其中一种方法实现快排,并采用 主定理 对其复杂度进行分析。二、基本思想对于一个已经排序好的数组,一定有该特性:任取一个数字,其左边的数字(若存在)全部小于该数字,其右边的数字(若存在)一定大于该数字。那么我们便可以对一个未排序数组,任取一个数字(中心数),将小于它的放左边,大于它的放右边,这样...

2019-01-29 11:52:07

算法分析—冒泡排序

基本思想冒泡排序算法思想也比较简单,可认为是选择排序的一种变化。冒泡排序算法的原理如下:1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。(经过此步骤,最大的元素便被换到了最后)3、依次去除最后一个元素,对剩余所有的元素重复以上的步骤。(共执行N次)算法实现import datanums = data.get...

2019-01-25 17:32:36

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。