自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 手写实现LRN局部响应归一化算子

针对batch里每一个图的后3维向量,[224, 224, d - depth_radius : d + depth_radius + 1],对它按照半径 depth_radius求每个图里的每个像素的平方,再把这2× depth_radius+1个平方过后的图片加起来,就得到了这个batch的sqr_sum。

2023-09-14 16:57:43 209

原创 卷积计算加速方法--slice卷积

slice卷积,每层分块的时候左边加上一些overlap,然后将卷积之后的结果slice一部分给右边的一块,保证他们的结果合并后和普通卷积结果一致,并且每层之间互不影响。

2023-06-21 15:57:50 869

原创 卷积计算加速方法--分块卷积

当卷积的参数量太大导致内存不够用时,考虑将一大块卷积分成多个小块分别进行卷积,相当于将原始输入分成几个小的输入经过同一组卷积核分别卷积,其中每块小的输入都是原始输入的子集,每块之间互不影响,最后将结果合并,实现分块卷积的输出结果与整个输入卷积后的结果完全一致,这种分块卷积的算法可以减小内存消耗同时大大提高运行效率。因此在分块的时候会有overlap的出现,并且这个overlap会随着层数的增加会累积,如下这个函数就是用来计算输入每块overlap的尺寸。

2023-06-19 13:57:44 1759

原创 optimizer.step()处报错:RuntimeError: Expected all tensors to be on the same device, but found cuda:0

pytorch在加载预训练模型续训时在optimizer.step()处报错:RuntimeError: Expected all tensors to be on the same device, but found cuda:0 and cpu!

2023-02-16 16:11:12 1534 2

原创 Pytorch自定义数据集模型完整训练流程

我们以kaggle竞赛中的猫狗大战数据集为例搭建Pytorch自定义数据集模型训练的完整流程。

2023-01-16 14:52:02 4145 6

原创 Docker打包本地环境为tar包给别人使用

Docker打包本地环境最近工作中需要跨部门协同合作,我的虚拟机上安装了很多包,这样一个环境运行我自己的代码都能正常使用,但是给别人使用会报缺少某些包的错误,而且让别人装的话容易装出问题,另外不同的人使用还要重新安装一遍依赖包,太麻烦了。所以,我们这边用docker镜像装好所有环境并且合入全部代码打包成docker镜像,别人就可以直接使用,省去很多麻烦的事情。做个记录。1. 从docker hub上拉取一个轻量化的镜像1.首先从docker hub上找一个适合别人虚拟机操作系统的docker镜像,

2021-11-22 19:05:27 14780

原创 面试智力题,1000瓶水,其中一瓶有毒,而且毒性无敌,稀释一亿倍毒性都不减,毒性的发作时间最长为1小时,请问怎样可以在两个小时之内找出哪瓶水有毒

面试遇到的一道智力题1000瓶水,其中一瓶有毒,而且毒性无敌,稀释一亿倍毒性都不减,毒性的发作时间最长为1小时,其中可能会在一小时内的任意时刻发作,但是最长时间是一小时,请问怎样可以在两个小时之内找出哪瓶水有毒。解法1、当时我的想法是二分法,1000瓶水先分成两份,一份500瓶,然后左右两个一半的500瓶水中每瓶取一滴混合起来喂给一只老鼠,如果左边的老鼠死了,就说明左边500瓶水中有一瓶是有毒的,反之,就是右边500瓶,然后再对其中500瓶水继续分成两半混合。如此下去,由于2^10 = 1024,也

2020-08-28 11:21:35 27730

原创 B站哔哩哔哩21届秋招算法岗笔试 假设货币系统包含面值1元、4元、16元、64元共计4种硬币,以及面值1024元的纸币。现在小明使用1024元的纸币购买了一件价值为N(0<N<=1024)的商品

