Docker - Docker 快速入门
Docker 简介和安装Docker 是什么Docker 是一个应用打包、分发、部署的工具你也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要,而普通虚拟机则是一个完整而庞大的系统,包含各种不管你要不要的软件。 跟普通虚拟机的对比 特性 普通虚拟机 Docker 跨平台 通常只能在桌面级系统运行,例如 Windows/Mac,无法在不带图形界面的服务器上运行 支持的系统非常多,各类 windows 和 Linux...
Python - MSC-Python-ML-WriteUp
Python(ML)1. Min-Max 归一化此题并不难,主要考察 numpy 的使用,基本上大家都能做出来 也可以用循环迭代代替 numpy 123456# answerdef normalization(numbers): import numpy as np numbers = np.array(numbers) res = (numbers - numbers.min()) / (numbers.max() - numbers.min()) return list(res) 2. 34-42-4-28此题灵感来源于 2023 年全国信息安全竞赛的一道 AI 题,涉及到矩阵的逆向还原,基本上大家都能做出来 用线性代数知识计算得到 A 的表达式后,就可以用 numpy 来计算了,对结果四舍五入可以得到很工整的答案 —— 2023 1234567891011121314151617# answerimport numpy as npB = np.matrix([ [34, 42, 4, 28],])W = np.matrix([ ...
C++ - Pthread 学习记录
什么是 PthreadPOSIX线程,英语:POSIX Threads,常被缩写为 Pthreads ,是 POSIX 的线程标准,定义了创建和操纵线程的一套 API 实现POSIX 线程标准的库常被称作 Pthreads ,一般用于 Unix-likePOSIX 系统,如 Linux、Solaris。但是 Microsoft Windows 上的实现也存在,例如直接使用 Windows API 实现的第三方库 pthreads-w32 ,而利用 Windows 的 SFU/SUA 子系统,则可以使用微软提供的一部分原生 POSIX API Pthreads 定义了一套C语言的类型、函数与常量,它以 pthread.h 头文件和一个线程库实现 Pthreads API 中大致共有 100 个函数调用,全都以 “pthread_” 开头,并可以分为四类: 线程管理,例如创建线程,等待(join)线程,查询线程状态等。 互斥锁(Mutex):创建、摧毁、锁定、解锁、设置属性等操作 条件变量(Condition...
C++ - OpenMP 学习记录
什么是 OpenMP 简易、快捷、高校、跨平台的线程 API 库 —— Tokisakix 进程和线程进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。线程:是进程的一个执行单元,是进程内的调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。上面的解释可能还是有些抽象,但是通俗地解释方式就是:线程是进程的一个单元,如果把进程比作一座工厂,线程类似于工厂中的工人这个比喻引用于此链接(点击跳转),可以在这里了解更多详细知识 共享内存的线程模型共享内存的线程模型是指: 每个线程都可以有局部数据,也有共享的全局变量。多个线程共享相同的地址空间,每个线程都能访问全局内存。线程的栈被分配在堆区,但只有主线程的栈可以动态增长,而子线程的栈是固定的。线程之间的通信依靠共享的内存实现。 OpenMP 是什么?OpenMP 是一套支持跨平台的共享内存方式的多线程并发的编程 API 可以理解为,OpenMP 就是一套可以插入在代码中的工具,我们利用这些工具来实现一些多线程相关的功能。 OpenMP 基于 Fork 、Join...
C++ - MPI 学习记录
什么是 MPIMPI 全名叫 Message Passing Interface,即信息传递接口,作用是可以通过 MPI 可以在不同进程间传递消息,从而可以并行地处理任务,即进行并行计算。需要注意的是,尽管我们偶尔会说使用 MPI 编写了某某可执行程序,但是 MPI 其实只是一个库,而不是一种语言,其可以被 Fortran、C、C++、Python 调用 说到并行,为了避免在概念上混淆,那我们又不得不再提一下串行、并发、同步、异步这几个容易混淆的概念 串行:指的是在执行多个任务时,各个任务按顺序执行,完成一个后才能进行下一个 并行:指的是多个任务可以同时执行 并发:并发编程又叫多线程编程,指的是在执行多个任务时,因为资源不够所以采用一个 CPU...
过往一年学习的感悟
一些过往半年学习的感悟敬爱的邢老师: 您好! 老师,自上次三四月份之后已经有半年没见了,上次见面时我们聊起人工智能,您说:目前我对人工智能的理解也不算很多,回头还需要多去学习了解。返校后的这半年,我看了一些国际内外很出名的人工智能教材、了解并动手实现了很多经典的人工智能模型、翻阅过两三篇有划时代意义的人工智能论文。过往半年我有机会跟广东省气象局还有我们学校的一些科研研究室有过交流,这让我对当下人工智能从理论概念走入实际应用有了更多的认识。在此有一些经历与看法想要与您分享。 首先我想向老师您按我现在的认识介绍一下人工智能,当下的人工智能其实就是一个复杂的数学运算机器,不同的人工智能模型有不同的计算方式,但有一点是完全相同的 ——...
k8s - 在 CentOS7 虚拟机上部署 k8s 集群
环境准备本文服务器的公网IP:192.168.56.101本文一共使用三台 CentOS7 虚拟机 OS version: CentOS 7 CPU Architecture: x86_64/amd64 K8s version: v1.23.17 Docker version: 20.10.23 CentOS7 虚拟机配置网络 先检查是否开启了网络 12ping bilibili.comip addr show 设置网关 修改对应配置文件里的内容 ONBOOT=yes 123cd /etc/sysconfig/network-scriptsvi ipcfg-enp0s3vi ipcfg-enp0s8 配置 DNS 先修改主机名 123hostnamectl set-hostname k8s-masterhostnamectl set-hostname k8s-node1hostnamectl set-hostname k8s-node2 修改 DNS 里的映射关系 12345cat >/etc/hosts...
Rust - Rustlings Write Up
写在前面最近学长推荐我去学一下 Rust,考虑了一下,决定从 Rust 官方的学习文档 —— 也就是 Rustlings 入手,我一共用了两天的时间来完成 Rustlings,下面是我的题解(截至 2023.9.2) Rust 给我的感觉就是生态好,打包方便,有便捷的包管理器;但是 Rust 的语法是非常严苛,通过严格的语法规范来减少程序运行时内存错误的发生 Rustlingsintrointro1.rs1234567891011121314151617181920212223242526272829303132333435363738394041// intro1.rs//// About this `I AM NOT DONE` thing:// We sometimes encourage you to keep trying things on a given exercise, even// after you already figured it out. If you got everything working and feel// ready for the...
OS - 16-bit 操作系统 TKSKOS 诞生记
写在前面此时此刻,2023 年 8 月 29 日,我一个人坐在中山大学南实验楼 D502 Matrix 实验室里 在我高中还不知天高地厚的时候,我曾荒诞地认为微软开发的 Windows 系统不过如此;而自我步入大学生活以来,真正地接触过计算机技术后,才愈发感受到面前这七八十年计算机大厦的坚不可摧和绝对统治。我尝试追逐前人的步伐,用 C++ 实现一个操作系统便是其中的一步 寒假时期我便已读完了 《深入理解计算机系统》 ,又称 CSAPP ,这是一本神书!我在 CSAPP 里学到了汇编、CPU 原理等一大堆很重要的前置概念。再然后,我翻阅到我的一位学长 —— GZTime 他用 Rust 实现 GGOS 的纪念博客,我逐渐有了用编写属于自己的操作系统的企划,并且大致敲定了是用 C++ 来完成,命名为 TKSKOS 。2023 年 4 月,因为一些意外我的生活天翻地覆;某一天的高等数学课,我无聊时翻阅知乎,意外地翻到一篇中大学姐的亲手实现操作系统的记录 —— 这对我影响很深,那段时间我满脑子都是一个全新的企划。紧接着我入手了一本 《操作系统概念》...
Pytorch - 基于循环神经网络的正弦函数预测模型训练与检测
小白劝退预告 仅简单介绍思路,没有用作教程的打算,如果读者没有机器学习基础、循环神经网络基础或Pytorch基础 —— 会很不友好的( Pytorch实现神经网络Pytorch 准备正弦函数数据集其中超参数的含义如下:1. input_size: 输入预测的特征值数目2. output_size: 最终输出的预测数值数目3. hidden_size: 循环神经元的特征数目4. batch_size: 一次训练批量数目5. num_hidden: 循环层神经元的层数6. length_num: 数据集的数据数目 12345678910111213141516input_size = 1output_size = 1hidden_size = 16batch_size = 49num_hidden = 1length_num = 50X = torch.linspace(0, 10, length_num)Y = torch.sin(X)plt.scatter(X, Y)plt.show()data0_48 = Y[0:49].reshape(num_hidden,...