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 tor ...
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 Rush,这是一门硕士课 ...
做出选择就是成长的最大养分
恍惚之间我至今都记得我选择人工智能作为我未来方向的那个时刻
那是在 2022 年的五月份,我所在的那个高中 —— 惠州中学承办的一场高三生活动上。那个活动叫梦想胶囊,大意是即将奔赴高考的学子们将自己的梦想写进信封,信封会被校方留存在地下十年,十年之后再打开信封,让大家再回顾曾经的梦想…
那个活动被学生调侃为留着发霉的梦想,因为在那个时候有梦便是稀少,还闲的没事投入到这个活动中的人更是少之又少
很不巧,我就是投入其中的那个人,我至今都记得我信封上的内容 —— 那上面记下了我高考前对未来的畅想
刀剑神域刀剑神域的第三季的作者是这样子去培育人工智能的,先创造一个“光立方”,它可以模拟人脑的所有活动,然后创造一个虚拟的元宇宙世界,在这个世界中创造四个智能体,这四个智能体的光立方通过复制真人婴儿的人脑活动得到,于是我们有了一个模拟的人类世界和四个虚拟的人类婴儿
实现这个人工智能培育计划的组织叫做 RaTH,它们的工作人员进入到虚拟世界中,抚养那四个婴儿长大,然后便终止所有外界干涉,让这个原始人类社会自行发展
电信号的模拟是极快的,半年时间里人类社会已经演化了千年,里面的虚拟人类的行为已经跟正常人 ...
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 zlib1g-dev ...
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,直接在官网下载
安装 Docker,直接在 ...
Pytorch - 常见强化学习算法的实现
常见强化学习算法的实现广泛地讲,强化学习是机器通过与环境交互来实现目标的一种计算方法。
机器和环境的一轮交互是指,机器在环境的一个状态下做一个动作决策,把这个动作作用到环境当中,这个环境发生相应的改变并且将相应的奖励反馈和下一轮状态传回机器。
这种交互是迭代进行的,机器的目标是最大化在多轮交互过程中获得的累积奖励的期望。
强化学习用智能体(agent)这个概念来表示做决策的机器。相比于有监督学习中的“模型”,强化学习中的“智能体”强调机器不但可以感知周围的环境信息,还可以通过做决策来直接改变这个环境,而不只是给出一些预测信号。
N-Step-Sarsa多步 Sarsa 模型: 适用于有限状态、有限动作、随机性不强的场景,通过预测对应状态在对应行为下的价值来进行动作选择;为在线决策模型。
状态更新函数:
1234567891011121314151617181920212223242526272829303132333435363738394041class N_Step_Sarsa: def __init__(self, n_step, epsilon, alpha, gamma ...
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 type ...
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 都支持
性能
性能损耗大,内存占用高,因为是把整个完整系统都虚拟出来了
性能好 ...
Docker - Docker 快速入门
Docker 简介和安装Docker 是什么Docker 是一个应用打包、分发、部署的工具你也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要,而普通虚拟机则是一个完整而庞大的系统,包含各种不管你要不要的软件。
跟普通虚拟机的对比
特性
普通虚拟机
Docker
跨平台
通常只能在桌面级系统运行,例如 Windows/Mac,无法在不带图形界面的服务器上运行
支持的系统非常多,各类 windows 和 Linux 都支持
性能
性能损耗大,内存占用高,因为是把整个完整系统都虚拟出来了
性能好,只虚拟软件所需运行环境,最大化减少没用的配置
自动化
需要手动安装所有东西
一个命令就可以自动部署好所需环境
稳定性
稳定性不高,不同系统差异大
稳定性好,不同系统都一样部署方式
打包、分发、部署打包:就是把你软件运行所需的依赖、第三方库、软件打包到一起,变成一个安装包分发:你可以把你打包好的“安装包”上传到一个镜像仓库,其他人可以非常方便的获取和安装部署:拿着“安装包”就可以一个命令运行起来你的应用,自动模拟出一摸一样的运行环境, ...