哔哩哔哩21届秋招算法岗笔试题目描述:假设货币系统包含面值1元、4元、16元、64元共计4种硬币,以及面值1024元的纸币。现在小明使用1024元的纸币购买了一件价值为N(0<N<=1024)的商品,请问最少他会收到多少硬币?输入格式共一行,包含整数N。输出格式共一行,包含一个数,表示最少收到的硬币数。测试样例:输入200输出17样例解释:花200,需要找零824824 = 12 * 64 + 3 * 16 + 2 * 4解题思路采用动态规划的思路(a

2020-08-13 22:08:15 1306 2

原创 浪潮科技21届研发岗笔试 排石头

浪潮科技21届研发岗笔试石头的摆放位置题目描述:沙滩按照线型摆放着n个大小不一的球形石头,已知第i个石头的半径为ri,且不存在两个石头有相同的半径。为了使石头的摆放更加美观,现要求摆放的石头的半径从左往右依次递增。因此,需要对一些石头进行移动,每次操作可以选择一个石头,并把它放在剩下n−1个石头在最左边或最右边。问最少需要操作多少次才能将这n个石头的半径变成升序?输入描述:第一行一个整数n,表示石头的个数。(1 <= n <= 100000) 第二行n个整数,表示从左往右石头的半径r1

2020-08-03 21:54:55 812

原创 快手秋招面试,计算n阶乘末尾连续0的个数

快手面试题,计算n!末尾连续0的个数解题思路要求n的阶乘中末尾含有多少个0。由于n!数值会特别大,例如n=10,n!=3628800,那么n!末尾有两个0。直接计算n!的值显然不合适,因为n!数值太大,很容易溢出。所以我们可以这样考虑:两个大数字相乘,都可以拆分成多个质数相乘,而质数相乘结果尾数为0的,只可能是2*5。如果想到了这一点,那么就可以进一步想到:两个数相乘尾数0的个数其实就是依赖于2和5因子的个数。又因为每两个连续数字就会有一个因子2,个数非常充足,所以此时只需要关心5因子的个数就行了。

2020-08-01 22:31:36 236

原创 奇安信21届秋招算法岗笔试题 亲7数的个数

奇安信21秋招算法岗笔试题题目描述如果一个正整数可以被7整除,我们称之为亲7数,对于给出的一组个位数字,请找出使用所有的数字排列的数中的亲7数的个数。其中给出的个位数字数组中每一个都是不相关的,即使有重复的数字,如{1,1,2}排列出的整数位{112,121,112,121,211,211},亲7数为{112,112}共2个。输入:个位数字数组,数组有m个元素{x1,x2,x3…xm}(0<=xi<=9)输出:亲7的个数测试样例输入[1,1,2]输出2解题思路方法1:

2020-08-01 21:37:44 1466

原创 Python剑指offer 连续子数组的最大和

题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和,你会不会被他忽悠住?(子向量的长度至少是1)。时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C+

2020-07-29 20:39:43 174

原创 Python剑指offer 字符串的排列

题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则按字典序打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。解题思路1、定义一个辅助函数helper,函数先取定s中的一个元素,然后递归调用除这个元素之外的其他元素进行组合,最后把所有可能的组合添加进列表返

2020-07-29 20:08:58 148

原创 Python剑指offer 数组中重复的数字

数组中重复的数字题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M解题思路1、先判断边缘条件,如果数组为空,直接return False2、定义一个字典用来存放每个字符出现的次数。3、遍历数

2020-07-27 11:19:11 146

原创 Python剑指offer 第一个只出现一次的字符

第一个只出现一次的字符题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)。时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M解题思路可以先定义一个字典用来记录每个字符出现的次数,然后从字典里面找出第一个次数等于1的字符即可。1,定义一个字典dct,然后遍历字符串s,得到的字典dct就已经记录好了每个字符出现的次数。2,遍历字

2020-07-26 10:40:14 273

原创 Python剑指offer 删除链表中的重复节点

删除链表中的重复节点题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5。时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M解题思路1.设置一个虚拟头结点,设置两个指针,pre指向虚拟头结点,cur指向头结点。2.判断下一个节点的值和cur的值是否相等,若相等cur后移,直到下个节点的

2020-07-26 10:08:27 135

原创 Scikit-learn实现XGBoost算法

