自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深度图转化为点云

【代码】深度图转化为点云。

2023-10-08 15:49:46 763

原创 单目深度估计NYU数据集

深度估计室内数据集

2022-11-19 11:38:07 581 1

原创 从0开始实现深度估计

从0实现单目深度估计

2022-11-04 11:20:46 766

原创 欢迎入坑单目深度估计

深度估计入门

2022-10-19 22:07:31 4639 5

原创 从0开始学习递归

从0开始学习递归

2022-10-19 20:51:58 363

原创 Revisiting Single Image Depth Estimation Toward Higher Resolution Maps

Revisiting Single Image Depth Estimation Toward Higher Resolution Maps

2022-10-18 17:36:15 1114

原创 Gated-SCNN: Gated Shape CNNs for Semantic Segmentation

Gated-SCNN

2022-10-16 22:24:22 1570 4

原创 Sobel求图像梯度(从0实现以及cv2实现)

tensor的像素值特别接近,我们可以简单的设定一个阈值,将无用像素设置为0,并将其他像素归一化到0-255区间,就可以得到近似的结果。二者图像显示不同的原因是因为cv2提取的是灰度图像 numpy像素值在0-255之间,而tensor不同。图像梯度可以把图像看成二维离散函数,图像梯度其实就是这个二维离散函数的求导。图像梯度: G(x,y) = dx(i,j) + dy(i,j);其中,I是图像像素的值(如:RGB值),(i,j)为像素的坐标。图像就是函数,梯度对应的数值就是像素值的突变情况。

2022-10-15 16:54:07 1285

原创 torch.nn.Softmax()用法

深度学习中Softmax 4种维度归一化

2022-09-23 10:45:50 1413

原创 AdaBins:Depth Estimation using Adaptive Bins

文章目录一、AdaBins处理的问题 二、AdaBins整体架构 1.MVIT 2.个人理解 一、AdaBins处理的问题?并提出了全局信息处理如何帮助改进整体深度估计的问题。提出了一种基于变换的体系结构块,该结构块将深度范围划分为每个图像自适应地估计其中心值的子块。最终深度值估计为面元中心的线性组合。这是论文中给的GT深度分布图和预测的深度分布图,如果两者在深度分布上能够尽可能达到一致的话,其实就已经将损失降到了一定的程度二、AdaBins整体...

2022-05-10 17:19:40 1935

原创 pandas中常用函数

1 pandas.Series1.pd.Series(相当于一维数组)#pd.Series(data,index,dtype,name,copy)#data:数据,index:索引,name:可修改该Serise名字,copy:拷贝数据,默认是falseimport pandas as pdimport torcha=[10,20,30,40,50]A=pd.Series(data=a,index=[1,2,3,4,5],dtype=float,name='Money')#如果没有指定in

2021-12-24 15:52:02 2436

原创 无向图的最短路径代码(prim, kruskal)

以下代码来自天勤数据结构Prim//prim算法是每次寻找当前树距离其他顶点最短的边(不构成回路) void Prim(Mgraph g,int v0,int &sum){ int lowcost[maxsize],vset[maxsize],v; int i,j,k,min; v=v0; for(i=0;i<g.n;i++) { lowcost[i]=g.edges[v0][i]; vset[i]=0; } vset[v0]=1;//将v0并入数中 s

2021-12-19 16:01:37 687

原创 动态规划之0/1背包

#include <iostream>using namespace std;int w[20],c[100];int dp[20][100];int main(){ int m,n; cin>>m>>n; for(int i=1;i<=n;i++) cin>>w[i]>>c[i]; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(j&

2021-12-19 10:34:22 178

原创 动态规划之最长公共子序列(c/c++)

#include <iostream>#include <cstring>using namespace std;int f[100][100];//A的前i个字符,B的前j个字符的最长公共子序列的长度 int main(){ string a; string b; cin>>a>>b; for(int i=0;i<=a.length();i++) { for(int j=0;j<=b.length();j++) {

2021-12-19 10:31:05 449

原创 斐波那契数列(动态规划,递归)

1动态规划求前十个数#include <iostream>using namespace std;int fib[101];int main(){ fib[1]=fib[2]=1; for(int i=3;i<=10;i++) fib[i]=fib[i-1]+fib[i-2]; for(int i=1;i<=10;i++) cout<<fib[i]<<" "; }2递归求前十个数#include <iostream&gt

2021-12-19 09:34:08 222

原创 八皇后递归实现代码(c++)

