自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 特征建模之FiBiNet

推荐领经典CTR模型

2023-03-19 22:55:47 464

原创 何谓Dropout正则化

一、dropout(随机失活)的用处  当你的网络存在过拟合现象时,可以考虑使用dropout正则化来处理。二、dropout的做法  假设下图中左边的网络存在过拟合,dropout的做法就是对于网络中的每一层,设置一个概率值p,p表示对于该层的任一结点而言,保留它的概率为p,删除它的概率为1-p。假设每一层的p为0.5,则任何一个结点有50%的概率被删除,也就是网络中有接近一半的结点会被删除,同时删除网络图中对应的连线。因此使用dropout之后,我们得到了一个更加精简的网络模型。

2020-08-05 14:28:25 3011 2

原创 L1正则化与L2正则化

【注】部分图片来源于吴恩达老师课程。一、正则化使用场景  如果你的网络过度拟合了数据,即存在高方差问题,那么首先应该想到正则化。二、正则化分类  分为L1正则化和L2正则化两种。首先,我们假定网络中原本的损失函数为:   其中,w为网络的权重值,b为偏置值。  添加L1正则化后损失函数的形式可以表示为:  即在最后添加了权重绝对值的和。 其中,λ是正则化参数。添加L2正则化后损失函数的形式可以表示为:  即在最后添加了权重的平方和。【注】在避免过拟合这一情况下,L2

2020-08-04 23:22:20 701

原创 偏差、方差、欠拟合、过拟合

【注】:图中部分图片来源于吴恩达老师的深度学习课程。一、理解偏差(bias)和方差(variance)  任何一个机器学习/深度学习的研究人员都应该理解bias和variance。   假设我们有一个只含有x1和x2两维特征的数据集,如下图:  (1)如果我们给这个数据集拟合一条直线,得到一个简单的逻辑回归拟合,但是并没有很好的拟合数据,这就是 high bias的情况,称之为欠拟合(underfitting)。  (2)如果给这个数据集拟合一个非常复杂的分类器,如下图最右所示,尽管看

2020-08-04 23:01:36 746

原创 如何划分训练集、验证集、测试集

一、数据的划分及各部分的作用  在机器学习、深度学习领域,我们通常会将数据分为训练集、验证集和测试集三部分。  训练集的目的是去训练不同的模型;  验证集则是去评估各个模型,选出最好的1或2个模型;  测试集则是最后测试一下选出的模型。测试集不是必须的!二、训练集/测试集/验证集的划分比例  当数据集规模较小时(如100、1000、10000,可以理解为规模小于百万时),一般会采用传统的划分方法,即按照:  方式一:将训练集和测试集按照70%、30%的比例划分得到,然后从训练

2020-08-04 22:47:19 14948 4

原创 ValueError: some of the strides of a given numpy array are negative. This is currently not……

一、错误描述  训练数据集时,写完数据增强的代码后,训练时出现了如下的报错:  数据增强的代码如下:pilimg_list = [Image.open(path) for path in path_list] # path_list是数据存储路径if self.contrast: p = np.random.uniform(0.5, 2) pilimg_list = [ImageEnhance.Contrast(pil_img).enhance(p)

2020-08-04 13:53:30 2127 2

原创 LeetCode刷题——894. 所有可能的满二叉树

