自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

转载 编辑距离

下面来分析下题目规定的三个操作:添加,删除,替换。i,j分别为word1和word2的长度,从最后一位开始操作。假设word1[i]和word2[j](此处i = j)分别为:michaelab和michaelxy如果b=y, 那么:dis[i][j] = dis[i-1][j-1]。如果b!=y,那么:(1) 添加:也就是在michaelab后面添加一个y,那么word1就变成了mich...

2019-06-27 16:25:11 166

转载 资源整理

1.python--re(模糊匹配)https://www.cnblogs.com/Meanwey/p/9741334.html2.Source code for sympy.geometry.linefrom sympy.geometry.line import Line, Segmenthttps://docs.sympy.org/0.7.5/_modules/sympy...

2019-06-21 13:45:36 455

原创 模式识别课堂笔记——优化函数总结

1、SGD随机梯度下降是最原始的优化函数优点:算法收敛速度快(在Batch Gradient Descent算法中, 每轮会计算很多相似样本的梯度, 这部分是冗余的) 可以在线更新 有几率跳出一个比较差的局部最优而收敛到一个更好的局部最优甚至是全局最优缺点:容易收敛到局部最优,并且容易被困在鞍点2、AdagradAdagrad算法能够在训练中自动的对learning...

2019-04-15 08:56:46 314

原创 二叉树

1、验证二叉搜索树https://leetcode-cn.com/problems/validate-binary-search-tree/description/方法1:中序遍历,看遍历的数组是否有序。class Solution: def isValidBST(self, root): """ :type root: TreeNode ...

2018-12-09 19:46:17 148

原创 动态规划

63.不同路径 IIhttps://leetcode-cn.com/problems/unique-paths-ii/description/class Solution: def uniquePathsWithObstacles(self, obstacleGrid): """ :type obstacleGrid: List[List[int]...

2018-12-05 20:06:13 145

转载 Batch Normalization 原理

Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift机器学习领域有个很重要的假设:独立同分布假设,就是假设训练数据和测试数据是满足相同分布的,这是通过训练数据获得的模型能够在测试集获得好的效果的一个基本保障。而实际情况往往是测试集和训练集分布不相同,即训练数据的领...

2018-12-03 14:33:51 431

原创 二维数组查找python

题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。def find_k(array,k): if not nums: return False arr = np.array(nums) while arr.size:...

2018-11-30 11:28:51 200

原创 快排思想与python实现

快排思想:分别从初始序列两端开始“探测”。先从右往左找一个小于6的数,再从左往右找一个大于6的数,然后交换他们。不占用额外的空间。如果选取最左边的数arr[left]作为基准数,那么先从右边开始可保证i,j在相遇时,相遇数是小于基准数的(从右边走,遇到小于基准数才停下来),交换之后temp所在位置的左边都小于temp。但先从左边开始,相遇数是大于基准数的,无法满足temp左边的数都小于它。所以...

2018-11-30 11:13:27 274

原创 哈希表

直接查询关键字,不用像数组那样需要取下标。解决冲突的方法:拉链法list(列表,可重复,插入O(1),查找O(n))map(映射):Python中的dict字典,用哈希表存储。set:集合,不允许重复,哈希表或者树实现,查找O(1)或O(logN)。哈希表查找速度快,但是二叉树有序排列。leetcode题目:1、有效的字母异位词https://leetcode-cn.c...

2018-11-29 14:49:38 165

原创 优先队列

优先队列可以根据设定的条件输出,如出现次数,数值大小等。其实现机制主要有两种:一. 堆 Heap(二叉堆Binary,binomial,fibonacci)维基百科查各种堆的效率小顶堆,大顶堆二. 二叉搜索树leetcode 相关题目:1、实时判断数据流中第k大元素https://leetcode-cn.com/problems/kth-largest-element-...

2018-11-29 10:11:44 115

原创 leetcode 堆栈

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。https://leetcode-cn.com/problems/valid-parentheses/description/class Solution(object): def isValid(self, s): """ :type s: str ...

2018-11-26 11:16:51 171

原创 leetcode链表相关

1.反转链表https://leetcode-cn.com/problems/reverse-linked-list/description/思路:将每个结点的next链接到它的前驱结点,因此需要设置两个结点---当前结点和前驱结点,并在循环中更新。def reverseList(self,head): cur, prev = head, None while cur: cu...

2018-11-26 10:59:04 120

原创 模式识别课程笔记——梯度消失与激活函数

1、梯度消失的产生原因使用sigmoid函数作为激活函数时,靠近输出层的梯度较大,更新较快;靠近输入层的梯度较小,更新较慢。因此当靠近输出层的梯度更新完成时,靠近输入层的权重未得到充分更新,仍保持几乎随机的状态。靠近输入层的函数梯度小的原因: 偏导约等于变化量的比值,当激活函数是sigmoid函数时,输入变化量很大,所对应输出的变化量却很小。如此从最后的梯度向前依次传递,离输出...

2018-10-27 10:33:14 656

原创 Ubuntu18.04+RTX2080+cuda10+tensorflow

经历了两天的黑暗时光,终于把RTX2080成功装进了ubuntu中,mark一下。从一开始装系统开始,我的主板型号是华硕ROG STRIX B360-I GAMING,算是很新的板子了,也导致了各种不兼容问题,比如之前装了ubuntu16.04,在ubuntu下无线网卡不能用,window下和ubuntu下声卡都不能用,关机关不掉。换了ubuntu18.04这些问题都解决了,建议最新的主板还是...

