搓OS-day2
手搓OS-day2
今天看的东西全都围绕这两个C语言代码展开
12345678910111213// say.cvoid putch(char ch);int putchar(int ch);void say(const char *s) { for (; *s; s++) {#ifdef __ARCH__ putch(*s); // AbstractMachine,没有 libc,调用 TRM API 打印字符#else putchar(*s); // 操作系统,调用 libc 打印字符#endif }}
12345// main.cvoid say(const char *s);int main() { say("hello\n");}
操作系统上的C程序
编译过程的一些参数含义
12345gcc -c -O2 -o main.o main.cgcc -c -O2 -o say.o say.c# -c 表示生成目标文件而不进行链接# -O2 表示使用优化级别为O2# -o ...
搓OS-day1
手搓OS-day1
今天进入正式开搓的阶段(霉比
maybe),今天比较大的阻碍还是代码障碍比较大,需要回顾和总结大量的基础,所以会显得人比较菜(其实就是菜),还有一个比较好的调试方式。然后就是对老师口中的玩具的分析(==好难玩的玩具==),从中结合我们学过的基本的操作系统的知识进行结合,体会其中状态机和程序的概念。
Python部分
Generator(函数生成器)
其中的重要关键字yield(生产,生成的意思
考研词汇),代码运行到yield关键字后会自动保存
一个弯弯绕的小栗子:
1234567891011121314151617181920212223def number_generator(): for i in range(5): a=i+10 yield adef add_generator(): f=0 for i in range(5): a=i+10+f print(a) f=yield aif __name__=='__main__': ...
搓OS-day0
手搓OS-day0
今天,俺开了一个新的巨坑,我要手搓一个操作系统的模拟,主要参考的是南京大学的蒋老师的课程,最后附课程链接(需要的同学点查看原文即可看到链接),目前已经上手两天,嗯,怎么评价呢,很难,这个新坑也主要是记录我的心路历程和中间遇到的一些问题,因为涉及的技术奇多无比,其中有许多我不掌握的语法,因此可能会显得比较啰嗦。
day0主要做的都是准备工作,但是准备工作也相当难做,下面简单记录一下:
配置一台Linux机器
已经头大了开始,这次配置因为服务器到期了,于是选择了一个很新的配置方式:WSL
WSL全名是Windows Subsystem For
Linux(大概是,意思应该是对的),也就是Windows自带的一个子系统,同时兼容了Windows与Linux,好处就是切换自由,占用资源少,缺点就是稍微慢一点(但是也无所谓其实,毕竟我们不需要超级高的响应速度,能动就行)。
大概的配置流程不是很复杂(真的吗?):
启用Windows中的WSL服务(在管理员模式下的powershell中运行)
1dism.exe /online /enable-feat ...
linux常用命令
linux常用命令以及备忘(自用略乱)
1命令格式:命令[-选项][参数]
选项:操作、参数:对象
文件相关
vim
ESC:退出编辑模式
i:进入编辑
:q 退出vim
:w 写回
:wq 写回并退出vim
vim filename.type 创建文件
mkdir
创建文件夹
cd
1cd .. #回到上一层
1cd /目录 #打开某文件夹
ls
1ls #显示当前目录下的所有文件名
mv
1mv oldname.txt newname.txt #改名
但也具有功能移动
1mv hello.txt hello # 文件 + 目录
cp
1cp -rp[原文件或目录][目标目录] # -r 复制目录 -p 保留文件属性
cat
gcc命令
g++命令
图神经网络——gnn
图神经网络——GNN初步
最简单的图神经网络——着眼于节点
页-1(2)
这张图就挺清楚了,但是我们还有一些问题没有说清楚,数据是什么,数据在哪儿,数据怎么运算,目的是什么
从派别上,更像是频率派,实际上是在分析各个节点之间的一个关系。
target:节点嵌入(隐)状态(\(h_v\))
数学表达:
节点邻居:
点集:\(co[v]\)
边集:\(ne[v]\)
节点嵌入:\(x_v\)
输出嵌入:\(o_v\)
局部转移函数: \[
h_v=f(x_v,x_{co[v]},h_{ne[v]},x_{ne[v]})
\] 局部输出函数: \[
o_v=g(h_v,x_v)
\] 学习方法:梯度下降 \[
loss=\sum_{i=1}^{p}{(t_i-o_i)}
\] p是所有的目标节点的数目
缺点
缺点实际上是相当显然的
缺乏对边的学习
传递效率低
梯度消失
多次迭代后点的值是固定的、平滑的,fixed
node,导致整个图的区分意义不大
GCN——着眼全图
傅里叶变换
通俗来讲,我们平时见到的连续 ...
C语言文件框架与运行
C语言文件框架与运行
不知道大家有没有一种感觉,当你初学c语言运用(仅仅是运用)到熟练的时候,会明显感受到一些疑惑:这个头文件我好像从来没写过、这个多文件我好像也从来没用过、这个多文件的C语言程序又是怎么跑起来的
C语言的文件框架
没有框架
最简单的结构是什么?就是没有结构,一个单一的XX.c文件配合gcc工具编译就可以运行。
这里简单介绍一下gcc,gcc是GUN中的一个编译工具,在C语言中的指令(该顺序也就是c语言运行的顺序)主要有:
预处理,进行宏展开等,生成代码文件为helloworld.i
1gcc -E helloworld.c
编译,生成汇编代码,生成代码文件为helloworld.s
1gcc -S helloworld.c
汇编,生成机器码,生成代码文件为helloworld.o
1gcc -c helloworld.c
链接,实际上直接链接能够运行以上所有的步骤,生成的是一个名为helloworld的可执行文件
1gcc -o helloworld helloworld.c
在命令行中运行c语言程序的方 ...
Python之IDE
Python入门之IDE
想必大家都在什么某抖、某b或者某些不太懂的电视剧里看到过黑客大佬(可能是)一块命令行敲代码敲一天,对此我的评价是:要么是纯粹演的,要么是真大佬。
命令行是可以解决所有编程问题,例如Python也自带有IDLE,或者Python的交互式页面,其都是在命令行窗口进行编程的,但是显而易见,这种方式我写个十八行代码,两三个变量还是可行的,一旦代码变复杂,记住变量都成为了一个困难的工作。因此IDE最基本要解决的问题就出现了。
这里简单介绍两个Python常用的IDE,以及下载安装。
Pycharm
Pycharm是由JetBrains开发的一个专门的Python集成开发环境,由于其极其亲民,简单上手闻名。当然目前业界的许多IDE都是由JetBrains开发的,并且安卓开发的著名名言kotlin也是由JetBrains主导研发的。
下载
这里是Pycharm下载的官方网站(官网),如下图,在红色框框中就可以下载了
image-20230724000324453
Pycharm分为Free Community(免费社区版)和Profession ...
Anaconda从入门到入土
Anaconda——从入门到入土
引入
刚刚入门Python的同学可能对环境配置并没有什么感觉,毕竟就是一个pip的事,这时候我们设想一下,现在你在Github上下载了一个Python项目,然而这个项目需要你的numpy版本为1.12,而你的numpy版本是1.11,那么你是不是就要删除再安装?这仅仅是一个项目,而在日常编程中经常面对这种问题,而Anaconda就解决了这个问题。
Python环境
这里我随便打开了一个我电脑上的Python的源文件:
在这里Lib中存放了Python的官方包和第三方包,所有的第三方包都在site-packages中,这其中就有我们常用的matplotlib。
Anaconda
Anaconda(官网)就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。
下载
下载一般是没有什么难度的一步一步的走下去就行,这里简单提一下,Anaconda有标准版和mini版,如果你的电脑内存吃紧,那可以考虑安装mini-conda, ...
yolo系列基础学习
Yolov1
核心内容
分而治之
①
分而治之,其类似卷积神经网络,目的是通过分块找到物体中心,其核心思路就是一个莽,全都用CNN莽出来
②leaky ReLu \[
y=\begin{array}{l}
\left\{\begin{matrix}
x,x>0 \\
0.1x,otherwise
\end{matrix}\right.
\end{array}
\] ③ 端到端训练
端到端训练
Yolov2
同比v1的改进
tradeoff:折中
batch normalization:某种正则化手段,BN
high resolution classifier:微调与训练模型
Convolutional With Anchor Boxes:anchor机制
Dimension Clusters:选择anchor
prior需要手动设置,采用k-means聚类找到一个合适的大小
Direct location prediction: 解决不稳定,相对位置预测
Fine-Grained Fea ...