面试题
从各个网站上看到的面试题
嵌入式面试题
大华
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 ...
机器学习:第六篇 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} = 78.5
Weight(179)=276+81=78.5
也就是78.5,这就是我们的预测结果。我们注意到上面的0.5就是我们分配给它们的注意力权重,但是175这个数据我们并没有利用上,那么我们应该如何合理的 ...
工具篇:第八篇 通过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 --device / ...
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, --p ...
2022 年终总结
2022 年终总结
一月
摸鱼
二月
摸鱼
三月
摸鱼
四月
摸鱼
五月
摸鱼
六月
摸鱼
七月
摸鱼
八月
摸鱼
九月
摸鱼
十月
摸鱼
十一月
摸鱼 (罗德斌啊罗德斌,你怎么能这么颓废,下个月要好好加油。)
十二月
生病
2023 展望
不能再颓废了,明年好好加油!
机器学习:第五篇 Encoder-Decoder模型的简单应用
Encoder-Decoder模型(编码-解码)在近几年有广泛的应用,例如nmt翻译框架,是一种模拟人类认知过程的模型。假如输入一句话,先让机器认知这句话的意思,再将这句话翻译成其他语言。
前言
encoder-decoder模型也被叫做序列到序列的学习模型(Sequence to Sequence,Seq2Seq),当然,实际上,它并不是一种具体的模型在实现形式上,更像是一种框架,一种方式。而Encoder和Decoder部分可以是任意的文字,信号,图像,视频数据。所以seq2seq的实现和应用也是非常多样的,例如cnn-rnn实现image caption的应用,lstm-lstm实现nmt翻译的应用。
序列的映射
输入一段序列,再输出一段我们想要的序列,可以简单的理解为给定一个字符串,然后得到另一个与之对应的字符串,这就是seq2seq,例如我们给定一段英语短语序列,输入之后,然后模型给出一个与之对应的法语翻译,当然,这里只是一个简单的一一对应的关系,nmt中还有单词补全,错位翻译等等技巧应用于翻译模型中。
应用
在LSTM中。模型的主要的结构是
下面的列表突出了Encoder ...
天上星星距离我们有多远?——恒星中的量天尺:造父变星
之前在哔哩哔哩看到UP主-眼见为识 的视频【寻找宇宙中的标准烛光!】,其中提到了我们现在常用造父变星来估算恒星系与地球的距离。这个时候就在想,天文学家是如何使用造父变星来计算星星与地球的距离的?
什么是造父变星
18世纪的天文学家发现,夜空中有一类特别的恒星,其亮度会随着时间变化,在几天时间里经历先变亮、再变暗、最后又恢复到原来亮度的过程。天文学家称其为变星。仙王座beta星是最先被注意到的变星之一,这颗星在中国被称为“造父”。时至今日,我们已经了解到,这种变星亮度发生变化的原因,是整颗恒星处于反复收缩、膨胀的脉动状态。这个类型的变星被统称为造父变星。
距离与亮度
当我们将一个蜡烛放在远处的时候,可以注意到,距离蜡烛越远所能接收到的光就越少,那么蜡烛就越暗,在恒星上也是同理
在接收光的面积一定的时候,距离越远,所能接收到的光越少,亮度越暗,假设距离d,可观测面积为B,光源的光亮度为L,那么我们能够接收到的光Lm与距离d的关系就是
Lm=B∗L/4πd2Lm = B * L / 4{\pi}d^2
Lm=B∗L/4πd2
其中光源强度是一定的,观测面积也是一定的,再加上其他恒星的引 ...
Docker:第二篇 使用一百行代码实现一个Docker
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
文章来源
Build Your Own Container Using Less than 100 Lines of Go
前言
2013年3月,Docker的发布与开源使得软件开发行业在打包和部署现代应用的方式发生了巨大的改变。在Docker之后,有许多相互竞争,相互补充和相互支持的容器技术相继问世,这导致了在虚拟容器这一领域的繁荣,同时也引发了很多问题。本系列文章的目的是消除一些人在使用时候的困惑,同时解释Docker在企业中的实际使用情况。
本系列文章首先介绍了Docker背后的核心技术以及开发人员目前是如何使用的,然后研究了在企业中部署Docker的核心挑战,例如将容器化整合到持续集成和持续交付管道中,以及加强监控以支持不断变化的工作负载和潜在的过渡性。该系列最后展望了容器化的未来,并讨论了联合内核技术目前在前沿组织中发挥的作用。
很多人经常用类比来 ...