自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Java基础_02】Java变量

【Java基础_02】Java变量、运算符、程序控制结构。

2024-02-04 22:46:55 911

原创 【Java基础_01】Java运行机制及运行过程

/ 对该java文件进行编译->生成test1.class文件1.有了java源文件,通过编译器将其编译成JVM可以识别的字节码文件。2.在该源文件目录下,通过javac编译工具对test1.java文件进行编译。3.如果程序没有错误,没有任何提示,但在当前目录下会生成一个test1.class文件,该文件被称为字节码文件,也是可以执行的java程序。java test1//运行class文件,写指令时不用加class,因为直接执行test1这个类。

2024-01-17 21:35:40 863

原创 【PyTorch深度学习实践】09_卷积神经网络基础

这里有个描述很重要:想要使源图像(1,1)的位置作为第一个与kernel中心重合,参与计算的像素,想想看padding需要扩充多少层,这样就很好计算了。padding是为了让源图像最外一圈或多圈像素(取决于kernel的尺寸),能够被卷积核中心取到。stride操作指的是每次kernel窗口滑动的步长,默认值是1。

2023-01-15 22:26:15 472 1

原创 【PyTorch深度学习实践】08_Softmax分类器(多分类)

当需要多分类的时候,会输出一个分布,这些分布需要满足`P(y = i) >=0 和 所有的P值加起来=1`,使用softmax可以实现。

2023-01-15 20:44:52 4308 4

原创 【PyTorch深度学习实践】07_Dataset和Dataloader

绝大多数时候需要以 batch 的形式访问数据集。Dataloader 这个接口提供了这样的功能,它能够基于我们自定义的数据集将其转换成一个可迭代对象以便我们批量访问。torch.utils.data.Dataset是一个抽象类,不可以实例化,但是可以通过构建这个抽象类的子类来创建数据集。方法,所以继承之后我们的数据集也会拥有此方法,从而合并数据集只需使用 + 运算即可。后,该方法能够根据索引返回对应的单个样本及其对应的标签(以元组形式)这段代码可以创建一个可迭代对象。:返回整个数据集的大小。

2023-01-13 16:12:40 632

原创 【PyTorch深度学习实践】06_多维特征输入(以逻辑斯蒂回归为例)

数据库里一行称为一个Record。loss-epoch图像。

2023-01-10 20:29:25 215

原创 【PyTorch深度学习实践】05_逻辑斯蒂回归

之前使用线性回归解决的都是**回归(预测)**问题,逻辑斯蒂回归模型可以用来解决另一大问题——注意逻辑斯蒂回归虽然名为回归,但解决的是分类问题,是最简单的分类问题模型,用于解决二分类。没有数值比较指没有9>0这种概念。epoch-loss图。

2023-01-09 21:25:01 405

原创 【PyTorch深度学习实践】04_用PyTorch实现线性回归

1.准备数据集 dataset和dataloader 2.设计模型 3.构造损失函数和优化器4.训练过程前馈(算损失)、反馈(算梯度)、更新(用梯度下降更新)

2023-01-09 15:55:55 875

原创 【PyTorch深度学习实践】03_反向传播

在PyTorch中,torch.Tensor类是存储和变换数据的重要工具,相比于Numpy,Tensor提供GPU计算和自动求梯度等更多功能,在深度学习中,我们经常需要对函数求梯度(gradient)。里面包含两个比较重要的成员data(比如权重值)和grad(损失函数对权重的导数)有两个重要的成员,一个是data(保存权重w),一个是grad(保存损失函数对权重的导数)。对于简单的模型,梯度变换可以用解析式表达进行手算,但是复杂模型(很多w,b)的损失函数需要挨个写解析式,非常不好计算(主要是求导)。

2023-01-09 14:32:34 1432

原创 【python基础_05】面向对象2_封装、继承、多态

私有方法无法直接被类对象使用,但可以被其他成员使用。私有变量无法赋值,也无法获取值。私有方法无法直接被类对象使用。多态的概念依赖于继承。

2023-01-03 17:30:16 77

原创 【python基础_05】面向对象1_对象和类、魔术方法

对象和类、魔术方法

2023-01-02 23:06:56 169

原创 【python基础_04】模块与包

import导入包中的模块 import my_package . model1 import my_package . model2my_package . model1 . info_print1() # 调用时需要写包名.模块名.方法名 my_package . model2 . info_print2()

2023-01-02 22:28:16 57

原创 【PyTorch深度学习实践】02_梯度下降

