【文献笔记】【精读】Deep Learning-Based Communication Over the Air

2023-05-16

文章地址:Deep Learning-Based Communication Over the Air

建议在看这篇blog前先看这篇:【文献笔记】【精读】An Introduction to Deep Learning for the Physical Layer
很多概念,例如autoencoder等,在这篇综述中都有提及

不开源

文章目录

  • 1 主要贡献
  • 2 分段分析
    • 2.1 INTRODUCTION
    • 2.2 END-TO-END LEARNING OF COMMUNICATIONS SYSTEMS
      • 2.2.1 The autoencoder concept
      • 2.2.2 Challenges related to hardware implementation
    • 2.3 IMPLEMENTATION
      • 2.3.1 Two-phase training strategy
      • 2.3.2 Channel model for training
      • 2.3.3 Extensions for continuous transmissions
    • 2.4 RESULTS
      • 2.4.1 Learned Constellations
      • 2.4.2 Performance over simulated channels
      • 2.4.3 Performance over real channels
    • 2.5 CONCLUSIONS AND OUTLOOK

1 主要贡献

证明了基于DL的端到端系统的可行性,给出了一种叫 software-defined radios (SDRs) 的模型;同时也承认这个系统存在无线传输拥有的同步问题与码间串扰问题,

注意,这个作者在描述结果时说的是

our implementation comes close to the performance of a well-designed conventional system

说明目前作者的DL模型还没达到传统模型的精度,这篇paper的关键在于给出用DL设计系统这一思路。这个应该就是论文的 insight(我认为)

autoencoder 最显著的缺点就是训练时使用的信道模型与实际信道模型存在差距。

2 分段分析

2.1 INTRODUCTION

开头说出了通信的本质

“reproducing at one point either exactly or approximately a message selected at another point” [1] or, in other words, reliably transmitting a message from a source to a destination over a channel by the use of a transmitter and a receiver.

这里提到通信系统中的发射机与接收机可以划分为许多子任务,其中有一个名词叫 equalization,中文叫”均衡“,也就是信道均衡(参考:信道均衡的原理)

第二段提出了一个对我来说inspiring观点,用DL的方法建立端到端的系统其实正是回归了通信的本质。

虽然传统的分块通信系统经过多年优化,DL在性能方面可能暂时还无法超越,但是DL在概念上的简便性是无可比拟的优势(不用预先建立一个数学模型)(许多论文都强调了这一点)

这篇论文的工作是对以下两篇论文的扩展:
Learning to communicate: Channel auto-encoders, domain specific regularizers, and attention

An introduction to machine learning communications systems

这一部分最后作者回顾了之前的一些工作,指出虽然有很多工作在尝试将ML应用于通信领域,但是它们都没有在本质上改变我们设计通信系统的方法。

作者最后指出了信道DL模型的一个关键缺陷:训练时信道的梯度未知(啥意思?)
(2021-8-19更新:意思就是我们用一个数学模型来表示信道,所谓模型就是一堆公式,而表示信道的这一堆公式是不能算梯度的)

2.2 END-TO-END LEARNING OF COMMUNICATIONS SYSTEMS

2.2.1 The autoencoder concept

在这里插入图片描述
作者在注释中解释了 Embedding 的概念:

An embedding is a function that takes an integer input i and returns the ith column of a matrix, possibly filled with trainable weights. Alternatively, s could be transformed into a “one-hot” vector before being fed into the NN

可见,Embedding 作用是生成 one-hot 编码,将一个向量变为一个矩阵

注意,在Transmitter 中,R -> C 是将实数映射为复数,这代表参数量减少了一半(复数 = 实部+虚部),同理,在 Receiver 中,C -> R的过程中参数量将翻倍。

Transmitter 的最后一个部分,也就是 Normalization,起限制功率的作用,也就是 || x ||^2 ≤ n

Channel 由加入噪声的层组成,论文中如此描述:

for an additive white Gaussian noise (AWGN) channel, Gaussian noise with fixed or random noise power σ2per complex symbol is added. Additionally, any other channel effect can be integrated, such as a tapped delay line (TDL) channel, carrier frequency offset (CFO), as well as timing and phase offset.

作为一个端到端模型,作者将通信问题看成一个分类任务,因此,使用 cross-entropy 作为损失函数。

作者印证了我之前的一个猜测,autoencoder 在训练完后 channel 部分是要被抛弃的,只留下 transmitter 和 receiver。

After training, the autoencoder can be split into two parts (discarding the channel layers), the transmitter TX and the receiver RX, which define the mappings TX : M 7→ Cnand RX : Cn7→ M, respectively.

DL方法与 QAM的区别:

  1. 星座图不同
  2. 发射机发送的码字时间相关,u1s1,这一段着实没看懂

Second, the transmitted symbols are correlated over time since x forms n complex symbols that represent a single message. This implies that a form of channel coding is inherently applied.

2.2.2 Challenges related to hardware implementation

autoencoder 想要在真实的硬件上实现很困难,因为有如下几个原因:

  1. 在通信系统中,信道的传输函数的具体形式是未知的,因此没法直接在端到端做基于梯度下降的训练(回想那篇综述文章的AE,难怪用的BLER而不是loss)
  2. 一个真实系统的运行基于样本而不是符号(????????),并且现有的DL库很难模拟相位偏移等硬件缺陷
  3. 大量数据时训练困难,比如100比特的数据在真实系统中很小,但是2e100种可能性已经足够让训练爆炸了(这个在综述blog中也提到过)。因此只能持续发小序列,这就需要时钟同步,那么系统就对采样频率偏移(SFO)敏感了。pulse shaping 还会导致码间串扰(ISI)

2.3 IMPLEMENTATION

2.3.1 Two-phase training strategy

在这里插入图片描述
先基于完整的通信系统模型训练DNN模型,然后在实际部署到硬件上后,在receiver上 finetuning, 利用了CV中广泛采用迁移学习的思想

2.3.2 Channel model for training

作者使用 tensorflow, keras 搭建信道模型,此模型具有如下功能:

  1. 上采样+脉冲整形
    (1)定义 γ 为 每个 symbol 中含有的 complex sample 的个数
    (2)对 input vector x 作上采样(按论文的意思,一个 x 向量 由 n 个symbol组成),也就是在每个 symbol 后插入 γ-1 个0,这里每个 0 代表替一个 symbol 占坑。那么上采样后 size 为 n 的 vector x 就会变成一个 size 为 γn 的 sample vector,令 Nmsg= γn。
    (3)将 size 为 Nmsg 的 sample vector 与一个 升余弦滤波器(滚降因子为 α,有奇数L个抽头)进行卷积,得到一个 size 为 Nmsg + L - 1 的向量 Xrrc

在这里插入图片描述
意思是向量 x 由 n 个复数组成


  1. 恒定采样时间偏移
  2. 恒定相位偏移 + 载波频率偏移
  3. 加性高斯白噪声

symbol 与 bit
参考:https://wenku.baidu.com/view/527f3689856a561252d36fbd.html?re=view

symbol 也叫 data symbol,即数据符号。有些文献上也成为 complex symbol,意思是说 symbol是以复数的形式存在着。此外,在移动通信中,发射到大气中的数据也是以 symbol 为基本数据单元(而不是有线通信中的比特流)

调制之前,数据以bit为单位,调制之后,数据以bit为单位。不同调制方式,每个 symbol 对应的 bit 数如下:

在这里插入图片描述


在描述各种方法的具体实现过程中,有很多陌生知识点

(1)根生余弦滤波器(root-raised cosine (RRC) filter)用于脉冲整型
参考:
平方根升余弦滤波器
根升余弦(成型)滤波器
升余弦滤波器MATLAB分析

