今天是晴天
凤凰花开的路口 - (一只呱噪的鸭梨)
时光的河入海流
终于我们分头走
没有哪个港口
是永远的停留
脑海之中有一个凤凰花开的路口
有我最珍惜的朋友
又到凤凰花朵开放的时候
想起某个好久不见老朋友
记忆跟着感觉慢慢变鲜活
染红的山坡道别的路口
青春带走了什么留下了什么
剩一片感动在心窝
时光的河入海流
终于我们分头走
没有哪个港口
是永远的停留
脑海之中有一个凤凰花开的路口
有我最珍惜的朋友
也许值得纪念的事情不多
至少还有这段回忆够深刻
是否远方的你有同样感受
成长的坎坷分享的片刻
当我又再次唱起你写下的歌
仿佛又回到那时候
时光的河入海流
终于我们分头走
没有哪个港口
是永远的停留
脑海之中有一个凤凰花开的路口
有我最珍惜的朋友
几度花开花落
有时快乐有时落寞
很欣慰生命某段时刻
曾一起度过
时光的河入海流
终于我们分头走
没有哪个港口
是永远的停留
脑海之中有一个凤凰花开的路口
有我最珍惜的朋友
给我最珍惜的朋友
机器学习:第九篇 Yes, We Kan!
陈巍:KAN网络结构思路来自Kolmogorov-Arnold表示定理。MLP 在节点(“神经元”)上具有固定的激活函数,而 KAN 在边(“权重”)上具有可学习的激活函数。在数据拟合和 PDE 求解中,较小的 KAN 可以比较大的 MLP 获得更好的准确性。相对MLP,KAN也具备更好的可解释性,适合作为数学和物理研究中的辅助模型,帮助发现和寻找更基础的数值规律。
前言
WASM汇编:第一篇 Hello World
在学rust,以及在讨论rust的未来应用领域的时候,有一个词一直在眼前蹦跶(WASM),所以什么是WASM?
前言
Google:WASM(WebAssembly)是一个可移植、体积小、加载快并且兼容 Web 的全新格式。
简单来说就是在浏览器上直接运行字节码,而不是js脚本。一拍大腿,好东西啊,把js替代,然后性能蹭蹭蹭往上涨就完了。仔细一想,好像有哪里不对劲,比如Python一直被诟病性能差,但是任然无法阻挡它的受欢迎程度,也没有任何被rust替代的迹象。同理,现如今在Google的优化下,js的性能应付现在的环境已经绰绰有余了,那么WASM的出现是不是多此一举呢?
事实好像不是这样的,普通场景下js的性能已经足够,但是在一些特殊场景下,比如游戏、图形、音频、视频等,js的性能就显得捉襟见肘了。所以WASM的出现就是为了解决这些问题的。WASM并不是为了替代js而是对js的补充。
而且WASM非常便携,运行在:所有主要的Web浏览器、V8运行时(如 Node.js)和独立的wasm运行时(如Wasmtime、Lucet和Wasmer)。
WASM可以导出函数和常量,并且在js的上 ...
工具篇:第九篇 我的 VSCode 不可能这么可爱!
教程开始
原教程看这里 -> 我的 VSCode 不可能这么可爱!
新建文件
随便找个地方新建一个css文件,如:
C:/Users/Debin/.vscode/vsc.css
然后复制类似下面的内容
12345678910.editor-group-watermark>.letterpress { background-image: url( data:image/png;base64, /* 这里是base64编码的图片 */ ) !important; opacity: 0.95; overflow: visible; filter: none; transform: scale(1.5, 1.5);}
替换为你想要的图片的base64编码,就可以了。
我的css文件 -> vsc.css
设置
打开VSCode,安装插件Custom CSS and JS Loader
文件->首选项->设置->搜索Vscode_custom_css->点击在 ...
RUST:第三篇 Rust机器学习框架Candle初体验
最近看到一个非常有意思的项目Candle,使用Rust做机器学习开发。
前言
AI的成本来自哪里?数据、算法还是资源?现如今,AI的开发还处于上升期,这个时候,最需要的是数据的快速获取,以及算法快速落地,所以Python成为了机器学习的首选语言。但是随着AI应用的不断完善,占成本最高的是算力资源和电力资源,这个时候Python的劣势就暴露出来了,Python的解释性语言导致了性能的不足,以及资源的浪费。所以,一门性能更好,更加适合模型推理服务,更“省电”的语言——Rust将会是后AI时代的首选。
“下一个短缺的将是电力。” —— Elon Musk
Candle简介
Candle is a minimalist ML framework for Rust with a focus on performance (including GPU support) and ease of use.
Candle是一个专注于性能(包括GPU支持)和易用性的Rust的最小化ML框架,由Hugging Face公司开发。Candle 使我们能够使用一个类似 torch 的 API 在 Rust 中构 ...
RUST:第二篇 RUST在嵌入式中的编程(STM32)
究极懒狗,这个本来应该是一年前就要写的。
前言
说实话,并不看好rust在嵌入式领域的未来,嵌入式里面C/C++的地位是不可撼动的,但是rust的确是一个很有意思的语言,所以还是想尝试一下。rust的优势在于安全性,但是在嵌入式领域,安全性并不是最重要的,最重要的是性能和资源占用,所以rust在嵌入式领域的未来并不是很乐观。仅仅为了一点安全性的提升,带来的牺牲是巨大的。搞嵌入式的人真正想要的应该是go。
环境准备
写这篇文章的当前时间节点的最新的版本(版本仅供参考):
软件
VSCode 1.86.1
rustc/cargo 1.76.0
arm-none-eabi-gcc 13.2.1
openocd 0.12.0
硬件
STM32L431RCT6(板子是随便找的)
ST-LINK V2
VSCode插件
rust-analyzer:使用VSCode开发Rust必备
cortex-debug:调试、debug嵌入式程序
crates:提升编辑Cargo.toml的体验,辅助包管理
软件安装
VSCode
略
rustc/cargo
打开rust官网,下载Windows: ...
Linux:配置双网卡Linux路由表,实现两个网络之间的通信
前言
因为自己办的宽带不能连接实验室的服务器,而免费的联通宿舍网只能连三个设备,所以拿出了树莓派来做两个网络之间的沟通。使得使用自己的电脑可以直接连接服务器,而且自己的宽带是公网IP,可以直接在家远程访问。
简单绘制一下网络拓扑
如果没有树莓派连接,那么宿舍网络和服务器网络是完全隔离的。
服务器网络为10.26.58.0/25,
宿舍网络为10.125.0.0/16,中间由上级路由转发。
路由表基础知识
先存一下关于路由表操作的基础命令
查看路由表
123456789debin@raspberrypi:~ $ route -nKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 eth00.0.0.0 10.125.0.1 0.0.0.0 UG 600 ...
面试题
从各个网站上看到的面试题
嵌入式面试题
大华
UART串口通信的波特率,常用波特率有哪些,串口通信校验方式是什么,有校验和无校验的区别
4800/9600/115200/460800
校验方式:和校验、奇偶校验、无校验
iic收发数据的流程
起始信号(信号跳变)->发送设备地址(7位地址+1位读写位)->ACK->收发数据->再次ACK->停止信号(信号跳变)
iic子系统的组成部分
我觉得iic子系统主要由三部分组成,首先是iic核心,负责各类信号的起始信号,应答信号,终止信号的产生,然后是iic驱动,负责实现iic从机读取和写入,然后是iic应用层,实现具体的应用。
SPI收发数据的流程
片选信号拉低->发送数据->接收数据->片选信号拉高
wifi协议的通讯过程
wifi协议在网络连接中主要工作在物理层和数据链路层,通过路由器发射出来的2.4G/5G信号的SSID,
发送建立连接的请求,接着通过加密算法进行通讯,通过多个数据包进行数据的传输,最后通过断开连接的请求断开连接。
感觉大华主要是以通讯协议为主
联想 ...
机器学习:第八篇 ChatGPT的实现之GPT模型的简单应用
与之前的Decoder-Encoder篇类似,但是这次我们上一点难度。把加减乘除和小数都算进去。理论存在,但是得拿出来溜溜
构建数据集
首先,因为共有0-9,+,-,*,/,.,\t这16个字符,其中\t前面是问题,后面是网络的预测,跟上一个篇章保持一致,然后因为每个算式的长度不一样,我们需要用pad填充,所以,先定义一个长度为17的字母表
1alphabet = ['<pad>','<sep>','@','#','+', '-', '*', '/', '.', '='] + [str(x) for x in range(10)]
其中<pad>和<sep>分别是填充符和制表符。
接下来就是随机生成加减法字符串,并根据alphabet转换为id。
123456789101112131415161718# 生成一组加减法的字符串,设定最大长度为 ...
机器学习:第七篇 ChatGPT的实现之GPT网络的训练方式
虽然网络结构已经搭建好了,但是不同的模型所应用的训练方式也是不一样的,这里我们就来看看GPT网络的训练方式。
Word2Vec
嵌入(embedding)是机器学习中最迷人的想法之一。 如果你曾经使用Siri、Google Assistant、Alexa、Google翻译,甚至智能手机键盘进行下一词预测,那么你很有可能从这个已经成为自然语言处理模型核心的想法中受益。在过去的几十年中,嵌入技术用于神经网络模型已有相当大的发展。尤其是最近,其发展包括导致BERT和GPT2等尖端模型的语境化嵌入。 ——【大数据文摘出品】
我觉得这个图非常形象的描述了,word和vec的关系,最终我们的目的是将word转换成vec,这样就可以进行计算了。不过这并不是今天的重点,展开的话,太长了。
用向量和向量之间的关系来描述词与词之间的关系。
感兴趣的同学可以看看这个
所以数据集的处理流程一般就是两步:
1.分词器将文本分成一个个单词
2.将单词转换成向量
每个词向量通常有几百个维度(由自己指定,一般为256、512、768等),每个唯一的词在语料库的向量空间中有一个唯一的向量表示。
Positional ...