之前可以使用穷举的方法逐个测试找使损失函数最小的点(即找最优权重),但权重过多时,会使穷举变得非常困难,因此需要优化,梯度下降法就是其中一种优化方式。要找到最小值的点,可以让点沿着下降最快的方向移动,梯度的负方向(即负的cost对w的导数)就是下降最快的方向,w随之更新。梯度下降并行度更好,时间复杂度低,但是性能较差。(实话讲这里没听懂老师说的原因,只知道结论了,先记录下来)图中公式的α值代表学习率,通常是一个很小的数(不然一步走太远了),代表步长。,给数据分组,组内使用梯度下降,组间使用随机梯度下降。

2023-01-01 23:42:18 591

原创 【PyTorch深度学习实践】01_线性模型

图中上方的公式是针对单个样本的误差计算,下方的公式是针对整个训练集(training set)的误差计算。其中,不同的w会产生不同的直线,可以通过损失函数来计算误差,选择效果最好的一个。损失函数有许多种,这里展示一种计算方式——

2023-01-01 22:15:36 86

原创 【网络攻防】Linux提权(待更)

使用 cat 命令,因为 cat 命令被劫持成了 /bin/bash,就变成了 system("/bin/bash /etc/shadow),这个文件又是 SUID 文件以 root 权限执行,就直接切换至了 root 用户。suid(set uid)是一种特殊权限,具有这种权限的文件在执行时会使调用者暂时获得该文件拥有者的权限。把当前目录加入到环境变量,比如我选择/tmp目录,这个添加是临时的,当终端关闭时又会恢复原来的样子。在bash中有特殊含义(代表代码块的结束),需要转义。

2022-12-12 14:21:08 597

原创 【python基础_01】基本语法

字符串需要用双引号(“”)包起来,被引号包围起来的,都是字符串变量的目的是存储运行过程的数据。存储的目的是为了:重复使用可以通过type()语句来得到数据的类型语法:type(被查看类型的数据)

2022-12-10 22:08:16 203 1

原创 【VMware安装Ubantu和Kali】Macbook M1

唯一要注意的是这一步,我当时看到不太敢点继续,但其实因为这是虚拟机所以无所谓~不过我配置完镜像源是这样的,目前不知道是什么原因。安装过程比较简单,照着搜到的教程做就好了~

2022-12-09 12:24:02 431

原创 【vscode创建maven项目】Macbook M1

在mirrors里把之前博客里写的那堆改成。在设置里搜索maven,找到限免的进行设置。不过我创建时出现了一些问题,留待以后解决。输入settings.xml的路径。这里假设已经安装好了maven。之前的一直创建不成功,会报错。

2022-11-25 23:18:58 1034

原创 【关于d2l包】记录Mac M1

先记录着,虽然我现在没弄明白为啥呢,但是在Jupyter notebook里至少不报错了,可以正常执行。今天试运行动手学习深度学习中的代码。于是进入d2l环境,执行。又说变高了不适配了…

2022-11-15 15:14:11 845 3

原创 【Java环境配置+VScode运行】Macbook M1

还有一种方式,可以找对应文件夹复制路径,因为Mac往往会把Library等用户文件夹隐藏,所以可以打开Finder之后使用快捷键。下载好的maven默认在downloads里,把它拖到java_tool并解压,打开找到里面的conf文件夹,打开里面的。选zip或者dmg都可以,zip需要自己解压下载,dmg自动加载到默认位置,我选的是.dmg~,输入用户名或者Library等用户文件,就会出现了~打开文件夹后,复制路径的快捷键是。我没有注意版本,下的是最新的java 19,但是11或者8应该是最常用的~

2022-11-13 13:33:11 2670

原创 【MacBook M1】 安装动手学深度学习d2l包+jupyter notebook运行

这个时候我发现想new一个文件的时候没有d2l的环境,会导致import torch报错没有这个moudule。安装好后,我尝试了很久能不能pycharm中运行,发现不可以,d2l这个包一直无法导入,于是只能尝试用jupyter notebook运行。我一开始没管,进入了d2l环境,conda list之后发现没有ipykernel的文件,于是在在虚拟环境中添加kernel模块。最后一步输入后,出现了报错,提示pandas包的轮子没有装好,所以我把作者提供的轮子包下载到本地重新安装了一下。

2022-11-11 17:05:31 5839 4

原创 【python+pycharm+pytorch】Macbook M1 安装

另:有的教程里说会在bash_profile里面加路径,我vim了一下发现我的系统里没有这个文件,我就直接在zshrc里面加的,他们的具体关系我不是很清楚,但是看其他教程里讲好像是需要在.zshrc里再source一下bash_profile的,感兴趣的小伙伴可以再找一下~安装后前面的括号应该会出现(pytorch) ,这时可以输入python打开python解释器,再输入import pytorch看是否报错不报错就是安装成功~按下键盘上的 i 切换为输入(insert)模式,此时可以修改环境变量文件。

2022-11-10 22:28:17 2252 8

原创 【数学建模】Matlab基础知识

%% 独占一行的注释(有上下横线分割–可以用来分区)% 普通注释多行注释:选中,快捷键Ctrl+R取消多行注释:选中,快捷键Ctrl+T(1)(2) 分号也可以用于区分行。 3.clear和clcclear:clear 关键字 —— 删除某个变量clear —— 删除工作区所有变量clc :清除命令行窗口中所有文本,让屏幕干净。输入:二、数据类型1.数字可以进行普通运算 加减乘除平方开方指数对数,具体可以在右上角搜索框中查找对应运算符。如:3+35-16*68/8

2022-07-10 15:00:46 395

原创 【数学建模】优劣解距离法(TOPSIS法)

评价类问题,充分利用原始数据的信息,精确反应各个评价方案之间的差距。公式不唯一公式不唯一(但我也没想到更好的)不唯一不唯一,这只是前人论文中用的较多的一种标准化方法。未完待续…...

2022-07-08 22:30:04 414

原创 【数学建模】层次分析法(AHP)

模型介绍、代码详解、模型拓展

2022-07-08 21:38:36 4407

原创 【Web前端—HTML】认知部分(二 )标签 有示例

web开发HTML标签相关

2022-06-30 16:40:26 692

原创 【Web前端—HTML】认知部分(一)

web标准:让不同浏览器按照相同的标准显示效果,统一展示效果。记忆方法:示例:2.标签2.1标签结构

2022-06-30 13:58:51 1608

原创 【数据结构—查找】红黑树

文章目录红黑树一、定义与性质定义性质二、插入(双红修正->按照x的叔叔u分类)1.x的叔叔是黑色(如果是外结点,也是黑色!)1.1 g到x的路径为LL型(爷爷到自己)1.2 g到x的路径为RR型1.3 g到x的路径为LR型1.4 g到x的路径为RL型2.x的叔叔是红色先染色2.1.若g为根结点,结束。2.2.若g被染红,并且g父红,继续向上双红修正总结三、删除(双黑修正->按照x的兄弟s分类)1.兄弟s为黑,且有红孩子1.1 p到n的路径为LL型1.2 p到n的路径为LR型1.3 p到n的路径为

2022-04-03 11:28:59 1305

原创 【数据结构—查找】高度平衡树(AVL树)(含代码实现)

文章目录高度平衡树(AVL树)1.定义AVL结点定义2.AVL的插入失衡情况平衡方案1.单旋转(LL\RR)LL型(右旋转)RR型(左旋转)2.双旋转—旋转两次(LR\RL)LR型(以C为轴先左转后右转)RL型(以C为轴先右转后左转)AVL插入的总结3.AVL树的删除(代码未实现)高度平衡树(AVL树)1.定义关于二叉查找树~高度平衡树结点q的平衡系数为q的右子树高度减去左子树高度。另:树的高度是指树中结点的最大层数(似乎不同教材对于从0开始还是从1开始的定义不同)高度平衡树所有结点的平衡

2022-04-02 21:03:48 1020

原创 【数据结构—查找】二叉查找树(BST)(含代码)

文章目录二叉查找树1.定义二叉树结点结构2.查找算法3.插入算法4.删除算法二叉查找树1.定义二叉树结点结构//建议初始化struct BSTnode { int key = 0; BSTnode* left = NULL; BSTnode* right = NULL;};2.查找算法//递归版本BSTnode* search(BSTnode* t, int K) { if (t == NULL || t->key == K) return t;//递归出口 if (

2022-04-02 14:45:40 253

原创 【数据结构—图论】图的遍历(DFS、BFS)

图的遍历(DFS、BFS)关于图的遍历1.从图的某个顶点出发,访问图中所有顶点,且使每个顶点恰被访问一次的过程被称为图的遍历。2.图中可能存在回路,且图的任一顶点都可能与其他顶点相通,在访问完某个顶点之后可能会沿着某些边又回到了曾经访问过的顶点。3.为了避免重复访问,可设置一个标志顶点是否被访问过的辅助数组vis[ ],它的初始状态为0,在图的遍历过程中,一旦某一个顶点i被访问,就立即让**vis[i]**为1,防止其被多次访问。两种遍历算法都需要vis[ ]数组来标记是否访问过某个顶点!!

2022-03-30 17:11:31 1710

原创 C语言:结构体

文章目录结构体结构体类型定义形式结构体赋值结构体作函数参数(传值传地址)指向结构体的指针结构体数组结构中的结构结构体结构体类型定义形式1.struct point{ int x; int y;};struct point p1,p2;//不常用 没有声明point 只是定义了两个变量 2.struct{ int x; int y;}p1,p2; 3.struct point{ int x; int y;}p1,p2;eg:struct date{ int mont

2022-03-28 19:59:07 724

原创 C语言:指针总结(二:指针与数组、字符串)

指针与数组、字符串指针与数组—指针数组一维指针数组声明:T *p[n];//T是类型,p是标识符(被声明的数组变量),n是数组大小//*的优先级低于[]所以该声明相当于声明:T*(p[n]);//p[n]表示p是n个元素的数组,数组元素是T*类型,即指向T类型变量的指针类型p本身是一个指针常量,指向n个元素的数组,数组的每个元素是指针。指针数组是右指针构成的数组eg1-指向指针的指针、指针数组与数组的关系:#include<stdio.h>int main(){

2022-03-28 17:23:56 1973 1

原创 C语言:指针总结(一:指针与指针变量、指针的操作与运算)

一、指针与指针变量1.指针变量T* p//T *p //p是一个指针 指向T类型 即保存某个T类型变量的地址 eg: int * iptr = &x; //iptr1指向int类型变量x (保存x的地址)上例中,p即为一个指针变量指针变量:变量的值是内存的地址普通变量的值是实际的值 指针变量的值是具有实际值的变量的地址总结来说:指针也是一种变量,用来保存其他类型变量(int ,float,struct等)的地址。一个禁忌:定义指针变量后没有指向任何变

2022-03-28 09:09:23 1093

原创 LeetCode226.翻转二叉树

LeetCode226.翻转二叉树1.问题2.思路整体思路是翻转每一个结点的左右孩子,所以需要遍历二叉树。则重点是以何种方式遍历二叉树!前序、后序、层序都可以,中序不行,因为会把有的结点交换两次!下以前序为例:3.代码实现...

2022-02-14 13:08:37 311

原创 LeetCode102.二叉树的层序遍历(按层输出和统一输出)

LeetCode102.二叉树的层序遍历文章目录LeetCode102.二叉树的层序遍历1.问题2.思路(1)什么是层次遍历(2)借助队列执行3.代码实现a.按层输出版b.统一输出版1.问题2.思路(1)什么是层次遍历按照层数由小到大,同层由左向右的次序访问结点实现:(需借助队列!)在第i层上若结点x在结点y的左边,则x一定在y之前被访问。并且,在第i+1层上,x的子节点一定在y的子节点之前被访问。(2)借助队列执行运行实例:3.代码实现按层输出,就是上图中按[[A]

2022-02-13 20:07:40 3460 1

原创 LeetCode145. 二叉树的后序遍历(递归和迭代的三种方法)

LeetCode145. 二叉树的后序遍历文章目录LeetCode145. 二叉树的后序遍历1.问题2.思路(1)什么是后序遍历(2)递归(3)迭代思路a.改造先序遍历b.仿造中根遍历策略1策略2:3.代码实现(1)递归(2)迭代a.改造先序遍历b.策略1b.策略21.问题2.思路(1)什么是后序遍历(2)递归和前序中序思路一样,只是将根结点放到最后访问(3)迭代思路a.改造先序遍历b.仿造中根遍历中根遍历:1.从根节点自上而下沿着左侧分支下行,并把沿途结点压栈,直到最深的结点(

2022-02-13 19:36:09 266

原创 LeetCode94. 二叉树的中序遍历

LeetCode94. 二叉树的中序遍历文章目录LeetCode94. 二叉树的中序遍历1.问题2.思路(1)什么是中根遍历(2)递归(3)迭代3.代码实现(1)递归(2)迭代1.问题2.思路(1)什么是中根遍历(2)递归和前序后序差不多的思路!(3)迭代需要借助一个栈!一段ADL伪代码!过程模拟3.代码实现(1)递归 class Solution {public: void inOrder(TreeNode*cur,vector<int>&

2022-02-11 22:50:32 169 2

原创 LeetCode144. 二叉树的前序遍历

二叉树的前序遍历文章目录二叉树的前序遍历1.问题2.思路3.代码实现(1)递归(2)迭代(利用栈)1.问题2.思路1.首先介绍下先根遍历—按照根-左儿子-右儿子的顺序遍历整棵二叉树2.递归方法3.迭代方法栈不为空时,每次出栈一个结点,放入返回数组中!某个结点出栈之后其右左孩子入栈(有顺序!)3.代码实现(1)递归class Solution {public: void PreOrder(TreeNode*cur,vector<int>& vec)

2022-02-11 20:59:20 371 1

原创 线性栈和线性队列的类实现(另有存放二叉树指针版)

栈和队列的类实现(代替STL)1.栈线性栈//线性栈 class stack {public://1.压栈 void Push(int m) { data[top++] = m;//先赋值后++ } //2.弹出栈顶元素 int Pop() { return data

2022-02-11 20:03:46 698 1

空空如也

空空如也

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

TA关注的人

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