(2)通过时移滤波器来实现样本时移
在实际使用中,运行很长时间后,样本时移还会造成样本频移。但是作者设计的信道模型中没有涉及频移,因为有一个帧同步程序能够解决这个问题

信道模型如下所示:
在这里插入图片描述

(3)
载波频移到底是什么?
这一段完美解释:

Radio hardware suffers from a small mismatch between the oscillator frequency of the transmitter ftxand receiver frx, resulting in the CFO fcfo= frx− ftx.

2.3.3 Extensions for continuous transmissions

一、针对多消息序列的训练

autoencoder可以不用任何滤波器和同步解决码间串扰问题

但是如果我们使用 individual messages 来训练 autoencoder 的话,会产生一个问题,那就是真实的 continuous transmission 会产生 message 之间的干扰,并且因为训练时 autoencoder 没有见过这种干扰,这就会严重损害通信精度。

那么如何解决这个问题?

在这里插入图片描述
在训练过程当中:
(1)假设 transmitter 产生了 2l+1 个 message(由上下文猜测 message 就是 sample ,| 更新:后面有解释,在传统通信系统中 叫 symbol,在 autoencoder 中叫 message | 再次更新:一个message 包含多个 symbol,一个 symbol 包含多个 sample),也就是输入向量 x 中每个 symbol 有 n 个 complex sample 有 n 个 symbol
(2)假设 经过 channel model 后向量 y 为
在这里插入图片描述
(3)定义一个 sequence decoder,它能基于一个y的切片 y(k1, k2)来decode {s(t-l), s(t+l)}中的信号 s(t),l被称为 padding message(???),y 的切片的长度为 k2 - k1 + 1。
论文中假设 k2 和 k1 的值为:
在这里插入图片描述
并且定义一个叫 Nseq 的变量
在这里插入图片描述
这个Nseq 就是 sequence decoder 的输入向量的长度(size),也就是说 transmitter 生成的 2l + 1 个symbol 只有 2l - 1 个输入 sequence decoder (这里的所谓 slice 就是指把首尾的 sample 去掉)。St-l 与 St+l 仅用于减轻边缘效应(???)

二、相位偏移评估

如流程图所示, Y(k1, k2)输出后会输入 phase encoder(PE),PE是一个神经网络,其输出一个复数标量 h,h 通过与 slicer相乘来补偿恒定相位偏移

关于整个系统的 pipeline 有一些需要注意的点:
(1)PE被集成到了端到端的网络中,但是loss function 缺并没有包含 PE 输出的 h 的偏差。作者试过了这样,但是没有什么增益,就不加了。
(2)PE 评估的是
在这里插入图片描述
并没有直接评估相移 ϕoff,因为这个一个关于时间的周期函数,周期为2π,这会导致基于梯度下降的训练无法收敛,因为相隔2π的值梯度相等。
(3)作者忽略了载波频率偏移CFO和其修正(loss)。因为作者同样试过了但是没有任何增益。作者猜测这是因为此篇论文中使用的 IQ样本序列相对比较短,所以精确的CFO补偿不是必须的,并且能轻易被RX block 解决。
(4)PE可以用被当作存储先前传输序列的内部状态的RNN来实现。这样,PE对相位的评估就可以像锁相环一样基于一个本质上无限大的评估范围,这可以提升模型性能(???)作者说自己还没尝试过这样的RNN结构(我猜是做过了但是效果太拉了,或者是效果还行但是想留个坑给其他人好之后提升citation)。

