- 博客(212)
- 资源 (22)
- 问答 (1)
- 收藏
- 关注
原创 处理文本数据的一些思路
文本是最常用的序列数据之一,可以理解为字符序列或单词序列,但最常见的是单词级处理。深度学习序列处理模型都可以根据文本生成基本形式的自然语言理解,并可用于文档分类、情感分析、作者识别甚至问答(QA,在有限的语境下)等应用。当然,目前我所接触的这些深度学习模型都没有像人类一样真正地理解文本,而只是映射出书面语言的统计结构,但这足以解决许多简单的文本任务。
2020-07-21 12:54:17
1845
原创 RNN的一些高级用法-以温度预测问题为例
RNN的神奇用的人都说话,不过在使用RNN的时候,还是需要知道一些技巧,有利于我们实现更符合预期的模型,本文将会介绍以下三种技巧。循环dropout(recurrent dropout)。这是一种特殊的内置方法,在循环层中使用dropout 来降低过拟合。堆叠循环层(stacking recurrent layers)。这会提高网络的表示能力(代价是更高的计算负 荷)。双向循环层(bidirectional recurrent layer)。将相同的信息以不同的方式呈现给循环网
2020-07-21 12:33:35
7320
4
原创 卷积神经网络实现数字识别
卷积神经网络接收形状为 (image_height, image_width, image_channels) 的输入张量(不包括批量维度)。本例中设置卷积神经网络处理大小为 (28, 28, 1) 的输入张量, 这正是 MNIST 图像的格式。我们向第一层传入参数 input_shape=(28, 28, 1) 来完成此设置。 我们来看一下目前卷积神经网络的架构。
2020-07-18 22:12:07
2882
原创 基于TensorFlow实现预测房价--回归问题
分类问题的目标是预测输入数据点所对应的单一离散的标签。另一种常见的机器学习问题是回归问题,它预测一个连续值而不是离散的标签,例如,根据气象数据 预测明天的气温,或者根据软件说明书预测完成软件项目所需要的时间。
2020-07-17 17:46:17
1886
原创 新闻分类--多分类问题,使用TensorFlow实现
构建一个网络,将路透社新闻划分为46 个互斥的主题。因为有多个类别,所以 这是多分类(multiclass classification)问题的一个例子。因为每个数据点只能划分到一个类别, 所以更具体地说,这是单标签、多分类(single-label, multiclass classification)问题的一个例 子。如果每个数据点可以划分到多个类别(主题),那它就是一个多标签、多分类(multilabel, multiclass classification)问题。
2020-07-17 17:33:25
2784
原创 使用TensorFlow解决电影评论分类--二分类问题
二分类问题可能是应用最广泛的机器学习问题。在这个例子中,你将学习根据电影评论的 文字内容将其划分为正面或负面。本节使用IMDB 数据集,它包含来自互联网电影数据库(IMDB)的50 000 条严重两极分 化的评论。数据集被分为用于训练的 25 000 条评论与用于测试的 25 000 条评论,训练集和测试 集都包含 50% 的正面评论和 50% 的负面评论。再此之前,先说说相关的流程定义。相关代码基于TensorFlow实现,你也可以只用Keras实现,整个项目就是围绕Keras进行开发的。
2020-07-17 17:27:57
2167
原创 神经网络的相关数据表示 - 概念说明
数据存储在多维Numpy 数组中,也叫张量(tensor)。一般来说,当前所有机器学习系统都使用张量作为基本数据结构。张量对这个领域非常重要,重要到Google 的 TensorFlow 都以它来命名。那么什么是张量? 张量这一概念的核心在于,它是一个数据容器。它包含的数据几乎总是数值数据,因此它是数字的容器。你可能对矩阵很熟悉,它是二维张量。张量是矩阵向任意维度的推广(这里要特别提一下, 张量的维度(dimension)通常叫作轴(axis))。
2020-07-16 00:00:02
1340
原创 用三张图理解深度学习的工作原理
为了给出深度学习的定义并搞清楚深度学习与其他机器学习方法的区别,我们首先需要知道机器学习算法在做什么。我们有个大致的认识,给定包含预期结果的示例,机器学习将会发现执行一项数据处理任务的规则。
2020-07-15 22:42:07
2898
原创 统计学习方法的概括和补充
关于机器学习三要素,也有另外一种的解读:`模型,学习准则,优化算法`。这个定义比较接近代码。以Tensorflow为例。通常会定义一个网络(模型),定义Loss(学习准则),定义优化算法(Optimizer),然后开Session,不停的把数据带入用Opitmizer去最小化Loss
2020-07-08 22:22:48
1742
原创 HikariCP连接池各属性详解
HikariCP是由日本程序员开源的一个数据库连接池组件,代码非常轻量,并且速度非常的快。根据官方提供的数据,在i7,开启32个线程32个连接的情况下,进行随机数据库读写操作,HikariCP的速度是现在常用的C3P0数据库连接池的数百倍。在SpringBoot2.0中,官方默认也是使用的HikariCP作为数据库连接池,可见HikariCP连接池的目的就是为了极致的数据库连接性能体验。HikariCP优化机制相对于其他的数据库连接池,有着以下的优势
2020-06-22 17:47:50
4959
原创 聊一聊Spring Boot 中跨域场景
跨域有个的英文简称,叫做CORS,其全称叫做跨域资源共享(CORS) ,是一种机制。跨域的基本原理就是使用额外的 HTTP 头来告诉浏览器,让运行在一个 origin (domain) 上的 Web 应用被准许访问来自不同源服务器上的指定的资源。当一个资源从与该资源本身所在的服务器「不同的域、协议或端口」请求一个资源时,资源会发起一个「跨域 HTTP 请求」。
2020-06-22 17:28:03
759
原创 只出现一次的数算法题汇总
这篇文章用来总结一个系列的算法题,也就是找到元素数组中重复出现的元素或者只出现一次的元素。其实在讲解之前,如果之前有接触过这类的类的同学,应该知道解决这类题的方式不外乎用位运算来搞定。使用位运算来解决这一系列问题很有趣,这也是为什么我想着专门写一篇博文来记录的原因,废话不多说,咱们进入正文。
2020-05-20 14:11:18
1959
原创 一些通过数学分析解决的算法题汇总
写在前面如果觉得写得好,或者有所帮助,记得点个关注和点个赞,不胜感激!我发现最近经常会遇到一些需要通过数学分析去解决的问题,做的时候想着各种方法,然后看到题解,发现可以用数学分析的方式,找到非常快的解决办法,整个人就emmmmm了,所以这里开这篇博文,用来记录自己碰到的可以用数学分析的方式解决的算法问题,不断更新。“树根”相关问题“树根”在维基百科的定义如下:在数学中,数根(又称位数根或数字根Digital root)是自然数的一种性质,换句话说,每个自然数都有一个数根。数根是将一正整数的各个位数
2020-05-19 17:20:45
1425
原创 搜索二维矩阵(左右上下升序,寻找目标值)
数组从左到右和从上到下都是升序的,如果从右上角出发开始遍历呢?会发现每次都是向左数字会变小,向下数字会变大,有点和二分查找树相似。二分查找树的话,是向左数字变小,向右数字变大。所以我们可以把 target 和当前值比较。
2020-05-10 18:47:28
1320
原创 滑动窗口最大值问题
其实这里的话,我们需要先理解双向队列,这个是一个很有用的数据结构,他可以让我们在 $O(1)$ 的时间复杂度内,访问头部和尾部的节点。所以,我们可以使用双向队列来帮助我们,实现 $O(N)$ 时间复杂度内,得到结果。处理前 k 个元素,初始化双向队列。
2020-05-09 19:37:17
795
原创 二叉树的公共最近祖先问题
我们上面的第一直觉就是我们通过记录两个节点的路径,再来找公共祖先,但是其实我们在遍历的过程中,就可以通过记录当前祖先的方式,找到公共祖先。不过和上面的思路的遍历方式区别的地方在于,上面的思路是通过层次遍历,而这种方式是通过深度遍历。
2020-05-08 11:32:34
2037
原创 计算阶乘之后的零个数
我觉得吧,以后像这种纯粹就是进行数学分析的问题,我就要把它记录下来,这种问题给你时间让你去分析,可能就能分析出来,但是限定你时间让你解决,很容易卡住,所以遇到了就学习思路,然后以后如果碰到类似的问题,那么解决起来就非常迅速利落了。
2020-05-04 19:04:44
2395
1
原创 计算数字 1 的个数(小于等于 n 的非负整数中数字 1 出现的个数)
这个问题乍一看,我最开始以为是计算二进制位的1的个数(最近对二进制比较敏感,想啥问题都是先想着能不能二进制解决)。然后仔细看了问题之后才发现,其实就是计算十进制中1的个数。其实理解问题之后,感觉也不是很难,一个暴力计算就搞定,不过,光用暴力解决问题并不是我的风格,所以还要想着其他更有效的方式。这里记录这个问题,不是因为他有多难,而是这个问题其实是一个纯粹的数学问题,我们需要进行数学分析就可以很简单的实现出来并解决,而不是使用语言上的奇淫巧技。
2020-05-04 18:36:56
3257
2
原创 摩尔投票算法(Boyer-Moore Voting Algorithm)
给定一个数组A,其中含有 n 个元素,在数组A中出现超过 n/2 次的元素,也就是出现次数超过 n/2 的众数。现在的问题要求找到数组中是否存在这样的元素,其出现次数超过 n/2。现在本文就来讨论在线性复杂度下,计算成本最优的算法。
2020-05-03 18:45:49
1450
1
原创 不用找了,学习BM算法,这篇就够了(思路+详注代码)
为什么说循序渐进,是因为BM算法,在大多数情况下,表现的比KMP算法优秀,所以大部分时候,都当做KMP进阶的算法来学习。BM算法从模式串的尾部开始匹配,且拥有在最坏情况下 $O(N) $的时间复杂度。有数据表明,在实践中,比 KMP 算法的实际效能高,可以快大概 3-5 倍,很值得学习。在学习BM算法的时候,找了很多资料,也遇到了很多优秀的文章,不过目前还没有碰到即讲清楚了原理,又实现了代码的文章,java版的更是不容易找
2020-04-17 18:38:34
31072
16
原创 彻底理解AbstractQueuedSynchronizer(二)
在分析 Java 并发包 java.util.concurrent 源码的时候,少不了需要了解 AbstractQueuedSynchronizer(以下简写AQS)这个抽象类,因为它是 Java 并发包的基础工具类,是实现 ReentrantLock、CountDownLatch、Semaphore、FutureTask 等类的基础。
2020-04-16 20:15:52
617
原创 总结一下动态规划的思路
我相信只要是接触算法的同学,就一定会接触DP,也就是动态规划,虽然经常遇见动态规划相关的算法题,但是许多人还是有些畏惧,不过我相信只要你愿意静下来学习总结,看看这篇文章或者其他优秀的讲解文章,不管你之前是否害怕动态规划系列的问题,相信足以帮助你消除对动态规划算法的恐惧,因为动态规划其实就是套路中,寻求变数。只要有掌握了套路,就能灵活应对。
2020-04-15 16:32:21
5316
原创 解决更新升级python和pip版本后,不生效的问题
最近在更新我服务器上的python以及pip版本的时候,碰见了令人头痛的问题,就是我执行了升级指令之后,升级也正常的`Successfully Complete!`了,但是我用`python -V`或者`pip -V`查看版本的时候,发现还是原来的版本,没有变化,解决了半天才发现问题所在,这里就记录一下,能帮助有需要的人。
2020-04-14 17:57:27
13590
原创 把KMP匹配算法讲清楚
KMP算法是真的折磨我够呛的,记不清是大一还是大二的时候就接触了这个算法,当时研究的一知半解,然后就用起来了,顶多只能说是敲多了几遍,大致的结构流程能够写出来,然后就一直用了很久到现在。虽然使用的过程中一直有磕磕碰碰,但是够用所以就没有进行深究,知道前段时间,包括今天,莫名其妙遇到了许多使用KMP思想,并进行变种的算法思路,以及算法题的解法,我才终于下定决定要把KMP算法搞明白,写下这篇博文,尝试吃透讲明白KMP。
2020-04-14 17:25:53
2817
6
原创 彻底理解AbstractQueuedSynchronizer(一)
在分析 Java 并发包 java.util.concurrent 源码的时候,少不了需要了解 AbstractQueuedSynchronizer(以下简写AQS)这个抽象类,因为它是 Java 并发包的基础工具类,是实现 ReentrantLock、CountDownLatch、Semaphore、FutureTask 等类的基础。在分析 Java 并发包 java.util.concurrent 源码的时候,少不了需要了解 AbstractQueuedSynchronizer(以下简写AQS)这个抽象
2020-04-13 18:54:34
507
原创 单纯为了实用,创建线程的几种方法
原始的创建线程的方法有三种,分别是:继承 Thread 类、实现 Runnable 接口、实现 Callable 接口。当然还可以利用Future和FutureTask来获取返回值。
2020-04-12 20:20:34
424
原创 ReentrantLock你了解多少(结合Lock、AQS进行讲解)
本篇文章要讲的是`Lock` 接口,重点强调 `ReentrantLock` 类,相关的接口在JUC 包里面,自 JDK 5 起,Java 类库中新提供了 `java.util.concurrent` 包(通常简称为 JUC 包)。Java 中有两种对并发资源加锁的方式,除了 `synchronized` 之外(不清楚的可以查看我之前写过的一篇关于synchronize文章),还有本篇
2020-04-12 19:39:19
3691
原创 看完这篇恍然大悟,理解Java中的偏向锁,轻量级锁,重量级锁
锁的状态总共有四种:无锁状态、偏向锁、轻量级锁和重量级锁。随着锁的竞争,锁可以从偏向锁升级到轻量级锁,再升级的重量级锁(但是锁的升级是单向的,也就是说只能从低到高升级,不会出现锁的降级)
2020-04-11 16:54:42
13356
8
原创 你会算对象的大小么?不会的话就看看这篇文章吧
使用面向对象语言,离不开的就是对象,现在回过头来思考一下,真的了解所使用语言的对象么?我自己有点心虚,对于Java的对象,我了解的尚且还不够深入,对于一些底层的东西,还有待进一步了解学习。这一篇博文,来讲讲Java对象的大小,学习如何计算Java对象的大小。如果你想深入Java 对象的内存设计,以及在做内存优化时,需要知道每个对象占用的内存的大小,所以这一点还是很重要的,需要好好理解。要计算Java对象占用内存的大小,首先需要了解Java对象在内存中的实际存储方式和存储格式。
2020-04-10 18:49:31
7099
原创 带你理解 Trie 树(前缀树)
在计算机科学中,Trie,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值,只有叶子节点和部分内部节点所对应的键才有相关的值。Trie中的键通常是字符串,但也可以是其它的结构。Trie的算法可以很容易地修改为处理其它结构的有序序列,比如一串数字或者形状的排列。比如,Bitwise Trie中的
2020-04-10 16:50:39
885
原创 带你了解有向无环图和拓扑排序
在图论中,如果一个有向图无法从某个顶点出发经过若干条边回到该点,则这个图是一个有向无环图(DAG图)。而提到DAG,就差不多会联想到拓扑排序,拓扑排序是指由某个集合上的一个偏序得到该集合上的一个全序的操作。拓扑排序常用来确定一个依赖关系集中,事物发生的顺序。拓扑排序是对有向无环图的顶点的一种排序,它使得如果存在一条从顶点A到顶点B的路径,那么在排序中B出现在A的后面。DAG在区块链中得到很广泛的应用哦。
2020-04-09 19:19:42
5617
1
原创 聊一聊分支预测,思考为什么使用 if/else 语句会降低程序效率
在Stack Overflow上看到了这样的一个帖子,觉得挺值得学习的,这个帖子是关于讨论为什么处理排序数组比处理未排序数组快?看完后面的回答,然后得到了一个概念,就是“分支预测”,然后针对分支预测查看了许多资料和论文,觉得收获挺多的,所以写一篇博文记录一下。
2020-04-07 17:58:59
12611
原创 非常值得一看的HTTP文章,即基础又深入
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件,图片文件, 查询结果等)。这篇文章带你认识HTTP,包含了丰富的字段表,可以当做API手册,随时查阅。
2020-04-06 12:39:24
673
原创 看完这篇,有人问你synchronized 关键字就不要怂
Java 原生的有两种实现锁的机制,一种是通过底层实现的 synchronized 关键字,另一种是 Doug Lea 在 JDK1.5 实现的 java.util.concurrent 包中的 Lock 类。这两种方法一种是 Java 关键字,另一种是用对象的方式,两种都实现了并发状态下对公共资源的加锁。
2020-04-04 12:07:17
3770
原创 这篇能让你搞懂股票买卖系列问题
写在前面如果觉得写的还不错,有所收获,记得点个关注和点个赞哟,不胜感激。股票买卖的这个系列问题早在之前就在LeetCode就刷了一遍了,不过当时因为一些原因,没有总结成一篇博文。后面又陆陆续续遇到了类似的问题,总感觉股票系列问题的奇技淫巧太多了,平时用来学习和拓展完全是没有问题的,不过如果到了一些正式场合,一般不会想到那些巧妙的办法,怎么办呢?所以这一篇博文就打算稳扎稳打,通过较为详细的讲解,...
2020-04-03 12:02:23
769
原创 Java的几种时间类,你了解多少?
我们使用Java的时候,经常会用到的一个类就是时间类,但是很多时候我们只是匆匆而过,并没有深入去了解时间类。在我开发历程中,碰到了许多有关时间类的问题,所以今天抽空,把Java的时间类阐述总结一下,希望看完这篇的小伙伴能有所收获。本篇文章分四个部分讲,分别是 `Java 基础时间类`、`Java sql 时间类`、`Joda Time 时间类`、 `java.time 时间类`。
2020-04-02 23:56:58
9660
4
原创 打印Java数组你不知道的几种方式
在 Java 中,数组虽然是一个对象,但并未明确的定义这样一个类,因此也就没有覆盖 toString() 方法的机会。如果尝试直接打印数组的话,输出的结果并不是我们预期的结果。那有没有一些简单可行的方式呢?这个问题看起来挺简单的,打印数组谁不会呀,但是请你仔细想一下,你能够通过多少种方式打印,且哪种方式最优雅简洁呢?
2020-03-31 16:23:34
10984
原创 你想要的排序算法,都在这!
基数排序、计数排序、堆排序、希尔排序、快速排序、选择排序、插入排序、归并排序。最近写代码的时候用到堆排序解决一些问题,然后写的过程中发现有点手生,就想着记录一些,然后又琢磨着干脆直接整理一份排序的文章,附带对排序的分析以及实现代码,给自己练练手。
2020-03-31 11:09:33
523
1000道 互联网大厂Java工程师面试题(1)(1)(1).pdf
2020-04-03
JSTL包和standrad包
2018-01-29
Eclipse的Properties插件
2018-01-29
java API 1.8
2017-09-19
关于vs2010的使用问题,求助
2017-01-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