自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 aarch64架构下的centos7深度学习服务器配置

【代码】aarch64架构下的centos7深度学习服务器配置。

2024-03-19 15:34:49 214

原创 Ubuntu22.04 安装深度学习服务器全纪录

将U盘插到服务器上,开机按F11键(具体什么键跟主板型号有关)选择启动项进入临时的 Ubuntu 系统,在图形界面中选择 Install Ubuntu ,所有配置都可以使用默认的,改一下用户名和密码即可。表示版本信息为8.9.2。

2023-07-21 17:11:02 795 1

原创 机器学习算法原理——感知机

超平面:在几何空间中,如果环境空间中是nnn维,那么它所对应的超平面就是n−1n - 1n−1维的子空间。感知机必须要求数据集线性可分,因为算法的停止条件就是没有误分类点。对于所有误分类点到S\rm SS−1∥w∥∣w⋅x0b∣−∥w∥1​∣w⋅x0​b∣1∥w∥∥w∥1​不影响损失函数的正负值判断,同时不影响感知机的分类结果,故在损失函数中不体现。梯度可以简单理解为对损失函数求偏导。

2023-03-01 21:25:02 452 1

原创 机器学习算法原理——逻辑斯谛回归

逻辑斯谛回归归根结底是将分类问题用回归模型来解决。正态分布是在给定均值和方差的情况下具有最大熵的分布,这样的假设可以使得数据携带的信息量最大。通常在没有任何假设的情况下,连续型数据常被假设为正态分布,离散型数据常被假设为等概率分布。逻辑斯谛回归学习中通常采用的方法是梯度下降法及拟牛顿法。

2023-03-01 21:22:50 716

原创 机器学习算法原理——决策树

已知:训练集:T={(x1,y1),(x2,y2)⋅⋅⋅⋅,(xN,yN)}T=\{(x_{1},y_{1}),(x_{2},y_{2})\cdot\cdot\cdot\cdot,(x_{N},y_{N})\}T={(x1​,y1​),(x2​,y2​)⋅⋅⋅⋅,(xN​,yN​)}其中 xi=(xi(1),xi(2),⋯ ,xi(n))T,  yi∈{1,2,⋯ ,K},  i=1,2,⋯ ,N;x_{i}=(x_{i}^{(1)},x_{i}^{(2)},\cdots,x_{i}^{(n)})^

2023-02-24 09:27:46 359

原创 机器学习算法原理——贝叶斯定理

贝叶斯定理中,分母的PXx∑i1KPXx∣Yci⋅PYciPXx∑i1K​PXx∣Yci​⋅PYci​其实就是全概率公式。后验概率由先验概率和条件概率共同求得。先验概率和条件概率可以求得联合概率分布。(13)式中,LciyL(c_i, y)Lci​y为 0 - 1 损失函数,若使fxf(x)fx。

2023-02-21 09:28:35 304

原创 机器学习算法原理——k近邻 / KNN

较小的kkk值,学习的近似误差减小,但估计误差增大,敏感性增强,而且模型复杂,容易过拟合。较大的kkk值,减少学习的估计误差,但近似误差增大,而且模型简单。kkk的取值可通过交叉验证来选择,一般低于训练集样本量的平方根。分类决策规则使用 0-1 损失函数,因为分类问题只有分类正确和分类错误两种可能。kd 树构建时对于超平面的划分,二位空间划分为矩形,三维空间划分为长方体。构建完成的 kd 树,类似于二叉排序树,每一层代表着一个维度。kd 树的搜索,类似于二叉排序树的搜索过程。

2023-02-20 15:55:27 434

原创 C++ 折半插入排序

折半插入排序是直接插入排序的优化,查找待插入元素的位置时使用折半查找。折半插入排序仅减少了比较次数,并未改变移动次数,故时间复杂度仍为On2O(n^2)On2。算法原理如下:1.设置第一个元素为有序区域,有序区域之后的第一个元素设为“标兵”。2.使用折半查找遍历有序区域,找到对应位置后右移后面的元素进行插入。3.当“标兵”大于某一元素时,将“标兵”插入该位置(因为是有序区域,“标兵”前面的数据一定是有序排列的)。4.更新有序区域和“标兵”, 持续遍历。

2023-01-29 16:56:25 1241 1