三、特征提取
如果 RX block 采用完整的 h 和 slicer 的乘积作为输入来 estimate St(作者称为use full observation),就会导致两个问题:
(1)这会导致 observation window(?猜测就是输入的意思)内包含相同的信息,比如要是S(t) = S(t+3),就会使 receiver 在 estimate 的时候产生困惑,不知道评估后的 St 到底对应哪一个输入。
(2)输入越大,神经网络的参数量越大,这对部署不利。因此作者选择只向RX block输入一个 sub-slice
在这里插入图片描述
并且将其与从 Y(k1, k2)中提取出的 F 个特征相拼接(concatenate)。提取特征的过程由 Feature
Extractor (FE) 完成。作者实验证明了 F 只需要为 4 就可以明显提升精度。于是作者假设:
在这里插入图片描述
并且由此定义了输入 RX block 的样本个数 Nin。
在这里插入图片描述
论文中这么解释这个式子

the RX block decodes stbased on the F features from the FE block concatenated with the Nmsg
samples taken from the center of y to which γ samples (representing one complex symbol) are pre- and appended.

(我并不是很懂为什么要加上 2γ)

同 PE,FE也不需要额外加入 loss 并且可以用RNN实现

四、帧同步
首先,在概念上,一个 frame 包含多个 message

因为 transmitter 和 receiver 采样频率的不同而产生的 SFO 非常难处理
这里作者详细举例解释了 SFO 的概念,就是当采样频率不同时,如果采集的 IQ samples 足够多,那么receiver estimate 的 IQ sample 与 transmitter 发送出去的相比在数量上就会有明显差别,甚至会差一整个 symbol(message)。
作者说这样会导致如下后果(看不懂)

This effect leads to the very little understood concept of the insertion and deletion channel, for which not even the capacity is known

在传统通信系统中,SFO 通过 “tracking of the actual timing offset” 来解决,如何 track the actual timing offset?使用锁相环并且对接收到的信号在期望接收的时刻进行重采样(上学期通信原理实验验收的时候老师有和我说过这个,世界线闭合了)
在 autoencoder 中自然没有锁相环,作者使用了一个基于神经网络的帧同步模块来解决SFO,其流程如下所示:
在这里插入图片描述
关于 frame synchronization 是如何工作的,论文中已经解释的非常明白:
在这里插入图片描述
为了阐述 frame synchronization 的具体计算过程,作者定义了一个函数(这个函数通过神经网络实现)
在这里插入图片描述
输入为:
r 维向量 v
正整数 d
正整数 q
其中,d 和 新变量 m 的取值为
在这里插入图片描述
由此我们可以得到一个 d 行 m 列的矩阵
在这里插入图片描述
之后一段计算过程没看懂,反正最后会得到一个表示样本偏差概率的向量 τ,这个向量由 offset estimator (OE) 计算得到,OE是一个 “dense NN with Nmsg outputs and softmax output activation”,因此
在这里插入图片描述
τ 的取值范围为
在这里插入图片描述
τ 和 i 之间的映射关系以及 i 的取值范围如下所示:
在这里插入图片描述
OE 的 NNs 可以被整合入端到端的训练过程中,但是作者并没有这么做,而是将其作为一个独立的训练过程,使用 transmitter 输出的数据作为输入

论文中给出的算样本偏移的算法流程如下:在这里插入图片描述
五、完整的解码算法
在这里插入图片描述
以上是解码算法的伪代码

对于一个输入向量Y,会先通过上一部分的算法1来找到某一帧的初始 index,然后通过如下算法3来decode
在这里插入图片描述

2.4 RESULTS

作者实验时使用的系统参数统一如下所示:
在这里插入图片描述
autoencoder 涉及到的所有NN模块,包括 transmitter (TX), receiver (RX), feature
extractor (FE), phase offset (PE) and offset estimator (OE),其结构如下所示:
在这里插入图片描述
参数取值如下所示:
在这里插入图片描述
优化器:SGD + Adam
学习率:0.001
信噪比:9dB
epoch:60
数据集大小:5000000 random messages
batch_size: 每过10个epoch变一次,取值为{50,100,500,1000,5000,10,000}

OE采用相同方法进行训练,时间偏移 τbound= 8Ts,其中 τbound 为时间偏移的界限

注意,作者说这个模型需要在一块 Titan x 上训练 1 天

