自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

鸿神的博客

坚持学习,不断进步~

  • 博客(98)
  • 收藏
  • 关注

原创 Tmux奇技淫巧

除了快捷键外,复制模式的启用、选择、复制、粘贴等按键也可以向。

2023-12-01 15:25:32 1648

原创 Linux周期任务

我自己博客网站里的文章。

2023-12-01 15:23:28 1061

原创 Shell脚本进阶:${}提取变量的值

用于获取变量var的值,如果var未定义或为空,则使用默认值default。这个语法在oh-my-zsh的这里就是如果用户在安装oh-my-zsh的时候指定了另外的安装目录,那么.zshrc文件中就会利用ZSH_CUSTOM变量来记录这个安装位置。用于获取变量var的值,如果var未定义或为空,则将其设置为默认值default并使用该值。count=5echo "当前计数:${count:=0}" # 5echo "变量已存在则不会重新设置:${count}" # 5在上述示例中,变量未定义或为空,

2023-12-01 15:22:20 2092 1

原创 前端随笔:HTML/CSS/JavaScript和Vue

Vue(发音为 /vjuː/,类似view) 是一款用于构建用户界面的JavaScript框架。它基于标准HTMLCSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无论是简单还是复杂的界面,Vue都可以胜任。最初Vue是一个个人项目,时至今日,已成为全世界三大前端框架之一,Github上拥有3.8万Star。React和Angular,在国内更是首选。除了为HTML定义新的标签以外,我们还可以为HTML的标签定义新的属性,而后为新的属性指定样式和行为。

2023-07-24 00:31:49 5412 6

原创 网访问内网机器:基于frp的内网穿透

既然我们需要进行内网穿透,肯定就需要有一个程序帮助我们去完成公网、私网机器连接的建立,公网机器上消息的转发等等功能,这个软件就是frp。简单地说,frp就是一个反向代理软件,它体积轻量但功能很强大。利用他就可以实现反向穿透,即可以使处于内网或防火墙后的设备对外界提供服务。它支持HTTPTCPUDP等众多协议。我们今天使用的仅限于TCP和UDP,所以使用frp是足够了。

2023-07-24 00:19:18 772

原创 Linux内核源码分析 2:Linux内核版本号和源码目录结构

最后就会导致内核中充满了各种设备的驱动程序,可能你的电脑的硬件系统上只有10多种设备,但是运行的内核里却有400多种设备的驱动程序。该目录中包含了一些预装的数字证书,这些证书可以用来验证签名的模块、内核代码和用户空间应用程序等等内容,这些证书可以用来确保这些组件是来自可信的源,从而提高系统的安全性。代码的源文件则按照一定的组织结构存放在不同的目录下,每个目录中的源代码的功能在逻辑上都有相同的点。都是块设备,因此在块的操作上,例如读取块、写入块都是一样的,只不过对具体的设备,读取块的操作不同。

2023-05-28 18:55:38 2623 1

原创 Linux内核源码分析 1:Linux内核体系架构和学习路线

好久没有动笔写文章了,这段时间经历了蛮多事情的。这段时间自己写了一两个基于不同指令集的Linux内核,x86和RISC-V。期间也去做了一些嵌入式相关的工作,研究了一下ARM指令集架构。虽然今年九月份我就要申请了,具体申请AI方向还是机器人、嵌入式、操作系统、体系结构亦或是网络、安全、虚拟化还不知道到底要申请哪个,还没定下来,感觉比较迷茫,感觉什么都蛮喜欢的,都挺感兴趣的,都可以做,因为兴趣比较广泛,大学这几年都有所研究。但是不论如何,未来我的研究方向还是会使用到Linux。

2023-05-28 18:47:26 2402

原创 VSCode调试C/C++项目

VSCode调试C/C++项目

2022-12-22 23:14:22 7730 1

原创 内存分段与内存分页:逻辑地址、物理地址、线性地址、虚拟地址

CPU访问内存:内存分段与内存分页。逻辑地址、物理地址、线性地址与虚拟地址

2022-12-05 15:18:17 3369 1

原创 哈夫曼压缩算法-Python实现

哈夫曼算法Python实现

2022-11-29 20:10:27 2448 2

原创 A*算法-Python实现

A*算法Python实现

2022-11-29 20:07:07 2243

原创 Pytorch中使用TensorBoard

本文记录了如何在Pytorch中使用Tensorboard(主要是为了备忘)

2022-02-05 02:28:31 24156 3

原创 A* 算法 Python实现