原创 VMware 安装win7虚拟机

安装 win10 虚拟机是出现了问题,win10的 ISO 大于了 4G ,导致一直出现了 operating system not frond 的错误,换了一个小于4G的 win7 ISO 就没有出现这个报错。小于4G 的 win7 ISO 链接:https://pan.baidu.com/s/1wDoEKO6rEWmMTHBLTKfmpQ ,提取码:16vd创建虚拟机的步骤不写了,网上很多,没有区别,主要写一下创建完成后装系统的步骤。创建完成后,注意以下箭头处的修改:设置完成后,运行虚拟机,根.

2022-02-27 20:17:30 974

原创 C++ 折半查找(二分查找)

总结归纳二分查找的时间复杂度:O(logn) 。二分查找需要线性表有序,对于静态线性表,可以先使用 C++ 的标准库函数 sort() 或 C 语言的标准库函数 qsort() 进行排序,再进行查找。在高校的机试考试中,不必重写一个排序算法,直接调接口即可。二分查找的过程: low 指针指向最左边,high 指针指向最右边,每次判断中间数据 (low + high) / 2 是否等于要查找的值,若中间值小于要查找的值,意味着查找值位于中间点右侧,令 low = mid + 1,缩小一半的查找空间;若

2022-02-24 20:44:20 1897

原创 VScode 解决终端及代码页面中文乱码

