- 博客(73)
- 收藏
- 关注
原创 Leetcode136,137,260 Single number系列
Leetcode Single Number系列Single number,只出现一次的数字,是很经典的算法问题,leetcode上目前有3道相关题目,分别是136,137和260.本文将分享这三道题的思路。136 只出现一次的数字本题是此类问题的原型题,对于刷题比较少的朋友本题也是一道“开脑洞”的题目。这道题 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。数组的元素只有一个只出现了一次,其余都出现了2次。如果直接暴力求解,能想到2种解法。
2020-06-23 20:35:40
190
原创 one of the variables needed for gradient computation has been modified by an inplace operation
本文主要讨论pytorch在训练时出现错误:Runtime Error:one of the variables needed for gradient computation has been modified by an inplace operation 的不同情况。对需要求导的Tensor使用了 inplace 操作inplace操作类似于a+=5即使用变量参与了运算,又修改了变量的值。这类问题在这里降解的比较清楚。比如一个张量a用于计算张量b,随后又对a重新赋值,但是使用b求解loss并反
2020-06-23 16:24:48
3122
4
原创 PyTorch 加载数据集PIL.Image和numpy相互转化出现 TypeError: Cannot handle this data type的问题
PyTorch 加载数据集PIL.Image和numpy相互转化出现 TypeError: Cannot handle this data type的问题pytorch 加载图片数据集通常会使用 PIL读入图片,进行一些预处理转化为Tensor并有dataloader加载进行训练或测试。有时候我们对图像的预处理要求较高,PIL库无法快捷的完成,常常会用numpy数据辅助完成。但是使用不当也会造成一些问题,例如:Traceback (most recent call last): File "trai
2020-06-22 17:40:05
8798
5
原创 LeetCode 115 Distinct Subsequences 不同子串
LeetCode 115 Distinct Subsequences 不同字串题目Given a string S and a string T, count the number of distinct subsequences of S which equals T.A subsequence of a string is a new string which is formed from the original string by deleting some (can be none) of
2020-06-10 17:25:02
280
原创 LeetCode 146 LRU缓存机制
题目描述运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果关键字 (key) 存在于缓存中,则获取关键字的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字/值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空间。进阶:你是否可以
2020-05-28 09:58:05
202
原创 力扣第190场周赛
力扣第190场周赛作为为数不多能全做出来的一次周赛,简单分析一下题目和思路吧。本次周赛链接位于:weekly-contest-190这次周赛跟往常一样,包括分数和难度递增的四道题:1· 检查单词是否为句中其他单词的前缀本题要求给一个字符串 sentence 作为句子并指定检索词为 searchWord ,其中句子由若干用 单个空格 分隔的单词组成请你检查检索词 searchWord 是否为句子 sentence 中任意单词的前缀。如果 searchWord 是某一个单词的前缀,则返回句子 s
2020-05-24 15:31:15
251
原创 LeetCode 5 最长回文子串
题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。例如:给定字符串 “babad”则最长回文子串为“bab” 或 “aba”解析这是一道经典问题,也有很经典的Manacher解法。根据回文串的定义,我们能直接想到的方法就是找到中心,向两侧扩展,找到回文部分的边界即可。这样我们可以枚举每一个字符作为中心,向两侧扩展找到以该字符为中心的回文子串,并返回其中最长的即可。要注意的是,回文字符串长度是奇数和偶数时,判断方法并不完全一致,这样可以写出“中心扩展
2020-05-21 21:20:30
171
原创 微软亚研院创研论坛CVPR2020分享会 圆桌会议 内容小记
微软亚研院创研论坛CVPR2020分享会 圆桌会议 内容小记今天观看了微软亚研院举办的 创研论坛 CVPR2020 论文分享会,分享会邀请了计算机视觉领域多个子领域的大佬们分享已发表的CVPR2020论文。除了论文分享外,还邀请了几位深耕CV领域多年的学界大佬进行了圆桌讨论。论文分享部分主要就 检测、多模态、机器学习、底层视觉、图像生成 几个方向,每个方向邀请了3-4位作者分享论文。这部分由于我也只是听了作者的介绍还没有认真阅读论文,暂时不讨论,后面精度过文章后再来分享。本文主要分享一下圆桌讨论时大佬们
2020-05-14 20:13:04
595
4
原创 括号相关题目 LeetCode 20 有效括号 LeetCode 32 最长有效括号子串
括号序列相关题目与括号序列有关的算法题目也较为常见,例如是否有效、有效深度、最长有效子序列等。这里对几道有代表性的题目做一下简单介绍。括号序列的有效性判断比如 LeetCode 20这里我们看到题目对于有效的定义,关键就在于正确的顺序和同类型括号闭合。自然而然我们想到可以用栈的数据结构完成,将左括号入栈,遇到右括号就查看栈顶元素是否是同类型左括号,如果是的话就可以认为这个左括号以正确顺序用同类右括号闭合了;否则就没有正确闭合,那这个字符串就不是有效的。代码如下:bool isValid(str
2020-05-09 17:43:18
425
原创 Windows Terminal 试用小结 - 安装、配置、特定目录启动等
Windows Terminal 简介Windows Terminal 是微软推出的Windows端新的命令行工具,相比于之前一直被吐槽丑的command 和 powershell,Windows Terminal更加“现代”,界面好看,使用方便。作为一款开源工具,repo位于Windows Terminal这里。当前(2020年5月初)版本为v0.11.1251.0,也是v1.0rc1,基本...
2020-05-06 10:09:38
3787
原创 二叉树的层序遍历、之字形打印问题
二叉树的层序遍历这是一道比较经典的问题,要求逐层遍历二叉树并打印节点,而且也有些变体。其实这不仅是一道考察对树形或图结构了解程度的问题,实现一个这样的函数其实能够帮助我们直观的打印一颗二叉树,在遇到复杂二叉树的问题时如果出现bug,也可以借助这种方式可视化出来调试。这个问题本身也有一些变体问题。如上图所示,这是一颗二叉树,我们以他为例讨论。1· 最直接的层序遍历简单的层序遍历只要从最上层...
2020-05-05 19:53:55
712
原创 剑指offer 51 数组中的逆序对
题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。例如:输入数组 [7,5,6,4]输出 5分析:数组中(7,5), (7,6), (7,4), (5,4), (6,4)均构成逆序对因此共有5个。分析逆序对定义为排在前面的数比后面的数要大组成的数对,换言之,如果过我们对数组排序,发生了交换顺序的情况就...
2020-04-24 20:44:29
195
原创 第185场力扣(LeetCode)周赛 “生成数组” 问题
抽时间做了一下第185场的力扣(LeetCode)周赛,最后一题“生成数组”问题,把自己绕进去了,绕了很久才想通,在这里给大家分享一下。题目描述首先题目位于生成数组这里,简要描述如下:给定了这么一个算法:在求最大值的时候计算最大值的更新次数 search_cost。题目要求给定3个正整数n, m, k,生成一个长度为n的数组arr,其中数组每个元素取值都满足 1≤arr[i]≤m,i∈[...
2020-04-19 20:57:27
637
原创 通过矩阵快速幂在O(logN)时间求斐波那契数列及其推广形式
通过矩阵快速幂在O(logN)时间求斐波那契数列及其推广形式1. 斐波那契数列这个数列非常经典了,递推公式为:f(n)=f(n−1)+f(n−2)f(n)=f(n-1)+f(n-2)f(n)=f(n−1)+f(n−2)前几项为:1, 2, 3, 5, 8, 13, 21, 34, 55…如果我们要求斐波那契数列的第n项,我们一般用到的是O(N)复杂度的解法,也即构造一个长度为n的数组,...
2020-04-17 09:40:18
799
原创 LeetCode 300 最长上升子序列
题目描述给定一个无序的整数数组,找到其中最长上升子序列的长度。例如:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。解析暴力解法本题很容易想到最暴力的解法,那就是找到所有的子序列,逐一判断是否是上升子序列,并记录长度,从而得到最长上升子序列的长度。显然,序列中每个元素都有“加入子序列”或“不加入”两种状...
2020-04-16 19:58:27
157
原创 PyTorch+TensorboardX 出现“Found more than one "run metadata" ”以及可视化多个模型graph的问题
Tensorboard是一个非常好用的深度学习可视化工具,能够将训练过程loss变化、模型结构等可视化显示,方便我们了解细节,在使用TensorFlow框架时经常用到。TensorboardX则是适用于PyTorch框架的可视化工具,使用方法基本类似。本文主要解决使用PyTorch和TensorboardX出现的一些问题。1. 出现“Found more than one “run metad...
2020-04-16 11:47:31
1237
原创 VSCode写python代码时遇到的 Module 'XXX' has no 'XXX' memberpylint(no-member)问题
VSCode作为目前可以说是最流行的代码编辑器,通过添加扩展,可以对各种语言的代码进行友好的编辑,包括错误提示、代码补全等等。但是在使用VSCode写Python代码时,常常遇到 Module ‘XXX’ has no ‘XXX’ memberpylint(no-member)的问题。我个人是在使用cv2和pytorch遇到较多,比如:Module ‘cv2’ has no ‘getGauss...
2020-03-17 10:54:45
3997
2
原创 LeetCode 42 接雨水 Trapping Rain Water
LeetCode 42 接雨水Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining.题目:本题输入一个由非负整数组成的数组,表示地面上若干柱子的高度,...
2020-03-07 21:06:34
238
原创 二维数组花式打印问题
本文讨论算法题中常见的二维数组、矩阵的打印问题1·矩阵从外到内螺旋打印顺时针从外到内螺旋打印矩阵,例如输入如下的矩阵:1 2 34 5 67 8 9打印1 2 3 6 9 8 7 4 5对于这样的问题,如果我们每个点逐个判断下一个打印哪个点,会比较麻烦。因此可以考虑每次确定一个范围,例如左上角(记为start)和右下角(记为end)的位置坐标,那么每次打印这两个点确定的矩阵的最外面...
2020-02-29 11:24:08
466
1
原创 LeetCode-289 生命游戏
LeetCode-289 生命游戏题目:According to the Wikipedia’s article: “The Game of Life, also known simply as Life, is a cellular automaton devised by the British mathematician John Horton Conway in 1970.”Give...
2020-01-16 20:55:55
341
原创 Python 赋值、深浅拷贝介绍与简要实现以及在数组扩展的潜在问题
本文主要讲解Python中的赋值操作符、深拷贝与浅拷贝问题,对比较简单场景下的深拷贝进行了实现,同时讨论了如自定义类以及Python使用乘号*进行数组扩展的情况下的拷贝情况
2020-01-14 22:03:33
229
原创 PyTorch 与 TensorboardX 的版本兼容性问题
1· PyTorch 与 TensorboardX 的版本兼容性问题在tensorflow的使用中,大家往往都会用tensorboard进行数据的可视化,例如模型结构、损失函数的变化等,实际上PyTorch也可以使用TensorboardX 进行可视化。PyTorch有自己的visdom模块实现可视化,但是从接口的方便、简介的角度来说,TensorboardX用起来更加容易。本文简要介绍一下自...
2020-01-10 21:49:42
19658
2
原创 剑指offer面试题 - 30 包含min函数的栈
包含min函数的栈题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min, push, pop的时间复杂度都是O(1)O(1)O(1)分析由于实现的是一个栈的数据结构,要求数据先进后出,如果我们对push进来的元素排序,显然就破坏了这一顺序;如果每次求最小值都遍历栈中所有元素,则min函数时间复杂度会为O(n)O(n)O(n).这一问题我们可...
2020-01-06 20:58:07
188
原创 pytorch 损失函数详解及自定义方法
pytorch 损失函数详解及自定义方法损失函数是机器学习与深度学习解决问题中非常重要的一部分,可以说,损失函数给出了问题的定义,也就是需要优化的目标:怎么样可以认为这个模型是否够好、怎样可以认为当前训练是否有效等。pytorch框架上手十分方便,也为我们定义了很多常用的损失函数。当然,面对特殊的应用场景或实际问题,往往也需要自行定义损失函数。本文首先介绍如何自定义损失函数,再选择一些常用或...
2019-12-30 14:57:52
4471
1
原创 BN层和Dropout在训练与测试时的差别以及实现细节
BN层和Dropout在训练与测试时的差别以及实现细节1·BN层介绍及测试训练的差别BN也即Batch Normalization,批规范化,是由谷歌的大佬们在2015年《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》提出的。文章指出,深度网络中每一层的输...
2019-12-26 22:29:06
8932
5
原创 Win10+vs2019+OpenCV4.1.2的配置
OpenCV4.1.2在win10系统及vs2019下的配置1·简介本文介绍如何在win10下使用visual studio 2019以及cmake3.16.1进行OpenCV4.1.2+OpenCV_contrib的配置,以及配置过程中常见的问题。OpenCV是一个开源的跨平台计算机视觉库,官方网址:https://opencv.org/2·下载及编译目前OpenCV在win10下的安...
2019-12-23 21:01:46
740
原创 剑指offer面试题 - 05 替换空格
替换空格题目描述请实现一个函数,把字符串中的每个空格替换成"%20"。例如,输入 “We are happy.”,输出“We%20are%20happy.”分析显然,最直观的解法就是从头到尾遍历输入字符串,遇到空格则进行替换,但是由于替换后的"%20"是3个字符,而原本的空格只有1个字符,替换过程中必然会出现需要将空格后的字符向后移动的情况。例如输入“We are happy.”进行第一个...
2019-12-17 19:43:21
155
原创 剑指offer面试题 - 04 二维数组中的查找
二维数组中的查找题目描述在一个二维数组中,每一行都按照从左至右递增的顺序排列,每一列都按照从上到下的顺序排列。请完成一个函数,输入这样一个二维数组和一个整数,判断数组中是否含有该整数。分析以如下所示的二维数组(3x4)为例。2 4 5 94 7 12 145 11 25 30本题显然有暴力解法,也即顺序遍历这个二维数组,判断是否存在目标数字,对于n*m的数组,其时间复杂度...
2019-12-16 18:56:12
237
原创 Pytorch 模型构建、训练、测试及预测
Pytorch 模型构建、训练、测试及预测本文以AlexNet识别手写数字为例,简要介绍如何使用pytorch构建网络模型,并进行训练、测试及预测所使用的环境:Ubuntu 19.04,python 3.7,pytorch 1.1.0,torchvision 0.3.01· Pytorch模型构建pytorch自定义网络模型较为简单,自定义class继承自(torch.nn.Module)...
2019-12-03 13:07:18
38420
7
原创 Pytorch数据集的加载与使用
Pytorch 数据集的加载使用Pytorch数据集通常使用 torch.util.data.Dataset 以及 torch.utils.data.DataLoader完成。对于图像数据集,torchvision.datasets提供了一种加载数据集的方法,通过torchvision.datasets.ImageFolder将根目录下图像加载为dataset,其效果是将根目录下的指定子目录内...
2019-11-28 17:18:59
1350
原创 深度神经网络常见激活函数及导数
常用激活函数及导数一、激活函数简介激活函数是深度神经网络的重要组成部分,其作用是对模型引入非线性表达与特性。神经网络通常由多层神经元组成,后一层的单个神经元可以表达为前层神经元的线性组合。显然,如果不引入非线性因素,深层神经网络也仅仅是输入的线性组合。激活函数将非线性的表达引入模型,对每个神经元,根据前层输出线性计算得到的数值进行非线性的映射,从而增大模型的表达性能。二、常见激活函数及导数...
2019-10-21 15:02:06
743
原创 Ubuntu系统Linux内核升级、降级
本文主要针对Ubuntu系统由于Linux内核版本的不兼容导致的问题,而需要对内核进行升级、降级所需的操作及步骤。首先,我所遇到的问题可以描述为:在更新了Ubuntu 19.04后,Linux内核升级至了5.0.0-13,而NVIDIA显卡驱动被迫升级至了418以上,导致tensorflow(版本1.13.0)在运行tf.Session()语句时显卡会卡住,无法继续运行,甚至连SSH都会卡住无法...
2019-05-06 10:58:27
9912
1
原创 关于import matplotlib.pyplot as plt的多种报错解决
本文针对由于版本、依赖库等造成的若干import matplotlib.pyplot as plt语句报错问题。操作系统:win10Python版本:3.7.0matplotlib.pyplot 是常见的可视化工具之一,风格与MATLAB类似,可以方便的绘制图像、展示结果。这一工具的使用需要在代码中执行:import matplotlib.pyplot as plt实际由于版本、依赖库等...
2018-12-13 20:22:46
74092
14
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