You're Carried By The Time.
You’re Carried By The Time. 如果有机会提前了解你的人生,知道青春也不过只有这些日子,不知你是否还有重来的勇气。 在华农的春天里2023 年的春天,我去了很多次华农 —— 那里有非常不错的春景,那里有让我开心的东西。 记得有一次是跟很多高中朋友一起去的,因为个人原因,我并不喜欢跟他 Ta 们待在一块,礼貌性地跟 Ta 们打完招呼后,便独自一人撑着伞来到了华农的后山处。 找到了一条小道,一边是古朴的亭楼、一边是洒着阳光的小山包,双向二车道的泊油路一直通向池塘,我在人行道上踩着树叶,心中却很是焦躁。 为什么焦躁,无非是作业没写好、考试没考好、知识没学懂、刚刚那帮高中的朋友太聒噪罢。 深吸一口气,我试图用长呼吸来减缓我的焦虑,但似乎不是很见效。 泊油路上的人变多了,是赶上下课了吗? 我看着他们的精神面貌,有的背着书包蹦蹦跳跳 —— 也许是大一新生、有的悠闲、有的面容紧锁。 我突然想到我高中班主任提到的一个理论,你可以从脚步上区分高一和高三的学生。 那也许也可以从精神面貌上区分大一和大四的学生? 大四的学生精神面貌是怎么样的呢? 我开始幻想起来 ——...
Pytorch - Pytorch Profiler Usage
此处演示如何使用 Pytorch Profiler 官方教程 pytroch Profiler位于torch.autograd.profiler, 目前支持的功能: CPU/GPU 端 Op 执行时间统计 CPU/GPU 端 Op 输入Tensor的维度分析 Op 的内存消耗统计 使用环境 Python=3.11.6 torch=2.1.2+cu121 Import123import torchimport torchvision.models as modelsfrom torch.profiler import profile, record_function, ProfilerActivity Resnet model以 resnet 为例。创建 resnet 模型实例,初始化一个 input 12model = models.resnet18()inputs = torch.randn(5, 3, 224, 224) Using profiler in CPU12345678910111213141516import...
DLsys - Terox DevLog-0
写在前面以下内容引用自 Minitorch Write Up,本博客相关的工程实现在 https://github.com/Tokisakix/Terox/。 大二上的时候,我就在构思怎么样去写一个类似 Pytorch 的软件。当时大概把三大学习都学的差不多了,就想着自己去实现一些 AI 的组件,渐渐的便想着去了解一下 Pytorch 的代码及其背后的运行原理,只可惜因为时间安排和自身能力的原因而不能立刻着手去学习。 期末后剑圣跟我说到华为那边编写深度学习框架底层算子的事情,寒假时间多了,那确实可以把这件事情捡起来。摸索后我发现国外有两个 Lab 可以来帮助学习深度学习框架,一个是 CMU 的公开课程,一个是 Minitorch。 CMU 的公开课程是 CMU 在 2022 年 9 月开设的一门课程,讲师是 J.Zico Kolter 和陈天奇。这是一门注重实践的课程,课后作业主要是逐步实现一个类似于PyTorch的深度学习框架(类似 Pytorch 和 TensorFlow)。 Minitorch是一个 Torch API 的纯 Python...
DLsys - Minitorch
写在前面大二上的时候,我就在构思怎么样去写一个类似 Pytorch 的软件。当时大概把三大学习都学的差不多了,就想着自己去实现一些 AI 的组件,渐渐的便想着去了解一下 Pytorch 的代码及其背后的运行原理,只可惜因为时间安排和自身能力的原因而不能立刻着手去学习。 期末后剑圣跟我说到华为那边编写深度学习框架底层算子的事情,寒假时间多了,那确实可以把这件事情捡起来。摸索后我发现国外有两个 Lab 可以来帮助学习深度学习框架,一个是 CMU 的公开课程,一个是 Minitorch。 CMU 的公开课程是 CMU 在 2022 年 9 月开设的一门课程,讲师是 J.Zico Kolter 和陈天奇。这是一门注重实践的课程,课后作业主要是逐步实现一个类似于PyTorch的深度学习框架(类似 Pytorch 和 TensorFlow)。 Minitorch是一个 Torch API 的纯 Python 重新实现,展示了从零开始构建一个张量和自动微分库。最终得到的库能够运行类 Torch 代码。项目创建者为康奈尔大学副教授(pre-tenure)Alexander...
做出选择就是成长的最大养分
恍惚之间我至今都记得我选择人工智能作为我未来方向的那个时刻 那是在 2022 年的五月份,我所在的那个高中 —— 惠州中学承办的一场高三生活动上。那个活动叫梦想胶囊,大意是即将奔赴高考的学子们将自己的梦想写进信封,信封会被校方留存在地下十年,十年之后再打开信封,让大家再回顾曾经的梦想… 那个活动被学生调侃为留着发霉的梦想,因为在那个时候有梦便是稀少,还闲的没事投入到这个活动中的人更是少之又少 很不巧,我就是投入其中的那个人,我至今都记得我信封上的内容 —— 那上面记下了我高考前对未来的畅想 刀剑神域刀剑神域的第三季的作者是这样子去培育人工智能的,先创造一个“光立方”,它可以模拟人脑的所有活动,然后创造一个虚拟的元宇宙世界,在这个世界中创造四个智能体,这四个智能体的光立方通过复制真人婴儿的人脑活动得到,于是我们有了一个模拟的人类世界和四个虚拟的人类婴儿 实现这个人工智能培育计划的组织叫做...
FPGA - 在 ZYNQ-ZYBO-Z710 开发板上运行 Ubuntu 23.04 LTS
FPGA - 在 ZYNQ-ZYBO-Z710 开发板上运行 Ubuntu 23.04 LTS本博客介绍如何使用 Petalinux 2022.4 在 Zynq ZC7010 开发板上安装 Ubuntu 23.04 LTS。以下说明将帮助您设置环境并成功在 Zynq ZC7010 开发板上安装 Ubuntu 前置准备在开始安装过程之前,请确保具备以下先决条件: Zynq ZC7010 开发板 Petalinux 2020.1 Ubuntu 23.04 LTS 安装文件 SD 卡 (8GB 或更大) 能够运行 Linux 系统的主机(最好是 Ubuntu 系统) Xillinx Vivado 2020.1,下载链接 Step1 - 配置软件 通过执行以下命令安装所需的依赖项: 123sudo dpkg --add-architecture i386sudo apt-get updatesudo apt-get install tofrodos iproute2 gawk gcc git make net-tools libncurses5-dev tftpd...
Docker - YatCPU 的 Dev container 环境配置
YatCPU (Yet another toy CPU,逸芯) 是一款开源、开发中的教学用 RISC-V 处理器,基于 Chisel 硬件设计语言实现,并用于中山大学 (Sun Yat-sen University) 计算机学院冯班组成原理实验课程的教学。但笔者在配置对应的开发环境时遇到很多阻碍,经过一段时间的摸索和自行尝试过后,笔者决定对原文档中的 Docker 环境配置部分做一些补充,YatCPU原环境配置文档链接在此 YatCPU 的 Dev Container 环境配置使用 Docker + Dev Container 配置开发环境比较简单,而且也经过了测试,所以,我们推荐在 Windows 上直接使用 Dev Container 来设置开发环境。 按照安装指南配置好 Dev Container 环境,环境中含有 Scala 开发环境以及 Verilator 仿真器,但不包含 Vivado。如果你不需要烧板,那么使用 Dev Container 环境就可以完成所有实验以及软件测试了。 配置开发容器 软件安装 安装 VSCode,直接在官网下载 安装...
Pytorch - 常见强化学习算法的实现
常见强化学习算法的实现广泛地讲,强化学习是机器通过与环境交互来实现目标的一种计算方法。 机器和环境的一轮交互是指,机器在环境的一个状态下做一个动作决策,把这个动作作用到环境当中,这个环境发生相应的改变并且将相应的奖励反馈和下一轮状态传回机器。 这种交互是迭代进行的,机器的目标是最大化在多轮交互过程中获得的累积奖励的期望。 强化学习用智能体(agent)这个概念来表示做决策的机器。相比于有监督学习中的“模型”,强化学习中的“智能体”强调机器不但可以感知周围的环境信息,还可以通过做决策来直接改变这个环境,而不只是给出一些预测信号。 N-Step-Sarsa多步 Sarsa 模型: 适用于有限状态、有限动作、随机性不强的场景,通过预测对应状态在对应行为下的价值来进行动作选择;为在线决策模型。 状态更新函数: 1234567891011121314151617181920212223242526272829303132333435363738394041class N_Step_Sarsa: def __init__(self, n_step, epsilon, alpha,...
CTF - Hackergame 2023 WriteUp
写在前面第一次参加 hackergame,好玩、爱玩、多玩! 正文Hackergame 启动 flag{wE!cOmE-70-HaCKER9@M3-@ND-ENjoy-h@cK!ng-20Z3} 在开发者工具可以发现,音频是在前端的 JS 代码中计算的,通过 URL 传参给后端判断 所以我们可以自己去设置 similarity 的值,拿到 flag,是一个很有趣的界面 猫咪小测 flag{w3LcOm3-to-47t3ND-tH3-nek0-3xaM-zOz3} flag{re4l-m@$73R-of-the-n3K0-3xam-iN-uS7c} 四道搜索题,下列为各题解答方式: 这题有两种解法,第一种是去中科大的图书馆网站去搜索,第二种是穷举,最终答案是 12 这题可以直接去知乎搜索,有个帖子正好讲了这个论文,当然也可以选择穷举,最终答案是 23 这题可以去 ChatGPT 问,也可以去下载 linux kernel 然后全局搜索 BBR,最终答案是 CONFIG_TCP_CONG_BBR 这题让我很头大,最终在 Google 上以 “Python...
Docker - YatCPU 的 Docker 环境配置
YatCPU (Yet another toy CPU,逸芯) 是一款开源、开发中的教学用 RISC-V 处理器,基于 Chisel 硬件设计语言实现,并用于中山大学 (Sun Yat-sen University) 计算机学院冯班组成原理实验课程的教学。但笔者在配置对应的开发环境时遇到很多阻碍,经过一段时间的摸索和自行尝试过后,笔者决定对原文档中的 Docker 环境配置部分做一些补充,YatCPU原环境配置文档链接在此 YatCPU 的 Docker 环境配置Docker 是什么Docker 是一个应用打包、分发、部署的工具你也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要,而普通虚拟机则是一个完整而庞大的系统,包含各种不管你要不要的软件。 跟普通虚拟机的对比 特性 普通虚拟机 Docker 跨平台 通常只能在桌面级系统运行,例如 Windows/Mac,无法在不带图形界面的服务器上运行 支持的系统非常多,各类 windows 和 Linux...