XGBoost算法XGBoost是陈天奇等人开发的一个开源机器学习项目,高效地实现了GBDT算法并进行了算法和工程上的许多改进,被广泛应用在Kaggle竞赛及其他许多机器学习竞赛中并取得了不错的成绩。• XGBoost的基学习器除了可以是CART(这个时候就是GBDT)也可以是线性分类器,而GBDT只能是CART。• XGBoost的目标函数的近似用了二阶泰勒展开,模型优化效果更好。• XGBoost在代价函数中加入了正则项,用于控制模型的复杂度(正则项的方式不同,如果你仔细点话,GBDT是一种类

2020-07-08 10:33:55 2318 3

原创 Python剑指offer 连续子数组的最大和

连续子数组的最大和题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和,你会不会被他忽悠住?(子向量的长度至少是1)。时间限制:Python 2秒 空间限制:

2020-07-07 22:29:19 151

原创 Python剑指offer 合并两个排序链表

合并两个排序链表题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M解题思路· 把pHead2往pHead1的中插。· 比较pHead2与pHead1的值:· 当pHead2值小等于pHead1值时往pHead1的前面插,并让pHead2指向下一个元素· 否则不进行插入,pHead1指向下一个结点。· 重复上述操作,直到有一个链表为空· 判断是哪个链表空了

2020-07-04 15:20:57 121

原创 Python剑指offer 链表的倒数第k个节点

链表的倒数第k个节点题目描述输入一个链表,输出该链表中倒数第k个结点。时间限制:Python 2秒 空间限制:Python 64M解题思路先做一个长度为 k 的尺子。给两个游标,初始时让它们都指向头节点,然后让前面那个游标先走 k 步,那么现在前面节点和后面节点的差值就是 k ,也就是说两个游标的差距是 k ,长度为 k 的尺子就做好了,下面再同时让两个游标一起走,当前面那个游标走到尾时,后面那个游标刚好就是倒数第 k 个节点了,这时输出这个值即可。# -*- coding:utf-8 -*-

2020-07-04 15:09:49 105

原创 Python剑指offer 栈的压入弹出序列

栈的压入弹出序列## 题目描述## 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)。

2020-07-04 14:58:31 155

原创 Python剑指offer 旋转数组的最小数字

旋转数组的最小数字题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 时间限制:Python 6秒 空间限制:Python 64M由旋转数组的定义可以知道,最小数字既要小于左边的数又要小于右边的数 。另外因为数组是非减排序的,所以右边的数正常状态下是一定大于左边的数,那么要

2020-07-04 12:03:47 2048

原创 Python剑指offer 用两个栈实现队列

用两个栈实现队列题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。时间限制:Python 2秒 空间限制:Python 64M首先初始化两个列表作为栈,一个用作输入,另一个用作输出,对于队列的push操作用input去接收,对于队列的pop操作,需要先把input里面的所有值都弹出添加到output中,再弹出output的最后一个,这样就实现了队列的先进先出原理。class Solution: def __init__(self):

2020-07-04 11:24:54 90

原创 Python剑指offer 二维数组的查找

二维数组的查找题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。时间限制:Python 2秒 空间限制:Python 64M由于这个二维数组的每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。那么可以知道每一行的最后一个数是最大的,每一列中下面的数比上面的大。所以我们先从右上角的那个元素找起,如果刚好等于target那么就找到

2020-07-04 11:16:31 108

原创 tensorflow2.0之卷积神经网络

tf.keras实现卷积神经网络Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。Keras可以很明确的定义了层的概念,反过来层与层之间的参数反倒是用户不需要关心的对象,所以构建神经网络的方法对于普通开发者来说,相对tensorflow,Keras更易上手。并且Keras也是tensorflow官方在tensorflow2.0开始极力推荐使用的。卷积神经网络(Convolutional Neural Ne

2020-07-04 10:56:19 2094

原创 tensorflow2.0之softmax激活解决多分类问题

softmax激活函数在机器学习尤其是深度学习中,softmax是个非常常用而且比较重要的函数,尤其在多分类的场景中使用广泛。他把一些输入映射为0-1之间的实数,并且归一化保证和为1,因此多分类的概率之和也刚好为1。...

2020-07-03 22:06:44 1252

原创 tensorflow2.0入门之多层感知机进行二分类

tensorflow2.0封装了Keras的高阶API,可以很方便的调用Keras里面的函数实现各类算法Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。Keras可以很明确的定义了层的概念,反过来层与层之间的参数反倒是用户不需要关心的对象,所以构建神经网络的方法对于普通开发者来说,相对tensorflow,Keras更易上手。并且Keras也是tensorflow官方在tensorflow2.0开始极力

2020-07-03 17:19:35 1234 2

原创 Python实现常见的排序算法(快排)

冒泡排序冒泡排序对一个输入的列表循环n次,每次比较前后两个数,把大的数交换到后面,慢慢的沉下去,小的数自然就浮起来了,这也就是所谓的冒泡def Bubble_sort(alist): n = len(alist)-1 for i in range(n-1): for j in range(0,n-i): if alist[j] > alist[j+1]: alist[j],alist[j+1] = ali

2020-07-03 13:08:30 264

原创 Scikit-learn实现随机森林算法

随机森林指的是利用多棵树对样本进行训练并预测的一种分类器随机森林的原理在机器学习中,随机森林是一个包含多个决策树的分类器根据下列算法而建造每棵树:用N来表示训练用例(样本)的个数,M表示特征数目。输入特征数目m,用于确定决策树上一个节点的决策结果;其中m应远小于M。从N个训练用例(样本)中以有放回抽样的方式,取样N次,形成一个训练集(即bootstrap取样),并用未抽到的用例(样本)作预测,评估其误差。对于每一个节点,随机选择m个特征,决策树上每个节点的决定都是基于这些特征确定的。根据这m

2020-07-02 21:50:04 4196

原创 Scikit-learn实现线性回归

Scikit-learn最早由数据科学家David Cournapeau 在2007 年发起,需要NumPy和SciPy等其他包的支持,是Python语言中专门针对机器学习应用而发展起来的一款开源框架。作为专门面向机器学习的Python开源框架,Scikit-learn可以在一定范围内为开发者提供非常好的帮助。它内部实现了各种各样成熟的算法,容易安装和使用,样例丰富,而且教程和文档也非常详细。线性回归模型(linear-reggration)是机器学习中最基础也是最简单的算法。主要是拟合y =

2020-07-02 21:10:45 2356

原创 关于numpy的nan值处理

numpy的nan值处理没有一个可以直接调用的方法,我们可以自己编写相应的函数,通过调用函数把nan值填充为均值、中位数、众数等等新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择......

2019-09-18 09:40:52 12525 3

SSD模型的instances-trainval35k.json文件,官方代码中下载链接已失效

SSD模型的instances_trainval35k.json文件,官方代码中下载链接已失效,附以下文件供下载。

2023-03-24

空空如也

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

TA关注的人

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