Pixel2刷机
最近心血来潮,想把自己手上的砖头机子(Google Pixel 2)刷个Ubuntu Touch系统
根据UBports的提示,我需要先把手机从安卓11降级到安卓9
前置操作:解锁Bootloader,开启开发者模式,打开USB debugging模式和解锁OEM,电脑下载adb工具
在安装完adb工具后,需要注意确认电脑能识别到设备,例如
还需要去Google开发者那里下载一下对应手机的固件包
如果出现了以下界面
说明这个节点被ban了,得换一个再试试
我们再去下载TWRP
回退到安卓9需要选择这两个文件下载
回退系统
在下载好文件之后,可以运行命令
1adb reboot bootloader
过一小会,手机就会重启至Bootloader模式
此时再运行flash-all.bat文件(文件在walleye-pq3a.190801.002-factory-f9a5e230.zip内)进行fastboot
如果fastboot无法识别到手机,即一直停留在
1< waiting for any device >`
说明电脑的驱动可能出现了问题
可以打开设备管理器查 ...
Scrapy爬虫
Scrapy初步认识
Scrapy模块安装
首先,我们需要先搭建好Scrapy的环境
利用conda创建一个名为Scrapy_work的虚拟环境并且进入该环境
12conda create -n "Scrapy_work"conda activate Scrapy_work
然后使用pip安装Scrapy模块
1pip install Scrapy
为了确认Scrapy模块已经安装成功,可以在Python当中测试一下能否导入Scrapy模块
12import scrapyscrapy.version_info
如果正确安装的话,终端会显示Scrapy的版本
编写Scrapy爬虫
Scrapy框架结构及其工作原理
上图为Scrapy框架是组成结构
Scrapy框架中的各个组件的介绍如下所示
组件
描述
类型
ENGINE
引擎,框架的核心,其他所有组件在其控制下协同工作
内部组件
SCHEDULER
调度器,负责对SPIDER提交的下载请求进行调度
内部组件
DOWNLOADER
下载器,负责下载页面(发送HTTP请求和接收HTTP响应 ...
NLP入门
词嵌入:编码形式的词汇语义
词嵌入是一种由真实数字组成的稠密向量,每个向量都代表了单词表里的一个单词
在自然语言处理中,总会遇到这样的情况:特征全是单词! 但是,如何在电脑上表述一个单词呢?
你在电脑上存储的单词的 ASCII 码,但是它仅仅代表单词怎么拼写,没有说明单词的内在含义(你也许能够从词缀中了解它的词性,或者从大小写中得到一些属性,但仅此而已)
更重要的是,你能把这些 ASCII 码字符组合成什么含义?当VVV代表词汇表、输入数据是∣V∣|V|∣V∣维的情况下,我们往往想从神经网络中得到数据密集的结果,但是结果只有很少的几个维度(例如,预测的数据只有几个标签时),我们如何从大的数据维度空间中得到稍小一点的维度空间?
放弃使用 ASCII 码字符的形式表示单词,换用one-hot encoding会怎么样了?好吧,ω\omegaω这个单词就能这样表示:
yi^∈T\hat{y_i}\in T
yi^∈T
其中,1表示的独有位置,其他位置全是0。其他的词都类似,在另外不一样的位置有一个1代表它,其他位置也都是0。这种表达除了占用巨大 的空间外,还有个很大的缺陷。它只是简单的 ...
数字图像处理
导论
存储格式
数字化后的图像数据在计算机中一般有两种存储方式,一种是位图模式,而另一种是矢量图模式
位图又称点阵图,是将图像的每一点数值存放在以字节为单位的矩阵中
矢量图不存储图像数据的每一点,而是存储图像内容的轮廓部分
色彩存储
RGB
我们最熟悉的色彩表现方式就是以红绿蓝三原色为基色的RGB
颜色
R
G
B
红
255
0
0
绿
0
255
0
蓝
0
0
255
黄
255
255
0
紫
255
0
255
青
0
255
255
白
255
255
255
黑
0
0
0
灰
128
128
128
BGR
其实就是RGB颠倒了一下,区别不大,但是OpenCV库当中常常使用BGR(历史遗留问题)
CMYK
CMYK中的每个字母代表一种颜色(青、品红、黄、黑),每个数字的取值范围为000~100%100\%100%,百分比越高,说明颜色中含有这种原色的比例越高,常用于平面印刷
分辨率
图像的空间分辨率
图像的空间分辨率是指图像中每单位长度所包含的像素或点的数目,常以像素/英寸(pixels per ...
数据降维
数据降维算法
数据降维是针对高维度数据的数据预处理方法
简而言之,降维是将高维度的数据转换为低维度的数据,保留其最重要的一些特征且去除噪声和其他不重要的特征,从而提升数据处理的速度
对于高维度的数据,有一个概念称为:维数灾难[1]
其描述的是在高维空间中的一些反直觉的现象,下面列出其中两点:
高维空间中的数据样本极其稀疏
高维单位空间当中的数据几乎全部位于超立方体的边缘
单位超立方体的体积为
Vhypercube=1d=1V_{hypercube} = 1^d = 1
Vhypercube=1d=1
而其内切的超球体的体积公式如下
Vhypersphere=πn2Γ(n2+1)⋅0.5dV_{hypersphere} = \frac{\pi^{\frac n2}}{\Gamma(\frac n2 + 1)}\cdot 0.5^d
Vhypersphere=Γ(2n+1)π2n⋅0.5d
对两者的商作极限可得
limd→+∞VhypersphereVhypercube=0\lim_{d\rightarrow+\infty}\frac{V_{hypersphere}}{V ...
系统建模与仿真笔记
系统仿真概述
系统与模型
系统
系统是指物质世界中既相互制约又相互联系着的,能够实现某种目的的一个整体
也就是说系统是一个由多个部分组成的,按一定规律连接的,具有特定功能的整体
任何系统都存在四个方面的内容:实体,属性,活动和环境
模型
系统模型实质上是一个由研究目的所确定的,关于系统某一方面本质属性的抽象和简化,并以某种表达形式来描述
系统模型一般可以分为:物理模型和数学模型
为了分析研究一个系统,通常会进行各种实验,其一是在已经存在的真实系统上进行,其二是通过构造模型,利用模型试验的方法进行
其中,第二种形式的实验越来越多,理由如下:
系统还处于设计阶段时,真实系统尚未建立需要了解未来系统的性能,只能通过对模型的试验来确认
在真实系统上进行试验可能会引起破坏或发生故障
系统无法恢复,如经济系统,若造成损失则无法挽回
试验条件无法保证,如进行多次试验难以保证试验条件相同,或试验时间太长,或费用昂贵
系统仿真的概念
仿真
系统仿真的必要性体现在以下方面:
优化设计:在复杂的系统建立以前,能够通过改变仿真模型结构和调整参数来优化系统设计,对系统和系统的某 ...
对抗网络入门
什么是GAN
GANs是用于DL(Deep Learning)模型去捕获训练数据分布情况的框架,以此我们可以从同一分布中生成新的数据
GANs是有Ian Goodfellow于2014年提出,并且首次在论文Generative Adversarial Nets中描述。它们由两个不同的模型组成,一个是生成器,一个是判别器
生成器的工作是产生看起来像训练图像的“假”图像;判别器的工作是 查看图像并输出它是否是真实的训练图像或来自生成器的伪图像
在训练期间,产生器不断尝试通过产生越来越好的假动作来超越判别器,而判别器则是为了更好地检测并准确地对真实和假图像进行分类
这个游戏的平衡是当生成器产生完美的假动作以使假图像看起来像是来自训练数据,而判别器总是猜测生成器输出图像为真或假的概率为50%
现在,我们开始定义在这个教程中使用到的一些符号
判别器的符号定义
设xxx表示代表一张图像的数据,D(x)D(x)D(x)是判别器网络,它输出xxx来自训练数据而不是生成器的(标量)概率
这里,由于我们处理图像,D(x)D(x)D(x)的输入是CHW大小为3x64x64的图像
直观地,当xxx来自训 ...
雷达成像基础
信号处理基础
平滑窗
锐化窗或平滑窗是一个从中心峰值点向两侧衰落的实函数,在信号处理中用来缓解有限长度信号的截断影响
由于加窗具有使孔径中心的权值高于两端权值的效应,故又称“加权”
旁瓣的降低会导致分辨率的展宽,所以需要折中考虑
在脉冲压缩中,常使用窗来控制旁瓣,同时保持尽可能高的分辨率,一般使用Kaiser窗
Kaiser窗
在时域中,长度为TTT的Kaiser窗可以表示为
wk(t,T)=I0(β1−(2t/T)2)I0(β),−T2≤t≤T2w_k(t,T) = \frac{I_0\left(\beta\sqrt{1 - (2t / T) ^ 2}\right)}{I_0(\beta)},-\frac{T}{2}\le t\le \frac{T}{2}
wk(t,T)=I0(β)I0(β1−(2t/T)2),−2T≤t≤2T
其中β\betaβ是可以调整的衰减系数或平滑系数,I0I_0I0为零阶贝塞尔函数
Kaiser窗的傅里叶变换或傅里叶逆变换为一个sinc函数
当β=0\beta = 0β=0时,Kaiser窗退化成矩形窗;当β>0\beta& ...
小波变换笔记
谨以此文,献给年少轻狂的自己
为什么需要小波变换
我们目前工程实践中所分析的信号大多是平稳信号,若忽略高斯噪声,则基本可以看作严格平稳信号的信号。但是我们难免会遇到需要进行时频分析的信号,这时候就需要采用一些时频分析方法
对于非平稳信号,传统的傅里叶变换是没有办法进行很好的分析的,需要采用特殊的方法,比如短时傅里叶变换(STFT)
短时傅里叶变换是通过添加一个固定的采样窗口来进行采样,再进行FFT,最后将结果整合为时频分析结果
下面有个例子
12345678910111213141516171819202122232425262728%% 预处理clc,clf,clear;%% 参数设置NPT = 4000; % 信号点数% 分段频率f1 = 100;f2 = 150;f3 = 200;f4 = 300;sample_rate = 1000; % 采样率t = 0:1 / sample_rate:(NPT - 1) / sample_rate;% 数据生成raw_signal = zeros(1,NPT);for i = 1:1000 raw_signal(i) = si ...
电磁场与波笔记
矢量分析
矢量代数
标量:只有大小,没有方向的量
矢量:既有大小,又有方向的量
对于矢量A\pmb{A}A,我们常用eA\pmb e_AeA表示与其同方向的单位矢量
矢量的加减运算遵循平行四边形定则,此处不做赘述
矢量的乘积运算有两种,点积和叉积
对于点积有
A⋅B=ABcosθ\pmb A \cdot \pmb B = AB\cos\theta
A⋅B=ABcosθ
对于叉积有
A×B=enABsinθ\pmb A \times \pmb B = \pmb e_nAB\sin\theta
A×B=enABsinθ
点积之后的结果是一个标量,而叉积之后的结果是一个矢量,其方向遵循右手螺旋定则
矢量的叉积运算一般使用行列式进行计算
A×B=∣exeyezAxAyAzBxByBz∣\pmb A\times\pmb B =
\left|
\begin{array}{cccc}
\pmb e_x & \pmb e_y & \pmb e_z \\
A_x & A_y & A_z\\
B_x & ...