网上的教程都是以前的方法,大部分都是代码中文和终端中文不可兼得,但 VScode 的最新更新解决了这个问题。进入 setting.json,添加以下内容:"terminal.integrated.profiles.windows": { "PowerShell": { "source": "PowerShell", "overrideName": true, "args": ["-NoExit", "/c", "chcp 650

2022-02-24 16:29:03 317

原创 C++ 二叉排序树

总结归纳二叉排序树的要求:树根的左子树,均要小于树根;树根的右子树,均要大于树根。对于任意一个结点及其子树,均要满足二叉排序树的要求。基于二叉排序树的基本特性,可知:左子树的最大数据一定位于左子树的最右边;右子树的最大数据一定位于右子树的最左边。对于二叉排序树的构建,依次与树 / 子树的根结点进行对比,小于根结点,放在左边;大于根结点,放在右边,直到插入位置左右子树为空时停止,在该位置插入。二叉排序树的最大查找次数,就是树的深度,类似于折半查找,每查一次排除一半的树。删除二叉排序树的过程: 基于

2022-02-23 19:59:24 2535

原创 VSCode 调试C/C++设置

进入 vscode 文件夹,找到 “.vscode” 文件夹,对配置文件配置文件 launch.json 和 tasks.json 进行设置(没有就新建):launch.json:需修改一处:将"miDebuggerPath" 选项设置为你的调试器(gdb.exe)所在位置,即 mingw64 的安装位置{ "version": "0.2.0", "configurations": [ { "name": "C/C++",

2022-02-23 18:33:39 648

原创 C++ 栈的括号匹配

总结归纳算法思想: 设置一个空栈,顺序读取括号。读取左括号时,将括号入栈;读取右括号时,弹出栈顶元素,栈顶即是与之匹配的最近的左括号。匹配不成功的三种情况:(1)读取右括号时,此时栈空,没有与之匹配的左括号。(2)读取右括号时,弹出的栈顶左括号与之不匹配。(3)顺序读取括号后,栈不为空,即有括号未被匹配。代码实践/*栈的括号匹配*/#include <iostream>#define MaxSize 10 // 栈中元素的最大个数using namespace std

2022-02-17 11:22:07 4186

原创 C++ 二叉树的层次建树及其遍历

总结归纳先序遍历:根左右;中序遍历:左根右;后序遍历:左右根。若选取层次建树,则需要一个链式队列辅助实现 (规定,不必问为什么) 。该辅助队列的具体操作流程::队列结点的数据域 p 存放的是树结点的地址 ( BiTNode *p 类型 ) ,头指针 phead 指向该队列头部,尾指针 ptail 指向该队列尾部,队列指针 pCur 始终指向当前操作位置,当前操作位置指的是:有新结点加入二叉树时,新结点作为队列指针 pCur 所指向的树结点的子孩子。此时,若 PCur 所指向树结点的左孩子为空,将新结

2022-02-06 11:20:51 2263

原创 有些意思的C/C++编程题

1.2. 某人想将手中的一张面值100元的人民币换成10元、5元、2元和1元面值的票子。要求换正好40张,且每种票子至少一张。问:有几种换法?***解题思路:***穷举法,没啥好说的。***优化方式:***减少穷举次数:要每种钞票最少一张,所以 10 元钞票最多只能有 9 张;同理,5 元钞票最多只能有 19 张,2 元的和 1 元的最多只能有 37 张。#include <iostream>using namespace std;// 穷举法思想int main() {

2022-01-07 16:49:07 942 1

原创 C语言 scanf的工作原理

先来观察一段代码和运行结果:#include <iostream>using namespace std;int main() { int a; char c; scanf("%d", &a); printf("a = %d", a); scanf("%c", &c); printf("c = %c", c);}该代码明明有两个 scanf ,但在运行过程中,执行完第一个 scanf 和 printf 后,代码直接

2022-01-03 22:18:39 1696 8

原创 C++ 解决 VS Code 运行后无法 cin 的问题

参考链接:https://www.cnblogs.com/yqyang/p/13151160.html#4996432进入 setting ,搜索 code-runner ,下拉找到 “Run In Terminal” 勾选,下拉找到 “Ignore Selection” 勾选:

2022-01-02 17:38:42 3508 3

原创 C++ 链式队列(不带头结点)

文章目录总结归纳代码实现总结归纳对于不带头结点的队列 / 链表等数据结构,第一个插入的结点总要特殊处理,而带头结点的数据结构就没有这个问题。对于销毁队列 DestroyQueue(LinkQueue &Q, ElemType &x) ,只需要一个循环判断:若队列一直不为空,则一直出队。其他的数据结构也是类似,通过一个递归实现。PS:返回 bool 类型的好处在这里体现了,while 循环里可以直接通过 ! 判断。// 销毁队列bool DestroyQueue(LinkQue

2021-12-14 12:23:32 2112

原创 C++ 链式队列(带头结点)

文章目录总结归纳代码实现总结归纳带头结点的链式队列的初始化,Q.front 指向头结点,Q.front->next 为队头元素,Q.rear 指向队尾。对于链式队列,每一个结点都是一个结构体,这个结构体应该包含 data(数据域,存放数据)和 next(指针域,存放下一个结点的地址),但基于队列先进先出的特性,我们还需要一个队头指针和队尾指针,所以需要再定义一个只包含队头指针和队尾指针的链式队列结构体,这是和之前数据结构不同的地方。值得一说的是 GetHead(LinkQuene &

2021-12-13 20:16:36 1704

原创 C++ 循环队列

文章目录总结归纳代码实现总结归纳队列实际上就是现实生活中的排队,队头的人先走,新来的人排到队尾。先进先出,后进后出。队列的实现,需要一个队头指针,一个队尾指针,用于入队和出队。对于循环队列,初始化时需将 Q.front = Q.rear = 0,Q.front 指向队头,Q.rear 指向新元素入队的位置。循环队列,物理上仍然是申请一片连续的内存空间,但通过 (Q.rear + 1) % MaxSize == Q.front 的判断条件从逻辑上模拟环状空间,从而实现循环队列。代码中值得一提的是

2021-12-13 13:20:23 1857

原创 C++ 链栈

总结归纳我想了又想,觉得链栈的实现只能是头插法建立单链表,S 为头结点,S-next->data 是栈顶元素,S->next 是栈顶指针,每次弹出就是通过头结点找到栈顶元素,再将栈顶指针后移,其实就是单链表里实现的那一套。其他的形式我实在是写不出来,如果有可以在评论区告诉我,感激不尽。这里为链栈设置了头结点,代码写起来更方便。对于不设置头结点的链栈,我认为也能实现,毕竟都有不带头结点的单链表,这单链表和链栈简直是一家子。在写代码过程中,对 . 和 -> 的使用产生了疑问,经过查询,

2021-12-08 17:29:55 537

原创 C++ 共享栈

文章目录总结归纳代码实现总结归纳共享栈的实现,就是申请一块内存,两个栈共同使用同一块内存空间,代码实现/*共享栈*/#define MaxSize 10 // 栈中元素的最大个数#include <cstdlib>#include <iostream>#include <string>using namespace std;typedef int ElemType;struct ShStack { ElemType data

2021-12-06 19:48:50 808

原创 C++ 栈

文章目录总结归纳代码实现总结归纳栈的特点是先进后出(First In Last Out / FILO),可以理解为叠罗汉,先来的叠在最下面,要等上面的都抽走了它才能出来。栈的创建、入栈、出栈、查找,都是在O(1)的时间复杂度内完成。关于销毁栈,这里使用的是静态数组,所以只需将S.top重置为-1,即为清空栈(逻辑上),新元素的入栈直接覆盖即可。通过变量声明占用的内存,将在代码结束后由系统自动回收,只有通过 malloc / new 申请的内存空间,才需要手动 free / delete。代码

2021-12-06 17:11:00 1451

原创 零基础学习CSS(18)——float、clear

官方资料鱼C课程案例库:https://ilovefishc.com/html5/html5速查手册:https://man.ilovefishc.com/html5/css速查手册:https://man.ilovefishc.com/css3/学习正文float:https://man.ilovefishc.com/pageCSS3/float.html使用 float 可以使子元素浮动到父元素的左 / 右侧:<!DOCTYPE html><html><

2021-11-04 11:23:13 194

原创 python 解决OpenCV的imread不能读取中文路径的问题

import numpy as npimport cv2cv_img = cv2.imdecode(np.fromfile(jpg_path, dtype=np.uint8), -1) # 读取8位图像

2021-10-30 21:05:46 1956

原创 VS Code 安装及C++环境配置

重装系统之后什么都要重新装,很烦。。。1.VS Code下载渠道很多,我这里官网太慢了,重装后以前的IDM也找不到了,所以选的腾讯软件管家下载:https://pc.qq.com/detail/16/detail_22856.html2.配置MinGW-w64https://sourceforge.net/projects/mingw-w64/files/找到那个x86_64-win32-seh的链接,点击下载:3.配置环境变量下载后是一个7z压缩包,解压后找到bin文件夹,将其放入Path

2021-09-28 18:02:10 500

原创 C++ 静态链表

总结归纳顾名思义,静态链表的长度是不可变的。静态链表的定义,实际上是一个 MaxSize 长度的结构体数组,以此来模拟链表。静态链表的 data 存放数据, next 存放下一个结点的位置。当静态链表遍历时,通过 next 指向的位置来进行遍历,依次达到链表的目的。由第 3 条可知,静态链表在物理空间上是连续的,但在逻辑空间上可以不连续。默认用 next 指向 -1 来表示静态链表的最后一个结点;初始化静态链表时,要初始化 data 来清理脏数据,还要将 next 置为一个特殊值,不能与静态链表

2020-11-21 20:33:02 1141

原创 C++ 循环双链表(带头结点)

文章目录总结归纳代码实现总结归纳在 InsertPriorNode 函数(前插操作)中,如果想在表尾处插入结点,则无法进行,需要特殊处理,比较简单,这里没有写出;同时,也可以使用 InsertNextNode 函数(后插操作)来实现。循环双链表的实现与循环单链表大同小异,甚至还更为简洁。由于可以快速找到指定结点的前驱结点,所以很多对头结点、尾节点的插入和删除操作就不用特殊处理。当然,循环双链表要付出一定的内存代价。代码实现/*循环双链表(带头结点)*/#include <ios

2020-11-19 20:19:45 770

原创 C++ 循环单链表(带头结点)

文章目录总结归纳代码实现总结归纳在 InsertPriorNode 函数中(前插操作),存在一处 bug ,如果在头结点前进行插入会出现数据混乱的情况,因为头结点不存在数据。初步估计,可以通过遍历找到头结点的前一个结点(即最后一个结点),再进行插入操作。在 DeleteNode 函数中(删除指定结点),如果删除的是最后一个结点,则要特殊处理,需要通过遍历找到该结点的前驱结点,再进行删除操作。循环链表比起单链表,它的优势在于:知道一个结点,就可以知道该结点的前驱结点,以致于所有结点;而单链表必须通过

2020-11-18 19:02:02 1608 6

原创 C++ 单链表(无头结点)

文章目录总结归纳代码实现总结归纳头结点可以没有,头指针必须有。访问整个链表,是用过遍历头指针来进行的。这里没有特别的设置一个头指针,因为当指针指向整个链表 L 时,该指针的实现效果就是头指针。不带头结点的单链表,即单链表的第一个结点就存储数据,头指针也指向第一个结点;带头结点的单链表,第一个结点是头结点,不存储数据,从头结点的 next 开始存储,头指针可以从头结点的 next 开始遍历。对于结点的前插操作,找到对应位置的结点,设新结点为该节点的后继结点,将该结点的 data 后移至新结点的 d

2020-11-17 17:34:35 4716 3

原创 C++ 单链表(带头结点)

#include <iostream>#include <stdio.h>#include <string>using namespace std;// 单链表结点struct LNode { int data; // 数据域 LNode *next; // 指针域};// 单链表struct LinkList { LNode *head; // 头结点 int length; // 单链表长度};//

2020-11-17 16:51:07 5172 3

原创 C++ 顺序表(动态分配)

/*顺序表————动态分配*/#define InitSize 5 // 顺序表初始长度#include <iostream>#include <stdio.h>using namespace std;struct SqList { int *data; // 数组 int MaxSize; // 顺序表的最大长度 int length; // 顺序表的当前长度};// 初始化顺序表void InitList(SqList &L

2020-11-02 17:20:55 2854

原创 C++ 顺序表(静态分配)

/*顺序表————静态分配*/#define MaxSize 15 // 顺序表的最大长度#include #include <stdio.h>using namespace std;struct SqList {int data[MaxSize]; // 数组int length; // 顺序表的最大长度};// 初始化顺序表void InitList(SqList &L) {for (int i = 0; i < MaxSize - 5;

2020-11-02 16:28:35 539

原创 C++ 插入排序

基本原理设置第一个元素为有序区域,有序区域之后的第一个元素设为“标兵”。反向遍历有序区域,如果“标兵”小于其中的某一元素,则使该元素右移。当“标兵”大于某一元素时,将“标兵”插入该位置(因为是有序区域,“标兵”前面的数据一定是有序排列的)。更新有序区域和“标兵”, 持续遍历。以下 gif 参考https://blog.csdn.net/L_PPP/article/details/108498581:第一次遍历效果:第二次遍历效果:代码实现#include <iostream&

2020-10-19 14:35:49 231

原创 零基础学习CSS(17)——display、visibility

官方资料鱼C课程案例库:https://ilovefishc.com/html5/html5速查手册:https://man.ilovefishc.com/html5/css速查手册:https://man.ilovefishc.com/css3/学习正文display:https://man.ilovefishc.com/pageCSS3/display.htmlvisibility:https://man.ilovefishc.com/pageCSS3/visibility.html可通过

2020-10-18 16:38:37 278 2

原创 零基础学习CSS(16)——轮廓设计、元素阴影

官方资料鱼C课程案例库:https://ilovefishc.com/html5/html5速查手册:https://man.ilovefishc.com/html5/css速查手册:https://man.ilovefishc.com/css3/学习正文outline-offset:https://man.ilovefishc.com/pageCSS3/outline-offset.htmlbox-shadow:https://man.ilovefishc.com/pageCSS3/box-s

2020-10-18 16:13:06 269

原创 零基础学习CSS(15)——元素尺寸

官方资料鱼C课程案例库:https://ilovefishc.com/html5/html5速查手册:https://man.ilovefishc.com/html5/css速查手册:https://man.ilovefishc.com/css3/学习正文box-sizing:https://man.ilovefishc.com/pageCSS3/box-sizing.htmloverflow:https://man.ilovefishc.com/pageCSS3/overflow.htmlr

2020-10-18 15:57:10 328

原创 零基础学习CSS(14)——内边距和外边距

官方资料鱼C课程案例库:https://ilovefishc.com/html5/html5速查手册:https://man.ilovefishc.com/html5/css速查手册:https://man.ilovefishc.com/css3/学习正文设置内边距:<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>内边距</title>

2020-10-18 15:35:35 246 1

原创 零基础学习CSS(13)——边框设置

官方资料鱼C课程案例库:https://ilovefishc.com/html5/html5速查手册:https://man.ilovefishc.com/html5/css速查手册:https://man.ilovefishc.com/css3/学习正文设置边框样式:<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>边框的各种样式</title

2020-10-18 15:17:21 388

空空如也

空空如也

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

TA关注的人

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