- 博客(688)
- 资源 (9)
- 问答 (1)
- 收藏
- 关注

原创 机器学习资源-Harvard Ph.D Sam维护
这篇博文转自哈佛大学博士生Sam整理的机器学习资料,包括了数据基础、几何、概率论、统计学习、深度学习等。内容非常丰富,Blog是完全拷贝用于备份。最新内容建议阅读Sam维护的博文:https://sgfin.github.io/learning-resources/ML ResourcesThis is a not-particularly-systematic attempt to cu...
2018-11-13 16:52:27
12976

原创 个人主页
基本信息 教育经历:2018.11- Cornell University Ph.D Candidate2016.8-2019.6 图形与图像处理 GPA=3.98 1/121(清华大学硕士毕业设计)2014.7-2016.6 图形与图像处理 GPA=3.92 1/107(...
2017-08-29 17:59:22
21933
15
原创 深入理解Golang中的Context包
context.Context是Go语言中独特的设计,在其他编程语言中我们很少见到类似的概念。context.Context深度支持Golang的高并发。1. Goroutine和Channel在理解context包之前,应该首先熟悉Goroutine和Channel,能加深对context的理解。1.1 GoroutineGoroutine是一个轻量级的执行线程,多个Goroutine比一个线程轻量,所以管理Goroutine消耗的资源相对更少。Goroutine是Go中最基本的执行单元,每一.
2021-02-21 23:25:43
6117
1
原创 系统间通信4:基本IO通信模型
本文引用 : https://blog.csdn.net/yinwenjie/article/details/48472237目前常用的IO通信模型包括四种:阻塞式同步IO、非阻塞式同步IO、多路复用IO和真正的异步IO。所有IO模式都是要靠操作系统进行支持,应用程序只是提供相应的实现,对操作系统进行调用。1. 传统阻塞模式(BIO)BIO就是:blocking IO。最容易理解、最容易实现的IO工作方式,**应用程序向操作系统请求网络IO操作,这时应用程序会一直等待;另一方面,操作系统收到请求后
2021-02-17 16:17:51
1228
原创 系统间通信3:RPC的基本概念
本文引用 : https://yinwj.blog.csdn.net/article/details/494533031. 概述经过了详细的信息格式、网络IO模型的讲解,并且通过JAVA RMI的讲解进行了预热。从这篇文章开始我们将进入这个系列博文的另一个重点知识体系的讲解:RPC。在后续的几篇文章中,我们首先讲解RPC的基本概念,一个具体的RPC实现会有哪些基本要素构成,然后我们详细介绍一款典型的RPC框架:Apache Thrift。2. PRC概述2.1 什么是RPCRPC(Remote P
2021-02-17 15:20:47
988
1
原创 系统间通信2:通信管理与远程方法调用RMI
本文引用 : https://yinwj.blog.csdn.net/article/details/49120813RMI : Remote Method Invocation,远程方法调用RPC : Remote Procedure Call Protocol, 远程过程调用协议ESB : Enterprise Service Bus, 企业服务总线SOA : Service-Oriented Architecture, 面向服务的架构1. 概述在这个章节我将通过对RMI的详细介绍,引出
2021-02-17 13:22:14
631
原创 系统间通信1:阻塞与非阻塞式通信B
版权声明:本文引用https://yinwj.blog.csdn.net/article/details/48274255接上篇:系统间通信1:阻塞与非阻塞式通信A4.3 NIO通信框架目前流行的NIO框架非常的多。在论坛上、互联网上大家讨论和使用最多的有以下几种:原生JAVA NIO框架:JAVA NIO通信框架基于多路复用IO原理,我们将详细讲解它的工作原理。APACHE MINA 2:是一个网络应用程序框架,用来帮助用户简单地开发高性能和高可扩展性的网络应用程序。它提供了一个
2021-02-17 12:30:50
318
3
原创 系统间通信1:阻塞与非阻塞式通信A
版权声明:本文引用http://blog.csdn.net/yinwenjie/article/details/494533031.概述
2021-02-16 13:34:23
685
1
原创 Go协程池设计思路(Task-Job-Worker)
1. 铺垫:Go 的接收器Receiver在go语言中,没有类的概念,但是可以给类型(结构体,自定义类型)定义方法。所谓方法就是定义了接受者的函数。接受者定义在func关键字和函数名之间。可以理解成为结构体定义函数方法,类似于C++中的类方法。type Person struct { name string age int}func (p Person) say()...
2020-04-13 00:18:24
1417
1
原创 Go协程与协程池
1. Golang协程golang和其它语言最大区别莫过于goroutine,也就是go的协程,example如下:package mainimport "fmt"import "time"func go_worker(name string) { for i:=0; i<10; i++ { fmt.Println("this is go worker :" , na...
2020-04-12 16:25:20
1900
原创 HashMap底层实现和原理
本文是在阅读知乎老刘作品后的整理。内容基于JDK1.7进行分析,1.8做的改动文章末尾进行讲解。1. 基本要义1.1 概述Hashmap在Map派生中的位置HashMap基于Map接口实现,元素以键值对的方式存储,并且允许使用null键和null值,因为key不允许重复,因此只能有一个键为null,另外HashMap不能保...
2020-04-05 23:52:30
2117
1
原创 获取keras中间层输出、模型保存与加载
1. 获取keras中间层输出# model summary and plotimport kerasfrom keras.models import Modelfrom keras.utils import plot_modelDocEncoder.summary()DocEncoder.plot_model()model.summary()model.plot_mod...
2020-03-29 22:52:18
2278
原创 常见回归和分类损失函数比较
文章转自知乎作者wdmad,更多内容建议阅读原文:https://zhuanlan.zhihu.com/p/36431289本博文属于阅读笔记,融合了个人观点。1. 损失函数损失函数的一般表示为L(y,f(x)),用以衡量真实值 y和预测值 f(x)之间不一致的程度,一般越小越好。为了便于不同损失函数的比较,常将其表示为单变量的函数,在回归问题中这个变量为[y-f(x)] :残差表...
2020-03-29 21:45:45
5748
2
原创 特征共线性问题
多重共线性是使用线性回归算法时经常要面对的一个问题。在其他算法中,例如决策树或者朴素贝叶斯,前者的建模过程时逐渐递进,每次都只有一个变量参与,这种机制含有抗多重共线性干扰的功能;后者假设变量之间是相互独立的。但对于回归算法来说,都要同时考虑多个预测因子,因此多重共线性不可避免。多重共线性(Multicollinearity)是指线性回归模型中的自变量之间由于存在高度相关关系而使模型的权重参数估...
2020-03-13 18:27:22
4197
转载 NDCG:推荐系统/搜索评价指标
本文转载自【胖喵】博主,详细请看https://www.cnblogs.com/by-dream/p/9403984.html 1. CG:累计增益CG,cumulative gain,只考虑到了相关性的关联程度,没有考虑到位置的因素。它是一个搜素结果相关性分数的总和。指定位置p上的CG为:reli代表i这个位置上的相关度。举例:假设搜索“篮球”结果,最理想的结果是:B1、B...
2020-03-07 16:17:43
3804
转载 Redis批量操作详解及性能分析
通过mget批量执行指令可以节约网络连接和数据传输开销,在高并发场景下可以节约大量系统资源。本文中,我们更进一步,比较一下redis提供的几种批量执行指令的性能。1.为什么需要批量执行redis指令众所周知,Redis协议采取的是客户端-服务器方式,即在一次round trip中,客户端发送一条指令,服务端解析指令并执行,然后向客户端返回结果。这是一种典型的tcp交互方式。粗略的分,...
2020-01-11 17:33:21
3387
2
原创 golang中的flag模块小结
1. flag常用函数无论是c语言还是golang语言或是其他语言,启动应用程序时都可以带一些参数,然后系统根据传入的参数进行特点的工作。如:./main -mode online -model bert_ch. 在Go中可以方便地使用flag模块进行命令行参数解析。// 解析字符串type string stringfunc String(name string, value st...
2020-01-08 21:59:17
1449
原创 SQL小结
1. SQL模糊查询like: 效率低,容易全盘扫描# 查找Name中包含字符'M'的数据select ename from table where ename like '%M%'# 查找Name中第二个字母为'M'的数据select ename from table where ename like '_M%'instr(str, substr) / locate(subst...
2020-01-05 18:10:18
1283
2
原创 Java中恒等条件判断:“equals”和“==”
1. 起因:字符串恒等判断//String is reference typeString str1 = new String("hello");String str2 = new String("hello");System.out.println(str1==str2);// falseSystem.out.println(str1.equals(str2));// tru...
2019-11-27 19:36:02
1519
1
原创 OCR-PIL.Image与Base64 String的互相转换
1. 基本环境py2: python2.7.13 py3: python3.6.2 PIL: pip(2/3) install pillow, PIL库已不再维护,而pillow是PIL的一个分支,如今已超越PIL2.Convert PIL.Image to Base64 Stringpy2 :先使用CStringIO.StringIO把图片内容转为二进制流,再进行base64编码...
2019-11-14 10:08:31
2163
原创 基于bert模型的文本分类研究:“Predict the Happiness”挑战
1. 前言在2018年10月,Google发布了新的语言表示模型BERT-“Bidirectional Encoder Representations from Transformers”。根据他们的论文所言,在文本分类、实体识别、问答系统等广泛的自然语言处理任务上取得了最新的成果。2017年12月,参加了Hackerreath的一个挑战“Predict the Happiness”。在这...
2019-11-03 21:30:16
2097
原创 faiss(2):理解product quantization算法
近几年,深度学习技术被广泛用于图像识别、语音识别、自然语言处理等领域,能够把每个实体(图像、语音、文本)转换为对应的embedding向量。如这里千人千面智能淘宝店铺背后的算法研究登陆人工智能顶级会议AAAI 2017。而对于推荐、搜索或者广告投放问题,都可以描述为从大规模候选中给用户提供有限的展现结果。那么,这里就会涉及到向量检索的问题。向量检索最简单的想法是暴力穷举法,如果全部实体的个数是...
2019-11-03 14:02:07
4828
1
原创 faiss(1):简介 安装 与 原理
1. 简介Faiss是Facebook AI团队开源的针对聚类和相似性搜索库,为稠密向量提供高效相似度搜索和聚类,支持十亿级别向量的搜索,是目前最为成熟的近似近邻搜索库。它包含多种搜索任意大小向量集(备注:向量集大小由RAM内存决定)的算法,以及用于算法评估和参数调整的支持代码。Faiss用C++编写,并提供与Numpy完美衔接的Python接口。除此以外,对一些核心算法提供了GPU实现。...
2019-11-03 13:02:23
2663
原创 热词抽取与话题发现系列(1):郝晓玲研究
1. 背景社区内容的数据挖掘方面主要可分为两大类:内容关联挖掘和用户关系挖掘, 热词/热点话题发现属于社区内容挖掘范畴,是指从大量的UGC文本中检测出用户广泛讨论的话题。涉及两个关键性技术:中文分词技术,中文话题发现技术。中文分词算法主要分为两种:一是基于语言规则的方法,即计算机可以通过自然语言的语法、词性等内部规则分析出文本正确含义并分词,判断文本串是否成词主要依赖词库。 主要方法包括:...
2019-10-20 14:11:43
3940
原创 Spark写Redis+Spark资源配置总结
1. 起源于Error19/10/16 11:22:06 ERROR YarnClusterScheduler: Lost executor 28 on **********: Container marked as failed: container_********** on host: **********. Exit status: 137. Diagnostics: Contain...
2019-10-17 21:10:24
1647
转载 ABtest用于推荐系统性能衡量
1. 背景介绍无法衡量就无法优化,对于互联网产品而言,不仅是推荐系统,整个 app 系统的更新迭代必然需要建立一套度量衡,来把控整个流程优化的方向。而 ABtest 系统就是一个很好的进行变量控制和优化方向选取的工具,循环:衡量 - 发现 - 迭代 - 验证。所谓精细化迭代是一种建立在数据基础上的思维方式——用较少的成本获得较好的效果。无数据,不优化, 线上分流实验是进行推荐算法优化的必由之路...
2019-10-13 19:48:24
6261
原创 SQL中的distinct的使用方法
1. distinct含义与使用方法distinct用来查询不重复记录的条数,即用distinct来返回不重复字段的条数(count(distinct id)),其原因是distinct只能返回他的目标字段,而无法返回其他字段。注意事项distinct 【查询字段】,必须放在要查询字段的开头,即放在第一个参数; 只能在SELECT 语句中使用,不能在 INSERT, DELETE, U...
2019-10-13 19:19:23
125542
7
原创 [scala-spark]12. RDD行动操作
firstfirst返回RDD中的第一个元素,不排序。scala> var rdd1 = sc.makeRDD(Array(("A","1"),("B","2"),("C","3")),2)scala> rdd1.firstres1: (String, String) = (A,1)countcount返回RDD中的元素数量。scala> var rdd1...
2019-09-23 01:21:33
627
原创 [scala-spark]11. RDD控制操作
Spark可以将RDD持久化到内存或者磁盘,持久化到内存可以极大的提高迭代计算以及计算模型之间的数据共享,一般情况下,执行节点60%内存用于缓存数据,剩下40%用于运行任务。Spark使用persist、cache进行操作持久化,其中cache是persist的特例。cache():RDD[T] persist():RDD[T] persist(level:StorageLevel):RD...
2019-09-23 01:11:33
427
原创 [scala-spark]10. RDD转换操作
RDD提供了一组非常丰富的操作来操作数据,如:map,flatMap,filter等转换操作,以及SaveAsTextFile,conutByKey等行动操作。这里仅仅综述了转换操作。mapmap是对RDD中的每一个元素都执行一个指定的函数来产生一个新的RDD,RDD之间的元素是一对一的关系。val rdd1: RDD[Int] = sc.parallelize(1 to 9, 3)...
2019-09-23 01:05:13
1654
转载 [scala-spark]9. RDD创建操作
1.从集合创建RDDparallelizedef parallelize[T](seq: Seq[T], numSlices: Int = defaultParallelism)(implicit arg0: ClassTag[T]): RDD[T]目的:从一个Seq集合创建RDD参数1:Seq集合,必须参数2:分区数,默认为该Application分配到的资源的CPU核数s...
2019-09-23 00:28:50
1175
原创 [scala-spark]8. RDD的实现和编程接口
1. RDD的实现作业调度当对RDD执行“转换操作”时,调度器(DGAScheduler)会根据RDD的血统来构建由若干调度阶段(State)组成的有向无环图(DAG),每个调度阶段包含尽可能多的连续“窄依赖”转换。调度器按照有向无环图顺序进行计算,并最终得到目标RDD。调度器(TaskScheduler)向各节点分配任务采用延时调度机制并根据数据存储位置来确定(数据本地性:移动计算而非...
2019-09-23 00:18:13
366
原创 [scala-spark]7. list 与 map
1. listScala 语言中提供的数组是用来存储固定大小的同类型元素,数组对于每一门编辑应语言来说都是重要的数据结构之一。声明数组变量并不是声明 number0、number1、...、number99 一个个单独的变量,而是声明一个就像 numbers 这样的变量,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来表示一个个单独的变量。数组中某个指定...
2019-09-22 23:48:18
1171
原创 [scala-spark]6. 继承与特质trait
1. 继承定义抽象类abstract class Element{ def contents:Array[String]}抽象类的方法没有实现,抽象类的类本身必须被abstract修饰。而方法只要没有实现,它就是抽象的,不需要加abstract。定义无参方法abstract class Element{ def contents:Array[String] def...
2019-09-22 23:31:00
707
原创 [scala-spark]5. 伴生类和伴生对象
单例对象与类同名时,这个单例对象被称为这个类的伴生对象,而这个类被称为这个单例对象的伴生类。伴生类和伴生对象要在同一个源文件中定义,伴生对象和伴生类可以互相访问其私有成员。不与伴生类同名的单例对象称为孤立对象。(弥补了Scala中缺少static关键字的缺陷,可以与java无缝对接)import scala.collection.mutable.Map class ChecksumAcc...
2019-09-22 23:15:12
787
原创 [scala-spark]4. 函数式编程
1. 几个概念说明在Scala中,方法与函数几乎可以等同(定义 使用 运行机制),只是函数的使用方法更加灵活多样 函数式编程是从编程方式的角度来谈的。函数式编程把函数当成一等公民,充分利用函数、支持函数的多种使用方式(调用)。既可以作为函数的参数使用,也可以将函数赋值给一个变量;此外函数的创建不用依赖类或者对象,而在Java中,函数的创建需要依赖类/抽象类或者接口package com....
2019-09-22 22:57:08
506
原创 [scala-spark]3. 变量 数据类型 分支与循环
1. 变量定义与初始化package com.lineshen.chapter2 object variable { def main(args: Array[String]): Unit = { val age: Int = 10 val sal: Double = 10.9 val name: String = "lienshen" val isP...
2019-09-22 20:27:53
402
原创 [scala-spark]2. Scala运行原理与源码查看
运行原理韩顺平查看源码package com.lineshen.chapter1object lookSourceCode { def main(args: Array[String]): Unit = { val arr = new Array[String](10) for (item <- arr){ println("item ...
2019-09-22 17:28:54
580
原创 [scala-spark]1. Spark vs Hadoop 及 基础
1. Spark与Hadoop2. MapReduce的基本计算过程与之相对比的是Spark往往在一个内存的物理节点完成计算(主要用内存,Shuffle的时候也用到磁盘)。很多操作,比如说单纯的map操作,没有reduce操作;或者Filter类的操作,都可以基于内存进行计算。MR的计算模型相比较,非常固定,而且死板。必须基于磁盘,以及大量的网络传输。所以,spark的速度...
2019-09-22 11:12:56
349
Python+OpenCV实现Selective Search算法
2018-10-29
英伟达深度神经网络加速库 与 matconvnet配套使用 (v5.1)
2018-07-11
21个项目玩转深度学习
2018-06-15
2-D and 3-D Image registration 图像配准
2016-07-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人