一、原题链接  [所有可能的满二叉树](https://leetcode-cn.com/problems/all-possible-full-binary-trees/)二、题解   由题目描述可知,一个满二叉树的子树一定也是一个满二叉树。假定函数FBT(N)返回包含N个结点的所有可能满二叉树的数量,则容易推导出以下公式:   FBT(N) = 1 + FBT(x) + FBT(N-1-x)。    上述式子中,FBT(x)表示其左子树若含有x个结点时,能组成的所有的满二叉树的数目,FB

2020-07-22 10:51:38 364

原创 Leetcode刷题——437. 路径总和Ⅲ

一、原题链接  [437.路径总和Ⅲ](https://leetcode-cn.com/problems/path-sum-iii/)二、解题思路  总体而言,解这道题目是利用前缀和的思想。所谓前缀和,就是指在一条路径上的有某个元素A,A之前所有元素的和(包括A),称之为前缀和。  路径上存在元素A和B(A和B有前后关系),如果A和B的前缀和相等,那么我们可以推测出A、B之间的元素和为0;如果元素B的前缀和比A的前缀和多sum,则说明A、B之间的元素和为sum。  1、用栈迭

2020-07-21 23:38:10 265

原创 变形卷积在Ubuntu下的环境配置

一、DCN-V1的配置   使用变形卷积V1有两种方式:   1、通过自定义op的方式在自己的python环境里定义deform_conv这一op。定义op的.cpp以及.cu文件可以参考git项目: [mmdetection](https://github.com/open-mmlab/mmdetection)  2、包torchvision的 较新版本(大于等于0.6.0)中已经定义好变形卷积。首先通过`pip install torchvision`安装最新版本,之后在pycha

2020-07-20 21:46:40 1016 1

原创 linux下安装python3-dev

尝试直接pip install python3-dev会失败,可以执行以下两条命令: sudo apt-get install aptitude sudo aptitude install python3-dev

2020-07-20 21:21:16 5663

原创 Ubuntu16.04下安装cuda10.0

我在自己电脑上通过以下方式成功安装,记录以供参考。1:登录cuda官网 (https://developer.nvidia.com/cuda-10.0-download-archive) ,选择对应版本下载。2:禁用nonveau驱动(安装时已经禁用)3:切换到cuda的安装目录下,运行sudo sh cuda*.run(*号位置根据对应的cuda版本填写)  首先会显示用户许可证信息,按空格键直至进度条显示到100%然后按照提示一步步操作accept-n(driver,此前已安装过驱动)-y

2020-07-20 21:16:00 2571

原创 leetcode刷题——560、和为k的子数组(前缀和思想和哈希表)

一、原题链接  [和为k的子数组](https://leetcode-cn.com/problems/subarray-sum-equals-k/)二、思路  直接暴力遍历的话会超时。因此使用前缀和思想和哈希表结合的方式去解这道题。具体解释来说:  1、程序中定义前缀和数组prefix_sum,prefix_sum[i]用于记录数组nums[0]~nums[i]的和;  2、我们需要找到数组中和为k的连续子数组,用前缀和数组来解释的话就是:在数组中找是否存在下标i和j,i小于j,使得pr

2020-07-18 21:54:25 215

原创 leetcode刷题——路径总和2

相对于路径总和的不同就在于需要保存符合条件的路径上的值。基本思想仍然是使用深搜,代码如下:# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def p...

2020-07-17 19:59:43 177

原创 列表的+、+=、append、extend

一、+的用法 python里,‘+’用于连接同类型的数据。 下面的代码定义了列表a和c、元组b。a = [1,2,3]b = (4,5,6)c = ['s','f']d = a + be = a + c 当我们执行d=a+b时,因为a和b不是同一类型数据,因此会产生以下错误,由此可以看出,‘+’只能用于连接同一类型的数据。 d = a + bTypeError: can only concatenate list (...

2020-07-17 16:43:52 559

转载 【目标检测】RCNN详解

Girshick, Ross, et al. “Rich feature hierarchies for accurate object detection...

2020-07-08 12:33:07 477

原创 leetcode 901. 股票价格跨度(单调栈解法详解)

一、注如果您还不知道什么是单调栈;如果你想要了解leetcode中单调栈题目的汇总,可以看博主的这篇博客。 何谓单调栈?leetcode单调栈题目汇总二、原题原题链接 901. 股票价格跨度编写一个 StockSpanner 类,它收集某些股票的每日报价,并返回该股票当日价格的跨度。今天股票价格的跨度被定义为股票价格小于或等于今天价格的最大连续日数(从今天开始往回数,包括今天)。例如,如果未来7天股票的价格是 [100, 80, 60, 70, 60, 75, ...

2020-06-22 11:22:32 671

原创 leetcode503. 下一个更大元素Ⅱ(单调栈解法详解)

一、注如果您还不知道什么是单调栈;如果你想要了解leetcode中单调栈题目的汇总,可以看博主的这篇博客。 何谓单调栈?leetcode单调栈题目汇总二、原题原题链接 503. 下一个更大元素Ⅱ给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。来源:力扣(LeetCode)...

2020-06-22 09:31:58 431

原创 leetcode739. 每日温度(单调栈详解)

一、注如果您还不知道什么是单调栈;如果你想要了解leetcode中单调栈题目的汇总,可以看博主的这篇博客。 何谓单调栈?leetcode单调栈题目汇总二、原题原题链接 739. 每日温度请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该...

2020-06-22 09:26:38 489 1

原创 leetcode 496.下一个更大元素(单调栈解法)

一、注如果您还不知道什么是单调栈;如果你想要了解leetcode中单调栈题目的汇总,可以看博主的这篇博客。 何谓单调栈?leetcode单调栈题目汇总二、原题原题链接 496. 下一个更大元素 I 给定两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x...

2020-06-22 00:05:46 356

原创 何谓单调栈?leetcode单调栈题目汇总

一、单调栈 我们知道,栈是一种基本的数据结构,其最大的特点就是“先进后出”,因为栈中的元素只能在一端进行操作,所有的元素只能在栈顶进出。 普通的栈对于栈内的元素值没有任何要求。而单调栈不同,它要求栈内的元素具有单调性。 单增栈:栈内的元素从栈底到栈顶满足单调递增。 单减栈:栈内的元素从栈底到栈顶满足单调递减。 那么,单调栈有啥用呢?简单来说,单调栈在查找比当前元素更大(小)的下(前)一个元素上有奇效。二、...

2020-06-21 23:54:24 1412

原创 二分法介绍 与 leetcode 排列硬币的三种解法

一、定义 二分查找又称折半查找,在处理有序且可以通过下标对元素进行访问的序列时(如有序数组),二分法会有非常好的效果。二、思路 以在一长度为n的非递减数组A中查找是否有某元素K为例,二分查找的基本思路可以概括为: 1、定义好查找的边界left、right后,首先从中间位置mid开始查找 2、如果A[mid]的值等于K,说明已经找到该值,返回mid即可 3、如果A[mid]的值大于K,因为数组A是非递减的...

2020-06-21 11:49:43 1115

原创 leetcode刷题 —— 16.04 井字游戏与python中*和**的使用总结

一、原题 原题链接: https://leetcode-cn.com/problems/tic-tac-toe-lcci/二、解法 1、个人思路 看到这道题目后没有想到什么简单有效的方法,于是直接暴力求解:依次处理每一行、每一列以及两条对角线上的字符即可,代码如下:class Solution(object): def tictactoe(self, board): """ :type board: Lis...

2020-06-18 16:42:01 341

原创 leetcode刷题1144、 递减元素使数组呈锯齿状(暴力遍历)

一、原题 原题链接:https://leetcode-cn.com/problems/decrease-elements-to-make-array-zigzag/ 给你一个整数数组 nums,每次 操作 会从中选择一个元素并 将该元素的值减少 1。如果符合下列情况之一,则数组 A 就是锯齿数组: 每个偶数索引对应的元素都大于相邻的元素,即 A[0] > A[1] < A[2] > A[3] < A...

2020-06-18 16:29:35 496

原创 leetcode刷题: 1160、拼写单词 与 python的for-else使用

一、原题 原题链接:https://leetcode-cn.com/problems/find-words-that-can-be-formed-by-characters/ 描述: 给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。 注意:每次拼写(指拼写词汇表中的一个单词)时,chars 中的每个...

2020-06-12 21:24:25 239

原创 leetcode刷题:88 合并两个有序数组

一、原题 原题链接:https://leetcode-cn.com/problems/merge-sorted-array/ 给你两个有序整数数组nums1 和 nums2,请你将 nums2 合并到nums1中,使 nums1 成为一个有序数组。二、思路 解法一:归并排序 这种解法运用到了归并排序的思想:使用双指针同时遍历两个数组,比较指针指向元素的大小,将小的元素放到正确的位置即可。class Solution...

2020-06-12 17:06:47 311

原创 leetcode1051.高度检查器——python解法 + 计数排序

一、题目原题链接  学校在拍年度纪念照时,一般要求学生按照 非递减 的高度顺序排列。请你返回能让所有学生以 非递减 高度排列的最小必要移动人数。  注意,当一组学生被选中时,他们之间可以以任何可能的方式重新排序,而未被选中的学生应该保持不动。二、思路1.解法一:先排序,再遍历找不同  本题比较简单,看到示例后可知,我们只需将给定的List进行非递减排序得到新的List:target,之后同时遍历heights和target中的元素,若同一下标处两个List的元素不等,则计数器加一。参考代码如下:

2020-06-11 18:46:53 349

原创 leetcode刷题: 0~n-1中缺失的数字

题目一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。思路暴力法:遍历最简单的方法就是遍历一遍数组,找到不存在的数字。思路一是想着依次比较数组中相邻的两个数,如果nums[i]与num[i-1]的差大于1,那么缺少的数就一定是num[i]-1。同时还需要考虑第一个数是不是0以及是否缺少n的特殊情况。此时,代码的时间效率极低,88ms。class Solution: .

2020-06-10 16:37:55 1392 1

原创 tf.concat()的理解和使用

**tf.concat()的理解和使用一:原型concat(values, axis, name=“concat”)。简单理解即将传入的values(若干shape完全一样的N维张量)在指定的维度axis(0<= axis <= N-1)上进行拼接,并返回拼接后的张量。二:代码分析1:一维张量a = tf.constant([1,2])b = tf.constant([3...

2020-02-18 16:22:49 770

空空如也

空空如也

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

TA关注的人

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