训练完后就是在 receiver 上 finetuing。使用了“20 sequences of 1,600,000 received IQ-samples”以对应不同的初始定时(initial timing)和相位偏移。

finetuing 总共只有 3 个 epoch,每个epoch用不同的 batch size,分别为{1000,5000,10,000}。之所以只finetuing 这么短时间是因为再继续下去就过拟合了。

用来与 AE 比较的 baseline 是一个 differential quadrature phase-shift keying (DQPSK) transceiver (差分正交相移键控收发器)。论文中描述的参数如下:

As a baseline system for comparison, we use a GNU Radio (GNR) differential quadrature phase-shift keying (DQPSK) transceiver, relying on polyphase filterbank clock recovery [32] with 32 phase filters (each with 1408 RRC taps) and a normalized loop bandwidth of 0.002513, which is based on the performance one could realize in hardware with the PLL of the used SDR.

为了建立 baseline,作者用了一个叫 GNU Radio 的开源的信号处理库,baseline 的参数见下图:

2.4.1 Learned Constellations

在这里插入图片描述
这张图着实没看懂
这是 complex symbol 的星座图,那么一个点应该就代表一个 symbol。图标注释里说这是所有 256 个messages 的星座图,按论文中说的一个 message代表4个 symbol,那么一张图应该就有1024个点?如果是这样的话可以理解,只是图标注释后半段说 4个独立的 message 的symbols 被分别用不同符号高亮了,这什么意思?然后四张图的标题 Symbol1-4什么意思?
(更新:看来还是要把问题打出来才更好想。。上面那句话没打完就想到一种符合逻辑的解释了。每张图都是一种 messages 分布的可能,都有 1024 个symbol,the symbols of four individual messages 意思是说从 256 个 message 中挑出 4 个 message,把它们的位置标出来给读者看看)

通过星座图我们可以得出以下几个结论:
(1)symbols 大多分布在单位圆上,这说明 autoencoder 已经学会了有效利用每条信息的可用能量。
(2)虽然最后三个星座图中 symbols 在单位圆上均匀分布或接近零点,第一个星座图中的 symbols 全都在 第二象限,这说明它们隐含地用于相位偏移估计(?????????????)
(3)一些 message 的 symbols 接近零点,这暗示了 不同 message 的 symbols 之间存在的时间共享形式。(????????????????????????????????????)

2.4.2 Performance over simulated channels

作为第一个 benchmark,作者在一个 GNR 信道模型上测试了 autoencoder 的性能,之所以使用 GNR信道模型是因为该模型能够呈现真实无线传输中会出现的损伤。

GNR信道模型的参数如下所示:
在这里插入图片描述

作者使用 transmitter 生成了 15个 sequence,每个 sequence 由 100,000 个 messages 组成 。其中 5 个 message 用来 finetuing receiver,另外 10 个 message 用来测试 BLER performance。测试结果如下所示:
在这里插入图片描述
可见 autoencoder 的性能比 DQPSK 总是会差点。作者猜测这是因为 GNR信道模型中的 CFO 导致的。如果换成 stochastic channel model 差距应该就会减小?

2.4.3 Performance over real channels

