- 博客(71)
- 收藏
- 关注

原创 pytorch1.4+torchvision0.5+cudatoolkit10.0_linux安装
安装的时候一定要确保所有的安装包都安装在了一个环境下。mkl,cudatoolkit 一定要确保安装成功,否则 import torch 命令会出现error。由于网速不稳定,我从清华源下载了本地安装包进行安装。由于pytorch1.4以上版本有prune工具包,嗯,真香。...
2020-11-04 13:42:41
2587
原创 Ascend L 闯关记录
下载及安装流程为:https://github.com/jadehh/MagicONNX/tree/dev。2、onnx格式按照act 终端命令行转换为.om格式的文件,需要指定NCHW格式的输入数据,以及input_name:1,1,28,28。3、inputname需要根据nutron可视化onnx模型,以便获得onnx模型的输入层的名字,即name。1、.h5格式转换为onnx格式,借助onnxmltools以及MagicONNX。keras框架的.h5文件转换为onnx格式的模型文件。
2024-10-25 14:07:15
348
原创 锁相环技术,单边带信号,信号的调制
调制是一种将模拟信号转换成数字信号的方法,它可以提高信号的传输速率和效率。用在接收机中,因为在相干解调的时候,需要接收机产生一个和发射机同频同相的载波频率,这时候就要对发射机处的载波频率进行精确的追踪,锁相环技术就是这样精准跟踪载波频率的一种技术。这通常是在接收端进行的,以便将接收到的数字信号转换回模拟信号。此外,调制技术还可以提供更好的抗噪声性能和更高的频带利用率,从而实现更好的通信质量。总之,单边带信号是一种相对简单但高效的数字信号处理方法,它可以提高信号的传输速率和效率,并且在接收端更容易进行解调。
2023-05-05 22:15:53
1033
原创 浅谈几个通信概念-如何理解卷积,负频率,傅里叶变换,奈奎斯特采样定理?
回忆下,基带信号调制之后,频谱发生了搬移,正负频率在载频处都出现了,但是时候下边带信号(也就是载频的左边的信号)和右边的信号占据的带宽是一样的,并且二者携带了相同的信息。最容易理解的就是连续信号的连续傅里叶变换,这个是初次学习傅里叶分析的时候的公式表示的内容,即信号是一个时间t的函数,而傅里叶变换的正交频率空间也是关于t的函数,即e^{-jwt}是什么以及为什么要用?有的,因为信号在调制的时候,实际上是对信号频谱的一个搬移的过程,比如说载波频率为Wc,基带信号经过傅里叶变换之后。当然是只保留一半的频谱了。
2023-05-05 22:11:16
1411
原创 0425-ofdm-LS/MMSE信道估计以及MIMO-ZF/MMSE信号检测
ofdm信道估计:根据发送的训练序列,信道正交性假设以及接收到的序列,估计信道,目的是得到H,这里的估计出来并插值之后的H进一步用于后边的信号检测,比如MIMO的信号检测,LS和MMSE是最小化的距离或者标准是什么才这样命名的。自己在学习的时候,只对ls,以及mmse这两个术语有印象,但是信道估计以及信号检测中都有这两种方法,他们的作用我并不是很清楚,因此,这里自己根据《mimo-ofdm》的书籍总结了一下。那么mimo的信号检测的表达式中,只有估计出来的信道矩阵H以及信道上估计出来的噪声方差。
2023-04-25 09:58:39
847
原创 OFDM-LS信道估计 MMSE信道估计公式推导
假设ofdmN个子载波之间是完全正交的,即不考虑ICI影响,通过发送训练序列来实现信道估计。其中,在推导6.8的时候,需要将6.6先拆解一下。所以公式6.8中的第2行可以进一步等价表示为。
2023-04-24 22:26:59
881
1
原创 【本地访问远程服务器上的jupyter】本地访问远程linux服务器的jupyter notebook
本地访问远程linux服务器的jupyter notebook
2022-09-21 09:46:33
919
原创 【keras报错记录】Failed to import pydot. You must `pip install pydot` and install graphviz-已解决
keras pydot以及plot_model报错,已解决
2022-09-21 09:10:37
567
原创 【Keras load_weights报错】AttributeError: ‘str‘ object has no attribute ‘decode‘
keras load_weights报错
2022-09-20 22:03:11
1080
1
原创 【阅读笔记】End-to-End Learning for RIS-Aided Communication Systems
智能通信 物理层结合深度学习
2022-09-08 14:54:34
533
原创 OFDM插入导频过程详解
ofdm符号的长度=有效数据+cp的长度,cp就是将有效数据的后半部分1/4截取并添加到有效数据的开始部分;比如一个ofdm符号的长度为4us,那么有效数据的长度为3.2us,cp的长度为0.8us;子载波的间隔=1/(有效数据的长度,就是有效数据的传输时间)=1/3.2us = 312.5KHz;子载波的个数实际上就是公路上的车道数目,数据就是一个个货车。IEEE规定使用52个子载波-也就是相当于交通管理局设计的公路的车道数;实际中53个子载波,中间有一个直流分量;如果在数字域中,需要对这些子载波记录
2022-05-30 15:54:46
7087
3
原创 keras搭建模型,获取中间层某一指定层的输出
Keras获取中间某一层的输出搭建模型骨架,即指定输入输出;load模型的训练参数;构建中间模型,指定输出层;whole_model = Model(inputs = model_input,outputs = model_output)whole_model.load_weights(model_saved_path) #模型保存格式为.h5格式,或其他,要与load方式一一对应middle_model = Model(inputs = model_input,outputs = whole_
2022-04-30 15:54:08
938
原创 Pytorch以及tensorflow中KLdivergence的计算
1. KL divergence是什么KL 散度是一个距离衡量指标,衡量的是两个概率分布之间的差异。ypredy_{pred}ypred指的是模型的输出的预测概率,形如[0.35,0.25,0.4]; ytruey_{true}ytrue是一个one-hot形式的真实概率,形如[0,1,0]。神经网络的训练目标是使得输出的预测概率尽可能接近真实的概率分布。KL divergence loss的计算公式为:KL(ypred,ytrue)=ytruelog(ytrueypred)KL(y_{pred
2022-04-17 11:43:34
1478
原创 tf-keras踩坑
使用jupyter连接服务器,通过tensorflow调用keras,结果直接显存拉满。网上找了一堆解决方法:指定gpu的,balabla…但是,仍旧没有解决,问就是有点emo,先占坑,后面解决了再来补完.
2022-04-11 15:55:09
1050
原创 anaconda安装tensorboard过慢
不要从官网下载tensorboard!!conda activate your environment name通过国内的豆瓣源下载:pip install -i https://pypi.douban.com/simple tensorboard==你想要安装的版本。
2022-04-04 21:39:46
1456
1
原创 本地计算机查看远程服务器的tensorboard使用情况
我是通过xshell连接远程服务器的,通过xshell里的隧道功能将服务器端的tensorboard的监视端口映射到了本地计算机的端口设置如下:点击你要连接的串口的属性,找到SSH,点击隧道,设置源主机以及目标主机都是localhost,端口都设置成6006;点击确定。回到ssh命令终端启动tensorboard命令:tensorboard --logdir your_model_file_name回到本地计算机,浏览器输入127.0.0.1:6006就可在本地查看tensorboard了
2022-04-03 19:19:09
1567
原创 【04】Lambda匿名函数的用法
Lambda匿名函数,这个操作要重要啦!Transforms.Lambdatorch.stack 对张量进行拼接,不同的是需要先添加一个维度,然后再进行拼接,比如将2个3维的张量拼接成一个4维的张量;后面的语句是进行参数的解析。上述代码段解读:从crops中一次取出一个元素,先把它转换成一个张量,最后转换好的饿张量是一个list列表的形式,然后这些张量被拼接成一个大的张量。...
2022-04-02 17:09:42
204
原创 【03】pytorch 自定义transform操作-踩坑记录
1 椒盐噪声是什么?就是图片上出现的黑白点,类似于老式电视机出现雪花屏幕的感觉。在这里插入图片描述transforms是pytorch定义的一个类,对图像进行各种变换,进行图像变换的目的是数据增强,使得模型的鲁棒性更加的强,尽管pytorch已经提供了很多的类别供我们选择,但在实际工程中这些往往还不够。因此需要因地制宜,制作属于自己项目的数据集变换策略。比如,添加椒盐噪声。2 实际中,怎么进行椒盐噪声的添加呢?在一张图片上随机的选择像素点,令其像素值为255(黑色)或者0(白色)。如下图是一个3
2022-04-02 16:50:49
3736
原创 【02】Pytorch autograd 线性回归踩坑记录
作业题是调整线性回归模型停止条件以及y = 2x + (5 + torch.randn(20, 1))中的斜率,训练一个线性回归模型。我先记录了自己的踩坑记录,最后附上了完整的代码,个人觉得踩坑的过程收获更大,共勉吧。step5 反向更新梯度,训练模型w = w - learning_rate * w.gradb = b - learning_rate * b.grad这里报错:原因是我又重新创建了一个变量。## step 2 构建模型w = Variable(torch.Ten
2022-04-01 14:04:31
1368
原创 【01】pytorch基础知识-基本运算
作业题1. 安装anaconda,pycharm, CUDA+CuDNN(可选),虚拟环境,pytorch,并实现hello pytorch查看pytorch的版本2. 张量与矩阵、向量、标量的关系是怎么样的?标量是0维的数据,只有一个值,向量是1维的数据,矩阵是2维的数据,张量是高维的数据;3. Variable“赋予”张量什么功能?赋予变量求梯度的功能,可以在torch的计算图中运算4. 采用torch.from_numpy创建张量,并打印查看ndarray和张量数据的地址;5. 实现
2022-04-01 10:46:14
1598
原创 总结3个在机器学习种用到的比较多的矩阵求导公式
总结矩阵求导以及矩阵求导在机器学子中的应用在深度学习神经网络的反向传播时,需要根据最后输出的loss反向更新网络的参数,神经网络的训练过程实际上就是参数的更新过程,参数是根据梯度下降法更新的,而梯度的计算需要用到偏导数。因此本文总结了3种在机器学习种用到最多的矩阵求导公式。考虑三种常见的情况:case1 vector to vectory=f(x)\mathbf{y}=f(\mathbf{x})y=f(x),其中,y是m维列向量,x是n维列向量。∂y∂x=[∂y1∂x1∂y1∂x2⋯∂y1∂xn∂
2022-03-31 16:38:41
586
原创 统计学习方法--隐马尔可夫模型
1.隐马尔可夫模型简介隐马尔可夫模型由一个状态序列,一个观测序列组成,其中状态序列是不可观测的,因此叫做隐马尔可夫模型。几个重要的参数:Q,V,A,B,O,π\piπ,Q是所有可能出现的状态的几个,V是所有可能出现的观测结果的集合,A是状态转移概率矩阵,是一个NN维的方针,B是一个观测概率矩阵,是一个NM维度的矩阵,O是观测序列,长度为T,π\piπ是初始的状态概率向量,是一个N*1的向量。2.python代码实现在这部分的代码中包含了HMM的3个算法:前向,后向以及viterbi算法。其中vi
2022-01-25 18:52:50
1885
原创 机器学习-小知识点手册
矩阵相乘np.dot(matrix_A,matrix_B)matrix_A@matrix_B 就是普通的矩阵乘法,A列数=B行数matrix_A * matrix_B 表示的是两个矩阵的对应的元素相乘
2021-12-18 19:10:30
1161
原创 统计学习 EM算法 Python实现
EM算法是什么EM算法可以用于有监督学习,也可以用于无监督学习。这个算法是根据观测结果求得对含有隐变量的模型的参数的估计。包含E步骤和M步,E步是求期望,M步是求极大似然估计,极大参数估计是对模型参数估计的一种方法。一个典型的应用EM算法进行参数估计的例子就是敏感问题的调查,我们想要得到人群中吸烟人数的比例,可以设置这样一个问卷问题1:你的手机尾号是偶数吗?若是,回答问题2,不是,则回答问题3问题2:你吸烟吗问题3:你喜欢养猫吗通过调查,我们获得结果是:是否问题2N1
2021-12-18 11:47:26
1669
原创 统计学习boosting算法
Boosting的原理的简单理解通过构建几个弱分类器,将几个弱分类器进行集成,从而得到一个分类性能你较好的强分类器。分类器的优化也就是训练过程相当于是一个串行的过程,后一个分类器的优化是建立在前一个分类器的基础上的。Boosting算法一个常见的实例就是提升树,这个树是一个二叉树,后一个树的构建在前几个树的基础上。树的参数的确定过程实际上就相当于神经网络的训练过程。树的参数包括:所选择的用来分类的特征是什么,按照这个特征进行分类的话,分类的阈值是什么。策略就是:大于这个分类阈值的话,把样本分为-1类还是
2021-12-17 20:34:29
1054
原创 统计学习:logistic回归 Python实现
1. 最大熵模型作用是从许多个模型中,选择一个最好的模型,选择的标准就是熵,即具有最大熵的P(Y∣X)P(Y|X)P(Y∣X)就是最好的模型。个人理解最大熵在这里起的作用类似于valid data 的作用。为什么最大熵的模型就是最好的呢?因为在自然界中,所有的分布都是趋于无序的、混乱的。最大熵准则则保留了每一种可能发生的情况,可以代表更多的可能发生的信息。比如你在猜抛掷一枚硬币,正面朝上的概率的时候,最好猜1/2而不是3/10.2.Logistic回归适用于多分类,二分类任务。分布函数是一个S形函数,
2021-12-12 16:24:29
3327
2
原创 统计学习方法-决策树原理以及代码实现
决策树代码实现from sklearn.tree import DecisionTreeClassifier# 由于存在离散值,用sklearn的preposseing进行数据的预处理from sklearn import preprocessing# 处理数据data = [['青年','否','否','一般',0],\ ['青年','否','否','好',0], ['青年','是','否','好',1], ['青年','是','是','一般',1], ['青
2021-12-05 11:58:20
163
原创 朴素贝叶斯的理解
朴素贝叶斯是一种机器学习算法,它假设所有的特征是独立的。给定一个样本,求其所拥有的特征,对于各类别上概率的最大值。在这个求解过程中,运用到了条件概率的知识。在推导过程中,可以证明分母是常数,就是最大化条件概率的分子,也等价于最大化后验概率。所谓后验概率,就是知果寻因。朴素贝叶斯的训练过程不是显式的,是无法明显地观察到的。...
2021-12-04 20:29:02
862
原创 统计学习笔记 - KNN原理、python实现
1. KNN实现我的理解就是,找到最接近的K个邻居,根据邻居的类别,确定自己的类别。怎么确定呢?K个邻居进行投票。包括:输入一个新的实例在已知的训练数据集中计算该新的实例与训练数据集中数据点之间的距离按照距离进行排序选择距离最短的也就是最相似的前K个邻居这K个邻居根据自己的类别进行投票,票数最多的类别就是该新的实例的类别。实验踩坑记录:lp_distance = [[np.linalg.norm(x_new-x_train[i],ord=2),y_train[i]] for i in
2021-11-28 12:17:36
337
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人