自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 nn.Parameter()函数

Parameter()通俗的解释就是把一个Tensor转换成可学习训练的参数。只有参数才可以进行训练学习,所以这里可以看做是一个类型转换函数,把Tensor类型转换成Parameter类型。类型转换之后,这些参数就是模型的一部分,不再是普通的数据,被自动添加到Paeameter参数列表中。这里是初始化模型参数,使用torch.randn()创建一个784X256的权重w张量,然后用nn.Parameter()处理。在学习李沫的动手学习深度学习中遇见了这个函数并且没有解释,所以自己进行了一些探索并记录下来。

2024-07-17 09:34:50 201

原创 决策树划分属性依据

在决策树中,假如某个节点的基尼系数就是0,此时被分类到这个节点的数据集是纯的,意思就是按照此叶节点的父节点的分类方法来说,此叶节点都是同一个类别的,不需要再次分裂决策。,假如某个属性可取值达到了n,也就是每个样本都不一样,比如“编号”属性,那可以计算出这个属性的信息增益接近1,选择这样的属性来划分很可能不具有泛化能力。假设现在对集合D使用属性a来进行划分,属性a有v个取值,也就是有v个节点,上式中Dv是第v个节点就是取值为v的样本个数。信息增益越大,说明使用属性a来划分所获得的纯度提升越大,决策树越好。

2024-06-29 14:34:50 558

原创 在Windows环境下给conda虚拟环境安装包

背景:电脑上已经安装了Anaconda,创建了虚拟环境test1,但是没有安装pandas包,需要二次安装包。

2024-05-30 20:06:39 261

原创 利用Anaconda+Pycharm配置PyTorch完整过程

说在前面:这篇是记录贴,因为被配置环境折磨了大半天,所以记录下来下次方便配置,有点像流水账,有不懂的地方可以评论问。参考文章:环境:系统:Windows11显卡:1660Ti。

2024-05-20 22:56:29 812

原创 习题2.7 Day of Week

这里注意,假如是1年1月7日,那对应星期日Sunday,即week[6],所以最后为。思路:计算出这一天距离1年1月1日有多少天,再对7取余即可。要对sum减一再取余,注意不是取余再减一。

2024-02-27 11:01:57 363

原创 习题2.6 日期差值

有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD。思路:分别计算出这一天到0000-00-00的天数,再相减+1即可。每组数据输出一行,即日期差值。

2024-02-27 09:35:09 362

原创 Windows安装python之后cmd输入python没反应,不是内部或外部命令

这里C:\Python是你的python安装路径,就是python.exe所在文件夹,注意不是快捷方式是exe。或者可以手动添加系统环境变量,但是我手动添加是没反应的。

2024-02-19 13:36:58 779

原创 例题2.8 日期累加

2、用1计算出的天数加上要求加的天数,看看是否超过365/366,超过要将年份加一。输入第一行表示样例个数m,接下来m行每行四个整数分别表示年月日和累加的天数。4、利用day()函数,传入2计算出的年份和3计算出的剩余天数,输出日期。设计一个程序能计算一个日期加上若干天后是什么日期。输出m行,每行按yyyy-mm-dd的个数输出。3、年份如果加一,天数就要减去365/366。1、普通闰年:能被4整除但不能被100整除。1、通过日期计算出这是这一年的第多少天。2、世纪闰年:能被400整除。

2024-02-19 11:36:12 348

原创 例题2.7 打印日期