2.5 CONCLUSIONS AND OUTLOOK

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【文献笔记】【精读】Deep Learning-Based Communication Over the Air 的相关文章

  • Security Onboard Communication-SecOC

    一 通讯加密的必要性 随着汽车电子的发展及整车功能复杂性的提高 xff0c 车载控制器数量从之前的寥寥几个增加至规模复杂的上百个 基于功能的需求 xff0c 各个控制器每时每刻需要进行大量数据的交互 xff0c 数据交互的方式也多种多样 x
  • Generalized Focal Loss: Learning Qualified and Distributed BBoxes for Dense Object Detection论文翻译阅读

    Generalized Focal Loss Learning Qualified and Distributed Bounding Boxes for Dense Object Detection论文翻译阅读 论文下载地址 xff1a 点
  • Deep Fashion衣服时尚数据集

    数据集简介 官方介绍 xff1a http mmlab ie cuhk edu hk projects DeepFashion html DeepFashion数据库 xff0c 这是一个大型服装数据库 xff0c 它有几个吸引人的特性 x
  • Docs » Learning the ArduPilot Codebase » EKF » Extended Kalman Filter Navigation Overview and Tuning

    原文 xff1a http ardupilot org dev docs extended kalman filter html extended kalman filter navigation overview and tuning 本
  • 【2015/IE】Variational Autoencoder based Anomaly Detection using Reconstruction Probability

    原文首发于个人站点 xff1a 基于变分自编码器重构概率的异常检测模型 个人公众号 xff1a DreamHub 文章链接 xff1a Variational Autoencoder based Anomaly Detection usin
  • 即兴讲话的万能公式(赶过猪)

    即兴讲话就是在没有充分准备的情况下进行的讲话 很多人在即兴演讲的时候会心跳加速 语无伦次 大脑一片空白 甚至手脚发麻 有时候即使经过准备 演讲稿已经写好了 上台前也背诵过了 但是一到台上还是紧张的 稿子都忘记了 其实造成这种情况 很大部分的
  • ElementUI怎样修改组件的css样式?

    1 开发中遇到的问题 需求 修改elementUI 中 环形 progress 宽度 由于父容器的宽度不确定 不能使用 width 属性设置宽度值 html代码如下
  • 串行数据的二进制通信协议解析器设计

    我正在重新审视字节流 串行数据 一次接收 1 个字节 的通信协议解析器设计 数据包结构 无法更改 为 Start Delimiter 1 byte Message ID 1 byte Length 1 byte Payload n byte
  • 高效的Python IPC [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在Python3中制作一个应用程序 它将分为batch and gui部分 Batch负责处理逻辑和gui负责显示它 Which 进程间通信 I
  • 如何促进服务器上的 php 脚本与另一台服务器上正在运行的 Java 应用程序之间的通信?

    如何建立Java应用程序监听php发送的数据的方法 套接字还是 Http POST 本质上 我有在另一台服务器上运行的 Java 应用程序 等待在其他服务器上运行的 PHP 脚本发送的某些字符串数据 任何库建议或示例代码将不胜感激 我建议实
  • Windows下使用Lua读写串口

    我的总体计划目标是使用 Lua 创建更好的 3D 打印机校准 GUI 幸运的是 GUI 部分已经可以工作了 我正在尝试从 Windows 10 计算机上的 COM 端口读取和写入打印机的 Arduino 然而 我对串行通信感到困惑 目前 我
  • js中通过窗口名称进行窗口到窗口通信

    有谁可以给 我一些关于如何使用 javascript 处理窗口到窗口通信的想法 因为这两个窗口没有父子关系 基本上另一个窗口是使用 window open 方法打开的 任何精彩的信息都将受到高度赞赏 假设如下 windowHandle wi
  • Node.js 中子进程之间的通信

    我正在尝试在 node js 中创建一个程序 使用以下命令创建两个进程fork 的方法childproccess 流程如下 父亲 js Son1 js Son2 js 我想直接在两个子进程之间传输数据 而不是在父进程和子进程之间传输数据 我
  • 什么是spark.driver.maxResultSize?

    The ref http spark apache org docs latest configuration html says 每个分区的所有分区的序列化结果总大小的限制 激发行动 例如收集 应至少为 1M 或 0 无限 如果总大小超过
  • 解释为什么“只需向数据库添加另一列”对于非程序员来说是一个坏主意[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有销售人员和精算师试图向客户销售定制产品 这很好 但是 当收到复杂的变更请求并且我发回大量估算时 他们会感到困惑 他们常常会问我 你为什么不能
  • 在android中使用串口RS-232?

    我想在 Android 设备上使用 JavaComm API 类通过串行端口发送信号 我的想象如下 1 Android 设备为 Archos 3 2 具有 android 2 2 和 USB 主机模式 2 在我的 Android 应用程序中
  • HTTPS 和 SSL 之间的区别

    HTTPS 和 SSL 有什么区别 我阅读了有关它们的内容并发现了以下内容 HTTPS HTTPS 是 HTTP 与 SSL TLS 的组合 这意味着 HTTPS 基本上是 HTTP 连接 它传递使用 SSL TLS 保护的数据 SSL S
  • 如何:响应式可用 Wcf 双工通信

    我正在开发一个使用 WCF 在服务器和客户端之间进行通信的应用程序 服务器具有不断变化的服务数量 以及一项主服务 客户端可以查询有关其他服务的信息 然后使用主服务中的信息订阅他们想要的服务 当子服务发生更改 添加 删除等 时 主服务向订阅客
  • 选择 FTP 和 HTTP 传输的缓冲区大小

    在实现低级 HTTP 和 FTP 传输时 如何选择缓冲区的大小 从套接字读取或写入套接字的字节数 以获得最大吞吐量 我的应用程序应该在 130 Kbps 到 3 Mbps 的连接上使用 HTTP 或 FTP 传输数据 我事先知道预期的速度
  • 两部手机之间无法发送GSM数据吗?

    请详细告诉我为什么两部手机之间无法通过GSM传送数据 我几乎找不到关于这个问题的信息 这里有2点 首先 GSM 是一种移动语音电话系统 普通 GSM 不进行数据连接 GPRS 和 EDGE 是 GSM 网络的附加组件 允许发送数据 还有其他

随机推荐

  • Markdown中的公式、字母表示汇总

    Markdown中的公式 字母表示汇总 1 常用希腊字母表2 数学公式 最近几个月打了很多Markdown公式 xff0c 隔一段时间就会忘一些表示方式 xff0c 还不如在这里慢慢汇总记录 xff0c 以后要用的时候来查就行了 xff01
  • CMake项目中神器:CMakeLists.txt

    首次接触 CMake xff0c 见识了 CMakeLists txt 的强大后 xff0c 赶紧整理出来分享一下 参考资料 xff1a Cmake 3 6 W3Cschool参考手册 本文讲述了一个 CMake 项目 xff0c 在从单文
  • TCP详解之拥塞控制

    概述 TCP模块还有一个重要任务 xff0c 就是提高网络利用率 xff0c 降低丢包率 xff0c 并保证网络资源对每条数据流的公平性 xff0c 这就是所谓的拥塞控制 拥塞控制的四个部分 xff1a 慢启动 拥塞避免 快速重传 快速恢复
  • frps搭建自己的内网穿透服务器

    frps搭建自己的内网穿透服务器 开发过程中 xff0c 很多时候我们需要用到内网穿透 xff0c 将自己的服务器映射到外网 xff0c 下面说一下怎么用frps搭建自己的内网穿透服务器 frps Github地址 里面有中文文档 xff0
  • 更换backbone心得

    1 对于目标检测 xff0c backbone相当于连接中间环节 xff0c 连接着图片输入和后面的检测头 xff0c 所以在更换网络时候只要注意输入backbone的数据形式以及后面一个环节要求输入的形式 xff0c 把backbone的
  • from torch._C import *ImportError: DLL load failed while importing _C: 找不到指定的模块。

    更新torch的版本 xff0c 原先是1 4 0出现这个问题 xff0c 更新到1 11 0后解决 pip install torch 61 61 1 11 0 43 cpu torchvision 61 61 0 12 0 43 cpu
  • 模型衡量标准recall precision accuracy f1score(hmean)

    问题背景 xff1a 在处理分类问题时 xff0c 会遇到一种情况 xff1a 假设一个二元分类问题 xff1a 假设我们的预测算法是 xff1a xff0c 这个算法忽略特征值 xff0c 不管任何情况下都是预测等于0 毫无疑问这是一个糟
  • layoutlmV3使用步骤

    1 layoutlm系列的预训练权重全都是放在huggingface上面 xff0c 安装官方教程如果下载失败 xff0c 可以在linux系统下载 xff0c 然后将下载的缓存文件保存 或者在官网上下载并保存 需要下载的文件如下图 2 将
  • Python引用路径

    0 官方建议 xff0c 总是优先使用绝对引用 xff0c 只有在引用路径较为复杂导致引用代码很长时 xff0c 才考虑使用相对引用 绝对引用 优点是清晰且直接 xff0c 可以很容易就确定引用文件位置 xff1b 且即使当前文件的位置发生
  • 关于batch normalization的理解

    套餐 xff1a 卷积 43 BN 43 激活 xff0c 原始的BN0 61 X E X std xff0c 减去均值除以标准差 xff0c 改进后的BN 61 BN0 43 xff0c 其中 和 是通过模型学习得到的 原因 xff1a
  • 基于tablemaster的表格检测与表格重构。

    1 结果展示 原图1 原图1的结果 原图2 原图2的结果
  • 【文献笔记】【精读】MobileNet V1

    文章目录 1 论文结构2 研究的问题3 文献综述3 1 当前 xff08 2017 xff09 已有的DNN的问题3 2 当前已有的网络轻量化的方法 4 MobileNet 简介4 1 本网络创新点4 2 本网络优点 5 MobileNet
  • 【知识点】神经网络输入归一化区别:[0, 1]和[-1, 1]

    1 前置知识 1 1 ReLU的单侧抑制 参考 xff1a RELU的单侧抑制 单侧抑制含义 xff1a relu的曲线是一个折线 xff0c 在小于0的部分一直为0 xff0c 而在大于0的部分是一条斜率为1的直线 单侧抑制的优点 xff
  • 【知识点】机器学习降维方法

    摘抄文章 xff1a 打破 维度的诅咒 xff0c 机器学习降维大法好 为什么数据需要降维 机器模型用来帮忙预测一个目标变量 xff0c 但是不一定输入图像的每一个特征都对应目标变量 xff0c 这会使模型变得复杂 这里所说的降维的纬度 x
  • Windows + Linux 双系统的安装

    Windows 43 Linux 双系统的安装 参考自 https blog csdn net flyyufenfei article details 79187656 参考自 https blog csdn net u012052268
  • merlin工具包+语音合成TTS技术调研

    merlin官方github merlin 这篇文章至少这个暑假都会持续更新中 前言 大二时做比赛从github上扒了爱丁堡大学某语音实验室做出来的toolkit叫merlin xff0c 当时啥也不会 xff0c 不懂python也不懂u
  • 【知识点】通信中的反向散射技术

    参考论文 xff1a 反向散射通信技术与物联网 传统反向散射技术 如RFID xff0c 应用于商品识别 停车场收费系统等 在要识别的物体上加标签 xff0c 然后向其发射射频信号 xff0c 根据反射回来的信号进行判断 缺点 xff1a
  • 【文献笔记】【精读】An Introduction to Deep Learning for the Physical Layer

    文章地址 xff1a An Introduction to Deep Learning for the Physical Layer github xff1a py radio autoencoder xff08 第三方代码 xff0c 非
  • 【知识点】IQ调制 IQ数据 星座图

    将以下链接依次看完 xff0c 就能明白IQ调制 通信里 星座图 到底是什么意思啊 通信原理 入坑之路 详解IQ调制以及星座图原理 什么是IQ调制 xff0c 为什么要用IQ调制 xff1f 什么是高阶调制 数字调制系列 xff1a 如何理
  • 【文献笔记】【精读】Deep Learning-Based Communication Over the Air

    文章地址 xff1a Deep Learning Based Communication Over the Air 建议在看这篇blog前先看这篇 xff1a 文献笔记 精读 An Introduction to Deep Learning