2018-10-18 21:36:13 35917 32

原创 解决tf.train.MomentumOptimizer 发生NaN问题

之前一直用的的tensorflow的AdamOptimizer,由于想要复现下别人的论文,看到论文中的参数有momentum,因此需要用tf.train.MomentumOptimizer优化器,本来可以正常训练的代码再开始训练两步后就显示loss为NaN了。试了调整学习率和动量都没用。后来,到github上查了一下,发现有人提示修改如下.(参考链接https://github.com/tenso...

2018-10-11 14:49:18 5523 2

原创 笔试题笔记——集成学习boosting和bagging

一、什么是集成学习?集成学习通过构建并结合多个学习器来完成学习任务,集成学习的一般结构:先产生一组“个体学习器”,再用某种策略将它们结合起来。二、集成学习的分类根据个体学习器的生成方式,目前的集成学习方法大致可分为两大类,即个体学习器间存在强依赖关系、必须串行生成的序列化方法;以及个体学习器间不存在强依赖关系,可同时生成的并行化方法。前者的代表是Boosting,后者的代表是Bag...

2018-09-03 20:50:30 1775

转载 支持向量机(SVM)—— 软间隔与正则化

转自西瓜书《机器学习》在前面的讨论中,我们一直假设训练样本在样本空间或特征空间食线性可分的,即存在一个超平面能将不同类的样本完全划分开。然而,在现实任务中往往很难确定合适的核函数使得训练样本在特征空间中线性可分;退一步说,即便恰好找到了某个核函数使训练样本在特征空间中线性可分,也很难断定这个貌似线性可分的结果不是由于过拟合造成的。缓解该问题的一个方法是允许支持向量机在一些样本上出错,为此要引入“软...

2018-06-22 10:28:13 9418

原创 Deeplab笔记

Deeplab 是谷歌在FCN的基础上搞出来的。FCN为了得到一个更加dense的score map,将一张500x500的输入图像,直接在第一个卷积层上conv1_1加了一个100的padding,最终在fc7层勉强得到一个16x16的score map。Deeplab这里使用了一个非常优雅的做法:将VGG网络的pool4和pool5层的stride由原来的2改为了1,再加上 1 padding...

2018-06-15 16:51:03 20638

转载 支持向量机(SVM)3 —— 核函数

转自西瓜书《机器学习》在前面的讨论中,我们假设训练样本是线性可分的,即存在一个划分超平面将训练样本正确分类。然而在现实生活中,原始样本空间内也许并不存在一个能正确划分两类样本的超平面。例如下图中的“异或”问题就不是线性可分的。对这样的问题,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。例如在上图中,若将原始的二维空间映射到一个合适的三维空间,就能找到一个合适的划分...

2018-06-15 11:00:20 2171

原创 合并K个排序链表 python3

合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def mergeK...

2018-06-14 21:32:20 2376

转载 支持向量机(SVM)——对偶问题

转自西瓜书《机器学习》上节我们介绍了支持向量机的基本型及其推导过程,这节我们对基本型求解。上节我们推导的模型为我们希望求解上式来得到大间隔划分超平面所对应的模型其中w,b是模型参数,注意到式(1)本身是一个凸二次规划问题。能直接用现成的优化计算包求解,但我们可以有更高效的方法。简单介绍一下凸二次规划,转自博客二次规划(quadratic programming)二次规划是指,带有二次型目标函数和约...

2018-06-14 12:40:39 10768

原创 读写tfreord文件——矩阵的存储和读取

先贴出常规的读写terecord文件的代码,按分类好的文件夹读取图片,并以图片所在的文件夹作为其对应的标签。import os import tensorflow as tf from PIL import Image #注意Image,后面会用到IMAGE_SIZE = 224#%%def _int64_feature(value): return tf.train...

2018-06-10 18:36:52 1268 3

转载 支持向量机(SVM)——间隔与支持向量

西瓜书笔记分类学习最基本的思想是基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开,但能将训练样本划分的超平面可能有很多,我们需要指导对训练样本局部扰动“容忍”性最好的那个,即通过这个划分超平面所产生的分类结果是最鲁棒的,对未见示例的泛化能力最强。在样本空间中,划分超平面描述为:其中:为法向量,决定了超平面的方向;b为位移项,决定了超平面与原点之间的距离。显然,划分超平面可被法向量w...

2018-06-07 12:50:46 2022

原创 leetcode python 合并两个有序链表

# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def mergeTwoLists(self, l1, l2): ""...

2018-06-06 22:06:08 266

原创 python遍历文件夹中的文件

file_dir = 'MerchData/'filenames = []for root, dirs,files in os.walk(file_dir): for file in files: print (os.path.join(root,file)) for name in dirs: print (os.path.join...

2018-06-05 19:26:28 1031

原创 金字塔池化笔记

原文为 Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition(SPP)1、解决的问题金字塔池化主要是为了解决卷积网络输入图像尺寸必须一致的问题,原文中还说实验结果表明其对防止过拟合也有效果,能提高分类网络的准确率。2、实现思路在卷积网络中,卷积层和池化层可以对任意大小的图像卷积,只有全连接层对图像...

2018-05-28 19:10:52 964

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除