A* 算法 Python实现最近考试周,没时间封装的很好代码分两部分,定义和调用部分定义部分import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport heapqclass AstarPoint(object): ''' Astar点类 ========== 数入 ========== self_x,self_y : int, 点的坐标 g: float, 点的

2021-01-09 14:37:48 4087 11

原创 Python中的推导式

推导式 Compression推导式 ( Compression )是Python语言的一大特色相比于其他语言而言, 推导式使得Python能够编辑的进行循环,创建出特定的字典,列表等可迭代对象使用推导式可以避免代码的冗长,简化代码风格,使得代码更加的Pythonic本文就将详细介绍Python中的推导式推导式可以分为下面几种:列表推导式,字典推导式,集合推导式其实还有生成器推导式,不过不是很常用,因此不加以介绍列表推导式列表推导式指的是可以用于生成列表的推导式简单的列表推导式简单

2020-12-21 21:59:38 565

原创 Paxos算法

Paxos算法Paxos算法是一系列共识算法中的一个,其目的就是为了解决共识/一致性问题这个Github连接中详细的列出了多种共识算法,还有一些工程实践的例子: 腾讯, Zookeeper(Handpoo下的一个分布式框架(Handoop是一个大数据分析和处理的软件平台,用Java写的,可以对大量计算机组成的集群进行海量数据的分布式计算))本文主要介绍Paxos算法的背景和运用三篇Paxos算法的文章: The Part-Time Parliament ,Paxos made simple,Fa

2020-12-16 14:00:33 555

原创 Arduino多种传感器使用方法

Arduino项目: 智能窗户前段时间参加了一个Arduino的比赛,具体内容就是用Arduino设计一个项目出来我在的队伍的设计的项目就是智能窗户,智能窗户可以采集本地传感器采集到的环境参数,根据参数具有一套内部的逻辑判断,可以对温度,湿度,光强,粉尘等因素实现智能开闭(例如高温开窗通风),还能把这些参数发布到局域网上,用户访问192.168.4.1就能够看到此外用户还自己控制开闭,定时开闭等等,考虑未来写一个手机APP来远程控制,在后台搭一个服务器,来在互联网上发布. 还准备训练一个神经网络放到服

2020-12-16 13:57:00 4928

原创 3.Latex语法基础:命令与环境

三.Latex语法基础:命令与环境前面我们已经做好了开始编写Latex的一切准备工作,从这章开始,我们将开始讲解Latex语法本章将讲解Latex语法的基础: 命令与环境1.命令与环境命令什么是命令不同于其他编程语言(C/C++, Python等)会使用关键词,函数和类来实现程序,Latex语法中大多以命令的形式存在而每一个命令都会有具体的功能,如标题制作,目录制作,或者是设置文档的编码格式等等命令的格式Latex中的命令具体有以下三种形式无参数\commadcommand就是

2020-12-04 11:49:18 1695

原创 2.Latex安装和TeXworks Editor基础

二.Latex安装和TeXworks Editor使用教程上一章我们讲解了什么是Latex和为什么我们要学习Latex,从这一章开始我们就要正式开始学习Latex就像前面所讲的,Latex包含编译器和编辑器,我们需要在编辑器中编写夹杂代码的文本,然后通过编译器编译来查看效果,本章作为后面学习的基础,将讲解Latex的安装和编辑器TeXworks Editor的基础使用1.安装LatexLatex具有Windows版和Linux版,由于目前本人是Windows版,因此这里的是Windows教程,未

2020-12-04 11:44:38 10128

原创 1.Latex介绍

Latex介绍本人鸿神,目前就读于XJTU,是一个即将开始科研的小白.既然做科研未来就无法避免发表论文,而发表论文就需要用到一系列的工具,Latex就是其中之一.谨以此文记录我的科研路,也希望Latex这一系列文章能够帮到各位.1.什么是LatexLaTex是一个用于创建看起来非常专业的文档(论文,报纸等)排版工具. 我们学习一个东西的时候最好要先对这个东西有一个形象的认知,具体的来说,Latex包括一个文本编辑器(TeXworks editor,类似于word), Latex编译器, 一套Late

2020-12-03 23:39:36 27234 3

原创 4_Publieher的编程实现

4_Publisher的编程实现我们前面讲解了如何创建工作空间和功能包,但是我们都仅仅只创建了一个空的工作空间和功能包,什么都没有实现我们想要进一步为功能包添加功能,就不可避免的需要添加Publisher和Subscriber.下面我们就将讲解Publisher和Subscriber的编程实现,我们同样,还是以小海龟仿真器为例,只不过这次我们将通过编程来实现让小海龟动起来,而非通过命令行工具0.明确任务我们前面所讲的Publisher和Subscriber本质上都是节点,因此我们下面要实现一个能

2020-12-02 23:35:36 184

原创 3_ROS创建工作空间和功能包

3_ROS创建工作空间和功能包前面我们讲解了ROS中的核心概念和使用ROS进行开发时候必须用到的命令行工具下面我们就正式开始ROS中的开发,我们首先从创建工作空间和功能包开始1.工作空间WorkSpace工作空间是ROS中非常重要的概念,我们进行开发首先就需要明白什么是工作空间,然后才能进行开发什么是工作空间?我们通常称当前开发的项目为一个工程举例来说,加入我们现在要制作一个APP,那么这个APP的制作就是一个工程工作空间指的是存放工程开发相关文件的文件夹,其中包含了工程的所有内容,例如源代

2020-12-02 23:28:28 513

原创 2_ROS中的命令行工具

ROS中的命令行工具ROS中为我们提供了丰富的命令行工具,帮助我们进行代码的编写,调试,测试,框架的搭建,数据的显示等等大图如下,所有的命令大致可以分为四类,分别是运行相关命令,编译相关命令,包制作管理相关命令,项目创建相关命令下面进行详细的讲解ROS 运行相关命令roscoreroscore用于启动一个ROS Master,直接输入命令即可启动jack@ubuntu:~$ roscore 运行结果如下rosrunrosrun用于运行一个功能包中的某个节点,其后接两个参数,一个

2020-11-28 13:33:09 319

原创 1_ROS基础

ROS基础本章讲解ROS中最基础的概念,不明白这些概念是没法学懂ROS的,学习了这些概念,后面我们将通过实操来在实践的过程中进一步体会ROS是什么ROS (Robot Operating System, 机器人操作系统)是一个提供一系列程序库和工具以帮助软件开发者创建机器人应用的软件。它提供了硬件抽象、设备驱动、函数库、可视化工具、消息传递和软件包管理等诸多功能。简单的来说,ROS是一个机器人操作系统,是一系列软件的集合.这些软件加在一起能够实现控制机器人这个目的在此基础上,我们可以选择合适的

2020-11-28 10:28:40 307

原创 小白安装Ubuntu 18.04 LTS

文章目录小白安装Ubuntu 18.04 LTS作者:王仕鸿日期:2020-10-10前言(可跳过)Ubuntu介绍操作系统介绍Ubuntu介绍安装Ubuntu 18.04 LTS步骤一:划分存储空间步骤二:制作系统盘1.下载ISO文件2.下载硬盘刻录软件:软碟通3.刻录系统盘步骤三:检查开机引导设置0.进入BIOS1.检查磁盘模式2.检查BIOS Security Boot3.检查开机引导文件4.保存设置步骤四:安装Ubuntu1.进入Ubuntu安装界面2.安装流程选择语言选择键盘布局连接WiFi选择安

2020-10-16 21:16:38 4642 2

原创 使用Visual Studio Code开发Arduino踩坑日记(持续更新)

使用Visual Studio Code开发Arduino踩坑日记(持续更新)文章目录使用Visual Studio Code开发Arduino踩坑日记(持续更新)在browse.path中未找到包含文件问题描述问题分析解决思路解决过程附:查看库文件位置环境描述:Windows10由于项目要求Arduino IDE 1.5.2,亲测最新版本也可VScode 1.49.3 (user setup)Arduino插件 0.3.2在browse.path中未找到包含文件问题描述在Arduin

2020-10-04 11:56:31 7576 4

原创 第六节:Pytorch实现全连接神经网络

第六节:Pytorch实现全连接神经网络前面的五节中,我们讲解了使用PyTorch搭建一个神经网络中需要的需要各种技巧,包括:网络的搭建、选择不同的实践技巧(优化器选择、学习率下降等等)以及可视化训练过程接下来的几章,我们将使用Pytorch搭建各种神经网络本章我们将使用PyTorch从头到尾完整的搭建一个全连接神经网络我们使用垃圾邮件分类和加利福尼亚房价数据两个数据集来进行训练,分别对应机器学习中有监督学习的分类和回归任务分类任务:垃圾邮件分类垃圾邮件分类的数据集可以在加利福尼亚大学尔湾分校的

2020-09-19 19:19:30 15073 9

原创 第五节:基于Pytorch的相关可视化

第五节:基于Pytorch的相关可视化在Pytorch发布后,网络及训练过程的可视化工具也相应的被开发出来来帮助用户监督所建立的模型的结构和训练过程本章将讲解HiddenLayer库,HiddenLayer库是一个非常简单、已与扩展、可用于可视化深度学习训练过程及网络结构的、可以喝Jupyter Notebook完美兼容的库HiddenLayer开发的初衷是对于小型的项目,没有必要使用TensorBoard这类复杂的高级工具来进行检测,所以HiddenLayer是一个轻量化、小型的可视化工具,除了对P

2020-09-17 12:35:15 2829

原创 C++中的多态:虚函数

C++中的多态:虚函数上一章讲解了C++中类的继承,这一节将讲解面向对象编程的核心:多态本章内容如下:什么是多态虚函数的用途和用法什么是抽象类以及如何声明他们什么是虚继承以及在什么情况下使用虚继承多态基础多态的英语是ploymorphism, ploy源自于希腊语,是多的意思,而morhph是形态的意思。多态是面向对象语言的基础,能够让我们以类似的方式处理不同而又类似的对象。多态即多种形态,指的是在面向对象语言中,接口的多种不同的实现方式。其目的是为了实现借口重用,对于函数而言就是对

2020-09-14 16:06:10 485

原创 C++中的继承

C++中的继承面向对象编程思想的核心是四个概念:封装,抽象,继承和多态封装就是将一组功能封装为一个函数,只需要暴露其接口即可。抽象就是将具有共同特征的事物抽象为同一个类。本章将讲解C++中的继承,继承是通往多态的跳板,我们需要先掌握C++的继承才能够掌握多态本章内容如下:继承的含义及其在编程中的含义C++的继承语法公有继承,私有继承和保护继承多继承隐藏基类方法和切除(Slicing)导致的问题继承的含义通常意义下的继承王五的儿子叫王六,王六从王五继承的东西中,最重要的是姓,其次

2020-09-14 16:05:14 290

原创 C++中的类和对象

C++中的类和对象前面,我们分别讲解了C++和C语言中不同的语言特性,包括使用auto自动推断数据类型,使用new和delete实现动态数据存储等等至此我们已经能够实现基础的C++程序编写了,下面就将讲解C语言和C++中最大的不同,即C++中的类和对象C++是一门面向对象的语言,自然界中的万物都可以被视为对象,因此使用面向对象的方法,我们能够实现更加高级,简洁,易于维护的代码类和对象介绍假如我们现在要编写一个程序来模拟人.每个人都具有共通的特征:名字,年龄,性别,可以说话,可以坐下等等总的说,

2020-09-14 16:04:02 675

原创 C++中的指针与引用以及动态内存分配

C++中的指针与引用以及动态内存分配对于C语言和C++来说,最重要的一个内容就是指针。使用指针能够让我们实现对内存的高效利用,提高程序的效率,但是很多埋藏的很深的Bug都和指针有关,因此如果想要很好的使用指针首先需要对指针具有深入的了解同时在C语言中,我们通常结合stdlib.h头文件中的malloc和calloc函数来实现指针的高效存取。但是在C++中,我们可以直接使用关键字new和delete来实现动态内存的分配而不需要使用上面的两个函数。此外,C++中还具有C语言所不具有引用特性,因此本章讲解的

2020-09-14 16:02:48 2744

原创 C++中的动态内存分配

C++中的动态内存分配在C语言中,我们可以使用malloc和calloc以及free等函数来实现动态内存分配实际上C++作为C语言的继任者,也实现了由用户进行动态内存分配,只不过在C++中,不再使用malloc和calloc以及free等函数来进行,取而代之的是使用new和delete等关键字进行内存的分配与回收使用new来分配新内存我们可以使用关键字new来分配新内存,通常情况下,如果成功分配,将会返回一个指针,如果未能成功分配将会引发异常数据类型 * 变量名 = new 数据类型我们也可

2020-09-14 16:01:41 1499

原创 第四节:Pytorch数据处理与模型保存

第四节:Pytorch数据处理与模型保存本节将讲解数据操作与模型保存其中数据处理包含数据处理与数据导入,数据处理能够帮助导入训练数据集,对数据进行正则化等功能此外模型保存将会帮助我们保存已有的成果这节讲解完毕我们就已经能够训练我们自己的网络,下一节我们将讲解网络结构可视化相关工具来帮助我们检测、表达网络的结构数据处理常用的类Pytorch的torch.util.data模块中包含着一系列常用的数据预处理的函数或类,其中有数据的读取、切分、准备等内容我们下面对于某一类任务的具体数据处理都将基于

2020-09-14 15:58:49 3974

原创 第三节:工程实践技巧的Pytorch实现

第三节:工程实践技巧的Pytorch实现我们在CS231n的笔记中我们讲解了在搭建一个网络的时候我们会用到的各种小技巧(Fancy Trick),例如使用Mini-batch而非单个数据来进行训练,我们优化参数矩阵的时候采取各种AdamGrad,Momentum SGD等等而非简单的SGD,我们不使用正态分布而是凯敏初始化方法或者Xavier初始化方法等来初始化参数矩阵避免训练失败等等我们真正搭建一个可实际运用的网络的流程如下:确定网络结构例如:输入 -> 卷积层1 -> 池化层1 -

2020-09-13 00:53:25 558

原创 第二节:Pytorch基础Tensor,Autograd和nn

第二节:Pytorch基础Tensor,Autograd和nn上一节主要讲解了选择Pytorch的原因,以及本笔记的开发环境,从本节开始就要正式开始讲解Pytorch的内容本节将讲解Pytorch中的三个基本概念,分别是Tensor,Autograd和moudle / nn就像我们学习任何一个库首先需要了解的就是这个库中的一些基本概念,我们学习Pytorch时的第一步就是要搞懂Pytorch中的基本概念学习的过程就像前面我们学习Pandas库的用法的时候一样(详见我的Pandas学习专栏),我们对P

2020-09-11 16:10:35 1338 3

原创 第一节: Pytorch介绍及环境搭建

第一节: Pytorch介绍及环境搭建近年来随着深度学习的火爆,世界上出现了很多现成的深度学习的框架,可以让人们快速的搭建出自己的神经网络而不用浪费大量的时间用于重复造轮子,Pytorch就是诸多深度学习的框架之一本节将首先讲解诸多深度学习框架之间的关系,而后讲解为什么我们选择Pytorch而非其他的框架最后本教程实际上作为我自己学习Pytorch的笔记,为了后来参考我的笔记的人能够成功的跟随笔记 / 教程复现结果,将讲解我的电脑上的环境配置诸多深度学习框架间的关系深度学习的火爆得益于2012年I

2020-09-09 20:59:23 1242

原创 Typora笔记_2:Markdown语法

Markdown语法下面将结合具体效果与代码讲解Markdown语法注意,给出的快捷键都是Typora所支持的,不同软件 / 平台支持的Markdown语法可能在细节上有所不同,但大体上都是一样的标题类下面是各种标题的效果以及如何对应的语法和快捷键#+[空格]+标题内容+或快捷键[Ctrl] + 1创建一级标题##+[空格]+标题内容+或快捷键[Ctrl] + 2创建二级标题###+ [空格]+标题内容+或快捷键[Ctrl] + 3创建三级标题####+[空格]+标题内容或快捷键[Ctrl]

2020-08-14 00:23:00 378

原创 Typora笔记_1:Typora介绍

Typora介绍官方网站: https://www.typora.com支持平台:WindowsLinuxOSX特点:完美支持 GitHub 的 Markdown 语法支持HTML标签人性化的书写方式:表格的书写,挪动图片,超链接,网页表格复制目录生成支持 LeTex 公式书写支持 Flowchart , Mermaid 等流程图绘制emoji,高亮,备注,上标,下标等书写生成网页, PDF ,图片,甚至 word , LexTex 等格式本笔记主要讲解Typ

2020-08-14 00:12:45 378

原创 1.C语言进阶C++:C++简介以及使用Ubuntu编译C++

文章目录第一章: 绪论C++简史及特点编写C++程序的步骤步骤实例第一章: 绪论阅读本学习笔记,最好提前掌握C语言(和我的现在的条件一样),这样能够更好地跟随笔记的内容学习C++其次如果没有学习过C语言推荐看我的C语言的笔记.C语言和C++的学习笔记搭配专栏中的书食用效果更佳.本章主要内容如下:C++的历史及特点编译C++程序的步骤(结合实例)C++简史及特点C++是C语言的升级版,和C语言一样诞生于贝尔实验室,旨在于作为C语言的继任者.但是和C语言不同的是C++是一种面向对象的语

2020-08-12 16:56:02 325

原创 C++中的常量

C++中的常量在C语言的学习中,我们已经介绍了变量和常量的内容,但是在C++中关于常量却有了新的特性,因此下面九江讲解C++中的常量所谓常量是指不能修改值的量在C++中,常量可以是以下形式字面常量关键字const声明的常量关键字constexpr声明的常量表达式(C++11新增的特性)关键字enum中声明的枚举常量使用#define定义的常量(不推荐使用)字面常量字面常量是指我们源代码中所出现的任何的常量,它可以是任何类型,例如#include <iostream>

2020-08-11 16:27:23 1547

空空如也

空空如也

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

TA关注的人

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