macos小技巧
我们想要像linux一样写一些批处理命令用shell脚本,并且实现开机自动执行等功能,那么在macos如何实现呢?
我们command+space打开功能输入Automator打开自动中心,然后选择new document
FPGA工具学习
这里的IP指的是广泛意义上的知识产权(Intellectual Property),在FPGA中也就是设计好的小模块。
这里的RTL指的是Register Transfer Level指的是一种硬件描述抽象级别,位于高级综合(Higi-level synthesis比如c, c++)和gate level电路之间。
RTL描述中常见的元素和概念比如寄存器,组合逻辑,时钟信号,数据传输操作。
可以理解成RTL就是用verilog开发的硬件电路程序。
RTL 描述允许设计工程师以一种抽象的方式表示数字电路的功能和行为,而无需关心底层的物理实现细节。
FPGA开发学习
9-18 勿忘国耻!
先来补充一下我读了一个博主写的如何用硬件思维去写c++,并且适应HLS(High-Level synthesis)的规则。
我就被HLS的功能所误导,以前以为只要写出了c/c++,就可以通过HLS进行硬件电路转换得到RTL硬件电路,但是c/c++代码能否转换成满足实际工程需求(面积,速度)的RTL代码是个问题,也就是,转换期间,是存在代沟的。从语言特征的角度来看,c/c++与verilog有着本质的区别。
c++是顺序执行的,而HDL(Hardware Description Language)是并行执行的。因为HDL描述的是硬件电路,一旦上电,所有电路单元并行工作,HDL的并行特征正体现了硬件电路的这个特点。
c++是静态的,HDL是动态的。静态就是我们用c++时只需要关注算法本身,而使用HDL描述算法时,我们要关注的是如何将算法映射为硬件电路,关注每个时钟周期电路应该实现的行为。电路在时钟下工作,数据随时钟流动,时钟也就是时间的基本单位,或者说执行一次运算的基本时间单位。
c++是没有时序性的,而时序性是HDL的一个显著特征,比如时序逻辑电路。所以我们不能只考 ...
Matlab wireless communication foundation
Matlab wireless communication foundationQAM modulationWe use Matlab toolbox to realize QAM modulation easily.
12345678srcBits = randi([0, 1], 20000, 1);%列向量,信源,而且注意16QAM是4位一组,所以2000应该为4的倍数modOrder = 16;modOut = qammod(srcBits, modOrder, "InputType", "bit");scatterplot(modOut);%画出星座图demodOut = qamdemod(chanOut, modOrder, "OutputType", "bit");check = isequal(srcBits, demodOut);disp(check);
Here is the QAM graph.
QAM modulation and AWGN(Additive White Gauss ...
esp8266开发
初始化安装,连接过程首先我们安装micropython固件到开发板上,首先用串口连接到电脑,mac同样可以。
这里是micropython固件的下载地址
1https://micropython.org/download/ESP8266_GENERIC/
我们首先在mac或者linux终端来查找连接的串口设备(可以使用ubuntu虚拟机并且将串口连接到虚拟机)。这里就不再说windows端的操作了。
1ls /dev/tty.*
搜索到串口设备之后,先进行刷固件操作。
在linux主机上安装python并且安装
1pip install esptool
然后进行删除模块原有固件,并且刷micropython固件操作。
1esptool.py --port /dev/ttyUSB0 erase_flash
上面为擦除,下面是刷。
1esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 esp8266-20170108-v1.8.7.bin
当然我们要提前把下载的固件放到当前目录下。
进 ...
<Modern Information retrieval> notes
用户搜索界面Marchionini给出了信息查找(information lookup)和探索式搜索(exploratory search)。信息查找就像数据库中查找信息,输入最简单的信息即可完成。探索式搜索分为学习和调查,学习搜索需要多个查询响应对,用户需要花费时间读取多个信息项,综合这些内容。调查是一个更长期的过程,在一段长时间内进行多次迭代,对返回结果进行评估。
现在的模型强调搜索过程的动态特性,用户在搜索的同时也在学习,当他们看到检索结果时,其信息需求会进行相应调整。这种动态过程称为采摘模型(berry picking model)。
有时用户把一个复杂的不容易查到的查询分解成多个简单的定向的查询,这种策略称为定向(orienteering)。
信息搜寻理论(IFT)利用了进化论的观点。
搜索引擎用了导航结构(navigation),某个交互界面可能需要数次点击来引领搜索用户寻找他们的目标。
搜索界面中还用了深度链接和站内链接,现在也在用。
在查询产生了一定结果之后,超过50%的用户至少进行了1次查询修改。搜索界面越来越多使用相关项建议技术,通常称为查询项扩展(term ex ...
4.10 Kaggle competition_predict house price
4.10.1 download and load datasets非常全的文件下载保存操作123456789101112#we will download different datasets and we will realize some functions to download them easily.#Firstly we set a dictionary DATA_HUB, which can map names of datasets to 2-tuples related to datasets#The 2-tuple includes urls of datasets and sha-1 sercet keys to verify the file completion.#All the datasets like these are stored onto website with address DATA_URLimport hashlibimport osimport tarfileimport zipfile
1234import requests#@save ...
4.9 environment and deviation types
12345678910#1.协变量偏移,比如说我们训练集是一组真实的猫狗图像,但是测试集却给出了动画猫狗图像。#也就是说,假设在一个与测试集的特征有本质特征的数据集上进行训练,如果没有方法来适应新的领域,可能会有麻烦。#2.标签偏移,label shift描述了与协变量偏移相反的问题。这里我们假设标签边缘概率P(y)可以改变,但是类别条件分布P(x|y)在不同的领域保持不变#当我们认为y导致x时,标签偏移就是一个合理的假设。比如我们判断疾病时,可以根据症状来判断,即使疾病的相对流行旅随着时间而变化。也就是疾病就是#标签,会发生一定变化,但是症状并不改变。#概念偏移,比如标签的定义发生变化了,例如精神疾病的诊断标准,工作头衔等
4.9.2 distribution deviation examples123#比如自动驾驶汽车,我们想要通过机器学习开发自动驾驶。#当我们需要学习路沿,开发路沿检测器,有人直接把游戏中的路沿数据拿来额外的训练数据,在测试的时候也会非常有效!虽然很快就学习到了这个渲染的特征#但在真正的应用中就是灾难。
4.9.3 distribution deviation c ...
4.7 forward propagation, backward propagation and calculation graph
1234#forward propagation indicates from input layers to output layers calculating and storaging results in each layer.#we all know backward propagation is to calculate derivatives of each W(W1, W2), so forward propagation is just #forward calculate, note: it is not derivatives, it is just XW, then ReLU(XW), then go to the next layer and get the output.
4.8 numerical stability and model initializing12#previously we assign a distribution to initialize parameters like W and b, but initializing sche ...
4.6 Temporary Retirement
4.6 Temporary Retirement1234#a optimizing algorithm which is also called "Dropout".#It can prevent overfitting on the datasets, so Dropout drop some neural units randomly during every iteration.#So, in the neural network, each neuron cannot rely on other specific neurons. #It seems like training some subnetworks, which can reduce the overfitting and improve the robustness.
1#we add noise in the inputs in each layer with normal distributions.
4.6.4 starting from zero1234567891011121314# ...