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...
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 ...
面试题
...
机器学习:第八篇 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等尖端模型的语境化嵌入。 ...
机器学习:第六篇 ChatGPT的实现之GPT网络原理和结构
ChatGPT问世以来,引起了广泛的关注。GPT(Generative Pre-Trained Transformer)模型,其中的Transformer就是使用的网络,在去年的文献检索课上我还在打趣的说,未来是属于Transformer的,没想到这一天来的这么快。 GPT模型网络结构 先放一个GPT网络的模型结构: Attention原理 假设我们现在有这样两组初始数据,身高(Key)和体重(Value): 身高(Key) 体重(Value) 175 70 178 76 180 81 假如现在来了一个179的帅小伙,想要预测他的体重应该怎么办? 自然的,依据初始数据分布,我们一般认为他的体重会在76和81之间,那么我们可以简单的取平均值: Weight(179)=76+812=78.5Weight(179) = \frac{76+81}{2} =...
工具篇:第八篇 通过Docker代理的方式使用EasyConnect
放假在家,EasyConnect又卡又慢?打开EasyConnect以后无法上网?安装EasyConnect以后无法打开CSGO?担心隐私安全问题? 前言 自放假回家以来,想要连接学校服务器,结果EasyConnect又卡又慢,打开它就没法上网,关掉它就没法连接学校服务器,所以需要一点办法来解决这个问题。 首先需要准备以下软件: Docker 安装对应版本的即可,注意Windows用户安装的时候需要选择Hyper-V虚拟机。官网下载 VNC-Viewer 用来扫码登陆用的。官网下载 注:Docker安装方法可以参考Docker:第一篇 通过Docker部署Vue项目,里面的Docker安装方法。 建议还是在Linux环境或者虚拟机下安装,或者准备一个备用机树莓派之类的,因为WSL总是有各种问题,不太稳定等等。 安装EasyConnect 启动运行Docker,找一个存放Docker容器数据文件的位置,比如用户目录下,新建文件夹.ecdata, 1cd ~ && mkdir .ecdata 接着打开命令行,输入命令运行容器 1docker run...
Docker:参数详解
命令格式:docker run [OPTIONS] IMAGE [COMMAND] [ARG...] Usage: Run a command in a new container 中文意思为:通过run命令创建一个新的容器(container) 常用选项说明 -d, --detach=false, 指定容器运行于前台还是后台,默认为false -i, --interactive=false, 打开STDIN,用于控制台交互 -t, --tty=false, 分配tty设备,该可以支持终端登录,默认为false -u, --user=“”, 指定容器的用户 -a, --attach=[], 登录容器(必须是以docker run -d启动的容器) -w, --workdir=“”, 指定容器的工作目录 -c, --cpu-shares=0, 设置容器CPU权重,在CPU共享场景使用 -e, --env=[], 指定环境变量,容器中可以使用该环境变量 -m, --memory=“”, 指定容器的内存上限 -P, --publish-all=false, 指定容器暴露的端口 -p,...
2022 年终总结
2022 年终总结 一月 摸鱼 二月 摸鱼 三月 摸鱼 四月 摸鱼 五月 摸鱼 六月 摸鱼 七月 摸鱼 八月 摸鱼 九月 摸鱼 十月 摸鱼 十一月 摸鱼 (罗德斌啊罗德斌,你怎么能这么颓废,下个月要好好加油。) 十二月 生病 2023 展望 不能再颓废了,明年好好加油!
机器学习:第五篇 Encoder-Decoder模型的简单应用
Encoder-Decoder模型(编码-解码)在近几年有广泛的应用,例如nmt翻译框架,是一种模拟人类认知过程的模型。假如输入一句话,先让机器认知这句话的意思,再将这句话翻译成其他语言。 前言 encoder-decoder模型也被叫做序列到序列的学习模型(Sequence to Sequence,Seq2Seq),当然,实际上,它并不是一种具体的模型在实现形式上,更像是一种框架,一种方式。而Encoder和Decoder部分可以是任意的文字,信号,图像,视频数据。所以seq2seq的实现和应用也是非常多样的,例如cnn-rnn实现image...