可能有多组测试数据,对于每组数据, 按 yyyy-mm-dd的格式将输入中对应的日期打印出来。用给定的总天数减去每月的天数,当不够减的时候说明就是这个月,注意月是从1开始的。输入包括两个整数y(1

2024-02-19 10:40:38 366

原创 例题2.6 今年的第几天?

输入可能有多组测试数据,对于每一组测试数据, 输出一个整数,代表Input中的年、月、日对应本年的第几天。包括三个整数年(1

2024-02-19 10:25:54 387

原创 习题2.3 old bill

【代码】习题2.3 old bill。

2024-02-19 09:59:51 494

原创 习题2.2 白鸡问题

穷举就完事了,可以优化,比如把第二个循环条件改成y

2024-02-06 13:02:56 361

原创 习题2.1 与7无关的数

【代码】习题2.1 与7无关的数。

2024-02-06 12:32:56 379

原创 2.3 对称平方数

打印所有不超过256,其平方具有对称性质的数。如2,11就是这样的数,因为2。简单的穷举,掌握逆序数函数是基础要求。

2024-02-06 12:18:16 377

原创 2.2 反序数

题目要求是四位数,所以要保证第一位和第四位不是0。

2024-02-06 11:48:38 373

原创 LeetCode.82 删除排序链表中的重复元素 二

总结:此类题原理不难,要小心细节,比如加头结点、注意next越界操作,还有不要吝啬声明变量,重复使用next可能会把自己绕晕。返回时注意,如果r始终未移动,说明相同节点均在前半部分,返回 r->next,二 如果p与q相同,则q前进,直到与p不同,此时删除r与q之间的节点即可。LeetCode.82 删除排序链表中的重复元素 二。1,提供的是无空头链表,需要加一个头结点来统一操作。一 如果p与q不同,则p,q,r,均前进;r:记录前一个节点,方便删除操作。否则,返回原 head。2,使用三个工作指针。

2024-01-15 12:27:32 429

原创 Leetcode.1619 删除某些元素后的数组均值 简单

思路:先进行排序,正序倒序都行,然后求中间90%的元素的和再平均即可。Leetcode.1619 删除某些元素后的数组均值。时间复杂度 O(nlogn),排序和求和所用时间。空间复杂度 O(logn),排序需要栈空间。

2022-09-14 11:11:55 186 1

原创 Leetcode.670 最大交换 中等

Leetcode.670 最大交换 中等。时间复杂度:O*(log2*² num)空间复杂度:O*(log2 num)

2022-09-13 11:02:32 290

原创 Leetcode.1608 特殊数组的特征值

Leetcode.1608 特殊数组的特征值。

2022-09-12 11:13:43 167

原创 Leetcode.1598 文件夹操作日志搜集器 简单

读懂题目就行了,就是简单的判断,判断logs字符串数组里的字符串,假设我们的初始路径 ans = 0;/” ,且ans > 0那么ans -= 1;Leetcode.1598 文件夹操作日志搜集器 简单。如果是 “x/”,那么ans += 1;如果是 “./”,那么ans不变;遍历结束,ans就是答案。

2022-09-09 10:21:42 160

原创 Lesson 6 重构代码

Lesson 6重构源代码,下面将按照光栅器运行的顺序来介绍代码。

2022-09-08 21:45:43 390

原创 Leetcode.667 优美的排列2 中等

就是一道找规律题,首先我们假设1到n是顺序排列的,那么此时里面只有一个整数1;我们打乱一下顺序,把前面几项打乱为[ 1 3 2 …],后面的项依然是顺序排列,现在就有两个整数1和2。到这里基本上就能看出端倪了,我们只需要让前面k+1项打乱,满足k个数,让后面的k+2~n项都顺序排列就行。1 5 2 4 3 现在,两两之间的差为 4 3 2 1。1 2 3 4 5 五个数,现在两两之间的差都为1,我们打乱。时间复杂度 O(n) 虽然有三个循环,但是只会遍历一遍n。我没看出这样的排列哪里优美了。

2022-09-08 10:28:48 85

原创 Leetcode.687 最长同值路径 中等

leftMaxVal和右分支的最长同值路径rightMaxVal,这时leftMaxVal + rightMaxVal就是这个root节点的最长同值路。径,将这个路径长度与我们的最终答案比较,如果比res大,就更新res。只需要在此基础上添加我们所需要的判断就行,对于一个root节点,我们要找到它的左分支的最长同值路径。DFS是比较熟悉的,就是递归判断的时候还是不太清晰,得想半天,还得加强这种类型的题的练习。要求的是最长的路径,那我们把每条路径都找出来,然后更新保存最长的即可。

2022-09-02 11:49:33 73

原创 TinyRenderer学习笔记--Lesson 5

准备工作,在摄像机坐标系下,我们要引入up向量,它始终指向摄像机的上方,注意,这里的up是摄像机坐标系下的up。这里和普通的属兔变换要注意区别,普通的视图变换是作用在摄像机上的,这里是作用在物体上的。然后下一步,我们需要把看向的位置移动到世界坐标系的原点,看向的位置可以理解成物体的位置,因为我们最终。的法线,计算得到的光强是一样的,这样得到的效果就是整个三角形都是一种颜色,导致渲染出来的图片有明显的。得到的场景是摄像机位于Z轴负方向的位置,看向原点,所以要把看向的位置移到原点,看向的位置我们定义成。...

2022-09-01 11:38:17 246

原创 Leetcode.1475 商品折扣后的最终价格 简单

然后判断是否栈空,栈空就说明后面没有比此数组元素还要小的元素,就是原价,栈不为空就打折,此时打折的价格就是减去栈顶元素。前面的解法使用了双重循环遍历,时间复杂度较大,单调栈的核心思维就是寻找右边更小的元素时不需要遍历数组,如果栈不为空且栈顶元素比此位置数组元素大,就出栈,重复操作,直到栈为空或者栈顶元素小于此数组元素。空间复杂度为O(1),返回值不计入空间复杂度。时间复杂度为O(n),一个循环遍历数组。时间复杂度为O(n²),n是数组长度。空间复杂度为O(n),栈占用空间。从数组右端开始遍历,...

2022-09-01 11:35:09 184

原创 Leetcode.946 验证栈序列 中等

3、每入栈一个,就检查,如果popped数组和stack栈都不为空,且栈顶和数组头元素一样,就出栈并删除popped数组头元素,这里的检查使用while循环深入,直到不满足条件为止。4、最后检查栈是否为空,为空就说明全部出栈成功,返回true,否则返回false。Leetcode.946 验证栈序列 中等。2、把pushed里的数据一个一个入栈。...

2022-08-31 10:30:17 1006

原创 TinyRenderer学习笔记--Lesson 3、4

无论怎样,生活中的显示器基本上都是平面,是一个2D的场景,而我们的模型却是3D的,是有深度的,实际上我们看见的都只是离我们的眼睛最近的那一个平面,一个不透明的3D物体的内部和背面是我们无法观测到的。有了这三个矩阵,在计算屏幕坐标的时候,直接进行乘就行,简称为MVP变换,M是模型矩阵,V是视角矩阵,P是投影矩阵。图,首先我们需要知道某个三角形顶点上的UV值,然后通过插值的办法计算出三角形内部某个点的UV值,OBJ文。对于透视投影的计算,我们需要进行简单的探讨,这里就不在讨论,强烈建议大家查看文章。...

2022-08-30 15:13:14 318

原创 TinyRenderer学习笔记--从零构建软件渲染器

开始软件渲染器–tinyrenderer的学习。

2022-08-13 21:06:37 597

原创 DirectX12初始化五——计时与动画

性能计时器所用的时间单位叫做计数。QueryPerformanceCounter函数获得性能计时器测量的当前时刻值,返回64位整数QueryPerformanceFrequency函数获取计时器的频率 (计数/秒)每个计数所代表的秒数就是性能计时器频率的倒数,由此可以得出将计数转换为秒的方法注意:在不同的处理器上同时调用QueryPerformanceCounter可能得到不同结果,因此我们可以使用SetThreadAffinityMask函数,防止应用程序的主程序切换到其他处理器,此时调用两次QueryP

2022-07-05 17:55:34 265

原创 DirectX12初始化四——初始化Direct3D(总代码)

创建ID3D12Device实例创建ID3D12Fence对象,查询描述符大小检测设备对4X MSAA质量级别的支持创建命令队列、命令列表分配器和主命令列表描述并创建交换链创建应用程序所需的描述符堆调整后台缓冲区大小,并为它创建渲染目标视图创建深度/模板缓冲区及与之关联的深度/模板视图设置视口和剪裁矩形初始化Ditrect3D的第一步就是要创建Direct3D 12设备,此设备代表一个显示适配器。显示适配器一般指显卡等硬件,也可以指模拟硬件功能的软件显示适配器创建围栏并获取描述符的大小检测对4X MS

2022-07-04 16:31:31 508

原创 DirectX12初始化三——DirectX图形基础结构,功能支持检测,资源驻留

DirectX图形基础结构(DXGI)。是一种与DirectX3D配合只用的API。DXGI的基本理念是使多种图形API所共有的底层任务能借助一组通用API来进行处理。IDXGIFactory就只DXGI的关键接口之一。主要用于创建IDXGISwapChain接口以及枚举显示适配器。显示适配器就是一种硬件设备,例如独立显卡,系统也可以使用模拟的软件显示适配器。适配器用接口IDXGIAdapter表示。以下代码会显示出系统中所有适配器,包括软件适配器。以下代码获得某个显示输出对此格式所支持的全部显示模式。

2022-07-01 21:38:46 1092

原创 DirectX12初始化二——利用DirectX3D进行多重采样MSAA

填写结构体根据给定的纹理格式和采样数量,使用CheckFeatureSupport()方法查询对应的质量级别。图像质量水平。质量越高,性能越低。质量级别的有效范围是0~NumQualityLevels-1每个像素的最大采样数量定义为#defined D3D12_MAX_MULTISAMPLE_COUNT (32)...

2022-06-29 16:16:47 418

原创 DirectX12初始化一——DX::ThrowIfFailed使用

在D3D12项目中,一般使用宏来定义它原理是:接受HRESULT类型的参数输入,然后判断HRESULT是否创建成功,简单来说就是一个错误判断。关于HRESULT类型https://zh.m.wikipedia.org/zh-hans/HRESULT用’hr__'存储接受的参数x。std::wstring表示定义宽字符,内部通常是wchar_t实现,wchar_t类型占两个字节16bit,char类型占一个字节8bit。wchar_t通常用于扩展字符集,例如汉子,日文等。具体一下wchar_t针对UNICO

2022-06-28 20:06:30 620

原创 2022/6/26每日一题———黑名单中的随机数

题目:黑名单中的随机数个人思路:直接得到0~n范围一个随机数,然后判断是不是在黑名单里面,不在的话就输出,在的话就重复执行pick()函数。缺点很明显,如果得到了一个随机数在黑名单中,那我们就需要重新得到一个随机数,最坏的情况需要执行m次随机数获取,与题意不符。参考思路:使用映射,假设把0 ~ n-1的数字分成两个部分,0 ~ n-m部分是白名单,n-m ~ n是黑名单,m是黑名单元素个数。这样我们得到了一个随机数,直接判断他是不是在黑名单,不是的话就直接输出,是的话就输出白名单里的数字,而输出白

2022-06-26 16:44:11 236

原创 DirectX12龙书--第五章笔记

DirectX12龙书学习笔记,电子版龙书下载

2022-06-25 09:56:26 436

原创 2022/4/21每日一题———山羊拉丁文

题目:山羊拉丁文解题办法:简单模拟即可,直接看代码class Solution {public: bool judgeyuan(char a) { cout << a << endl; if(a == 'a' ||a == 'e' || a == 'i' || a == 'o' || a == 'u') return true; if(a == 'A' ||a == 'E' || a =

2022-04-21 16:29:08 230

原创 2022/4/20每日一题———文件的最长路径

题目:文件的最长路径解题办法:从题目中给出的图片即可看出,文件路径明显是一个多叉树,题目中给出的文件路径格式,是树的前序遍历的结果既然是树,然后又要查找最长路径,那直接就是DFS,因为很明显,文件只能是叶子节点,而目录既可以是叶子节点,也可以不是。既然明确了用DFS,那就简单了,由于需要记录深度和长度,所以需要栈结构来储存,看代码:class Solution {public: int lengthLongestPath(string input) { int n =

2022-04-20 20:31:35 395

原创 games101作业2解题办法详解

作业2的整体代码框架和作业1相同,不同点在于这次需要绘制的是实心的三角形,且两个三角形之间有重叠,所以需要做深度检测。这是此次作业的要求。首先来实现三角形的栅格化算法函数 rasterize_triangle(const Triangle& t)在给定的作业要求pdf中已经给了具体的算法,我们只需要将算法转换成代码即可。1、首先需要建立三角形的bounding box,这个box就是一个二维的矩形,是可以把三角形包围起来的最小矩形 auto v = t.toVector4()

2022-03-31 17:05:41 1944 3

原创 games101作业1框架及解题办法详解

所用到的函数1、Triangle.hppa,b,csetVertex()setNormal()setColor()setTexCoord()toVector4()2、Triangle.cpp3、rasterizer.hpp运算重载load_position()load_indices()set_model()set_view()set_projection()set_pixel()clear()draw()frame_buffer()draw_line()raster_wireframe()4、main.c

2022-03-29 14:45:43 3650 2

原创 std::move()详解、左值引用与右值引用区别、C++

目录左值引用与右值引用模板实参推断和引用引用折叠和右值引用参数std::move()很久没有接触C++代码了,很多东西都快忘了,今天刷力扣的题目,发现自己竟然看不懂左右引用转换了,去仔细查了查,写下这篇博客记录。先上代码class Solution {public: string simplifyPath(string path) { auto split = [](const string& s, char delim) -> vector<string

2022-01-07 17:15:18 1173

空空如也

空空如也

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

TA关注的人

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