#include <iostream>#include <cmath>using namespace std;int count=0;//八皇后的可能性int quenen_line[8];//存储8皇后的位置信息,如果把八皇后的序列号作为行,quenen_line(quenen)则是其列 bool find_place(int start,int i) { for(int j=1;j<start;j++)//检查start之前的行对应的列是否重复 {

2021-12-18 08:49:57 723

原创 动态规划之坐标问题(带路障)

对于没有路障问题的路径问题对于不是第一行和第一列的坐标有 f(i)(j)=f(i-1)(j)+f(i)(j-1)对于有路障问题,比如本题中(0)(5)之后的坐标均为0我们可以列出如下等式假设有误路障用数组A表示,A[0][5]=1#include <iostream>using namespace std;int main(){ int m=4; int n=8; int f[m+1][n+1]={0}; int A[m+1][n+1]={0}; A[0][5]=A[.

2021-12-16 22:52:00 418

原创 ResNet18识别FashionMNIST数据集

1导入常用的包import timeimport torchimport torchvision.transforms as transformsimport torch.nn as nnimport torchvisionimport torch.nn.functional as F2导入并处理数据device =torch.device('cuda')data_tansform={ 'train': transforms.Compose([

2021-12-16 16:56:52 768

原创 动态规划之零钱问题(C++)

思考1、 如果我们用最少k枚硬币拼出所需的amount2、 那么k-1枚硬币一定拼出最少的amount-coin[k] // k={1,2,3…n}3、 所以原来的coin[1]+coin[2]+…+coin[k]=amount4、 coin[1]+coin[2]+…+coin[k-1]=amount-coin[k] // k={1,2,3…n}而此时,大问题就转化为了子问题假设 我们用num_coin(x)表示硬币拼出x的最少个数所以num_coin[x]=min(num_coin[x].

2021-12-12 18:52:33 1693

原创 动态规划求解路径不唯一问题

根据侯卫东老师的课上讲解,我本人对该类问题分为如下2步1确定动态转移方程2确定边界条件有点类似于递归,其实我个人感觉动态规划跟递归还是比较像的,只是递归冗余计算的太多,不过二者都是建立一个方程和边界条件对于本题而言,对于任意一个不在0行或者0列上面的点,总是满足这样一个关系step[m][n]=step[m-1][n]+step[m][n-1]注意 这里求得是多少种方法,不需要加1,因为只能向右或者向下,所以该点只有2种情况,左边右移到达该点,上方下移到达该点对于0行和0列需要特殊考虑,因为.

2021-12-09 17:45:05 482

原创 设计一个回溯算法,找出n个数中第二大的数

#include <iostream>using namespace std;int F_max,S_max;int Find_SecondMax(int a[],int n){ if(n==2) { F_max=(a[n-1]>a[n-2]?a[n-1]:a[n-2]); S_max=(a[n-1]<a[n-2]?a[n-1]:a[n-2]); return S_max; } else { S_max=Find_SecondMax(a,n-1)

2021-12-07 17:34:34 507

原创 池化详解+代码实现

1、什么是池化?我们之所以使用卷积后的特征,是因为图像具有“静态型”的属性,也就意味着在一个图像区域的特征极有可能在另一个区域同样适用。所以,当我们描述一个大的图像的时候就可以对不同位置的特征进行聚合统计(例如:可以计算图像一个区域上的某个特定特征的平均值 or 最大值)这种统计方式不仅可以降低纬度,还不容易过拟合。这种聚合统计的操作就称之为池化,或平均池化、最大池化。2、池化的作用?(1)保留主要特征的同时减少参数(降低纬度,类似PCA)和计算量,防止过拟合在通过卷积获得了特征 (features

2021-11-26 14:04:20 1753

原创 LeNet识别MNIST数据集

文章目录1.什么是LeNet模型2.导入数据包3.加载图片,并显示第一张图片的尺寸4.显示前十张数字5.构造LeNet网络6.精确函数总结1.什么是LeNet模型LeNet分为卷积层块和全连接层块两个部分。下面我们分别介绍这两个模块。卷积层块里的基本单位是卷积层后接最大池化层:卷积层用来识别图像里的空间模式,如线条和物体局部,之后的最大池化层则用来降低卷积层对位置的敏感性。卷积层块由两个这样的基本单位重复堆叠构成。在卷积层块中,每个卷积层都使用5×55×5的窗口,并在输出上使用sigmoid激活函数

2021-11-23 19:33:22 1758

原创 二维卷积的动手实现

#学自深度学习5.1章在二维互相关运算中,卷积窗口从输入数组的最左上方开始,按从左往右、从上往下的顺序,依次在输入数组上滑动。当卷积窗口滑动到某一位置时,窗口中的输入子数组与核数组按元素相乘并求和,得到输出数组中相应位置的元素。图5.1中的输出数组高和宽分别为2,其中的4个元素由二维互相关运算得出:0×0+1×1+3×2+4×3=19,1×0+2×1+4×2+5×3=25,3×0+4×1+6×2+7×3=37,4×0+5×1+7×2+8×3=43.import torchdef corr2d

2021-11-20 14:56:29 3344

原创 卷积和相关

转自动手学深度学习5.1章图5.1实际上,卷积运算与互相关运算类似。为了得到卷积运算的输出,我们只需将核数组左右翻转并上下翻转,再与输入数组做互相关运算。可见,卷积运算和互相关运算虽然类似,但如果它们使用相同的核数组,对于同一个输入,输出往往并不相同。那么,你也许会好奇卷积层为何能使用互相关运算替代卷积运算。其实,在深度学习中核数组都是学出来的:卷积层无论使用互相关运算或卷积运算都不影响模型预测时的输出。为了解释这一点,假设卷积层使用互相关运算学出图5.1中的核数组。设其他条件不变,使用卷积运算学出

2021-11-18 20:35:23 2461

原创 权值衰减—高维线性回归举例

1.为什么要权值衰减首先我们了解一下过拟合和欠拟合过拟合——是指学习时选择的模型所包含的参数过多,以至于出现这一模型对已知数据预测的很好,但对未知数据预测得很差的现象。这种情况下模型可能只是记住了训练集数据,而不是学习到了数据特征。欠拟合——模型描述能力太弱,以至于不能很好地学习到数据中的规律。产生欠拟合的原因通常是模型过于简单。2.应对过拟合最优方案——获取更多的训练数据次优方案——调节模型允许存储的信息量或者对模型允许存储的信息加以约束,该类方法也称为正则化。—调节模型大小—约束

2021-11-13 10:24:05 881

原创 多项式函数拟合

import torchimport matplotlib.pyplot as pltimport numpy as np#生成一个人工数据集def create(w,b,sample): x = torch.normal(0,1,size=(sample,len(w))) y = w[0]*x + w[1]*(x**2) +w[2] * (x**3) + b y += torch.normal(0,0.01,y.shape) return x,yt_w...

2021-11-12 16:58:30 1722

原创 多层感知机识别FashionMNIST数据集

文章目录一、什么是感知机?二、多层感知机1.引入库和FashionMNIST数据集2.设置参数,隐藏层单元设置为2563激活函数,损失函数,梯度下降,精确度,softmax函数4训练效果一、什么是感知机?在处理线性可分的二分类问题中 感知机随处可见,比如超过1.5m儿童购票,或者男生女生,都可以找到一个标准来准确的分类,在二维平面中,感知机就是一条一次函数,把平面中的样本分成2个类别。对于线性不可分的多分类问题,比我们可以用softmax或者多层感知机来判断属于每个类别的得分二、多层感知机多层感知

2021-11-12 15:08:46 1340

原创 pytorch中的掩膜mask

1结果维度不变y_hat=torch.tensor([[1,2,3],[4,5,6]])y=torch.tensor([1,0,0],dtype=torch.bool)print(y_hat[:,y])#tensor([[1],[4]]) y_hat[:,y].shape ([2,1])2 结果维度改变y_hat=torch.tensor([[1,2,3],[4,5,6]])y=torch.tensor([1,0,0],dtype=torch.bool)print(y_hat[ra

2021-11-11 19:44:28 1886

原创 softmax识别FashionMNIST数据集代码详解

softmax回归文章目录softmax回归一、softmax用来干什么?二、代码1.引入库2.验证第一张图像的尺寸和类别3.展示前十张图片4.设置批量大小为2565.参数初始化6.定义线性模型,softmax模型,损失函数,准确度,梯度下降函数7.训练模型一、softmax用来干什么?单一的线性模型只能处理二分类问题,对于多分类问题,引入softmax回归线性回归模型适用于输出为连续值的情景。在另一类情景中,模型输出可以是一个像图像类别这样的离散值。对于这样的离散值预测问题,我们可以使用诸

2021-11-10 18:01:33 604

原创 线性回归代码从零开始详解

#创建数据集import torchimport matplotlib.pyplot as pltdef create(w,b,sample): x=torch.normal(0,1,size=(sample,len(w))) #以方差为0,标准差为1的分布,随机生成行为sample,列为len(w)的矩阵 y=x[:,0]*w[0]+x[:,1]*w[1]+b #生成y y+=torch.normal(0,0.01,y.shape) # 加噪声 return x,y.

2021-11-08 13:36:04 575

转载 zip()函数的用法

#转载自https://www.cnblogs.com/jin-liang/p/9987661.htmlpython中zip()函数的用法zip函数的原型为:zip([iterable, …])zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。也就是说,该函数返回一个以元组为元素的列表,其中第 i 个元组包含每

2021-11-02 18:38:00 19021 1

原创 with torch.no_grad()

在tensor这个类中,如果将其属性 requires_grad设置为true,它将追踪在其上的所有操作(利于反向梯度传播)。完成计算后,可以调用backward()来完成所有梯度计算,此时tensor的梯度将累积到 tensor.grad()属性中如果不想被追踪,比如在画图,输出时,可以调用 .detach()将其从追踪记录里分离出来,这样就可以防止将来的计算被追踪。此外 在优化算法时还可以用 with torch,no_grad()将不想被追踪的操作代码包裹起来,固定住,因为此时不需要梯度传播了d

2021-11-01 11:17:20 450

原创 机器学习之感知机

举一个我学感知机的时候看的例子儿童乘车,1.2米以上(包括1.2m)购票,1.2米以下免票,很容易得出如下分段函数所有人分成了2类,一类是买票,一类是免票(也可以把y设置成0)为了方便以后的修改,可以令t=1.2m同理 我们还可以以0为边界PS:引入边界0是为了在处理有条件极值问题时比较方便的使用拉格朗日乘子法我们把上面问题重新思考一下,如果想修改新的免票的条件:不仅和身高有关,还和年龄有关;那我们如何根据已进入人数的身高,年龄来制定新的免票标准,让后面的人即刻遵守这个条件。x1代表年龄

2021-10-14 00:11:45 218

原创 C语言打印爱心

一个整数n(n≤20),表示心形的突起部分的高度。输出一个心形的字符矩阵。#include <iostream>using namespace std; int main(){ int n,i,j,k,count; cin>>n; int t = 2*n - 1; count=n;//分成两部分解决,第一部分是前n行,第二部分是2*n-1行 int kb=n-1;//空白 int x=1;//星号 while(count--)输出前n行 { for(i

2021-02-08 20:18:05 1035

原创 是否阶乘之和(详细思路)

输入一个整数N,判断其是否可以表示成一个正整数阶乘的形式或者几个不同正整数的阶乘之和。输入 4,-1,0,6,^Z输出 no, no, no, yes思路:设函数f(N)判断N是否可以表示成一个或几个不同整数的阶乘和。 1. 当N<=0时,f(N)=NO。 2. 当N=1时,f(N)=YES。 3. 当N=2时,f(N)=YES。 当N为大于2的奇数时,因为只有1的阶乘是奇数,其他正整数的阶乘都是偶数,所以必然需要分成1的阶乘和其他整数的阶乘之和,所以f(N)=f(

2021-02-04 20:54:25 2507

原创 NBU OJ魔方阵

输出魔方阵,所谓魔方阵就是指这样的方阵,它的每一行每一列和对角线之和都相等,例如,三阶魔方阵为8 1 63 5 74 9 2要求输出由1—n^2之间的自然数构成的魔方阵。输入该方阵的阶数n(n<=15且n为奇数)。输出该n阶魔方阵,两个数字之间用空格间隔输入 3输出8 1 63 5 74 9 2思路:由于魔方阵的填法有很多种,这里给出一种填法:1.将1放在第一行的最中央。2.接下来的每个数字都放在前一个数字的右上方。如果右上方被占,则放在前一个数字的下面。#includ

2021-02-04 14:15:28 362

原创 约瑟夫环问题(c语言)

约瑟夫问题是一个有趣的游戏。有n个人围成一圈,从第一个人开始沿顺时针方向报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那个人?比如输入5,输出4思路:循环链表,模拟运行,见代码注释#include <iostream>#include <algorithm>using namespace std;//创建链表结构体typedef struct node{ int date; struct node *next;}node;//创建结

2021-02-03 15:50:29 623

原创 联想小新pro-13AMD重装系统热键问题

我自己的笔记本小新pro-13,前两天重装了系统,发现fn+Q,切换不了散热模式方法1.官方驱动下载电源管理驱动2.Lenovoutility下载;在菜单里会看到如下,这个时候切换热键,即可,但是自带管家里还没有散热模式3.进入下载支持散热联想管家以上步骤,本人亲测...

2020-04-07 22:31:51 3393

空空如也

空空如也

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

TA关注的人

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