《KnowPrompt》论文代码复现1-环境配置

2023.12.25

用pycharm打开代码的时候,pycharm提示我很多要用的包都没有,于是直接点了这个提示当中的“install …”那个选项去安装,但是最后显示安装失败

师兄提醒我说会不会是因为我的torch的版本太高导致安装失败。我查看了readme文件,写着要用的torch的版本是1.8.1+cu111,而我此时配置在pycharm中的编译环境中的torch是2.x版本的,于是决定明天在anaconda中创建一个新环境,在新环境中安装低版本的torch,用这个新环境作为代码的编译环境(今天数学期末考试…学了一天数学了…肝不动了…先溜了…)

2023.12.26

今天在conda的虚拟环境中创建了一个新的环境,在这个新的环境中只安装了一些基础的包(就是创建环境时自动安装的那些包),没有使用pytorch官网的命令去安装pytorch

然后使用“install …”那个选项去安装,但是依然安装失败。失败原因好像是1.8.1版本的那个torch无法正常安装

于是删除上述那个环境,尝试使用readme文件中的命令再次进行创建环境和安装包的工作

依然失败,提示失败原因是没找到能满足torch1.8.1的需求的版本

于是去百度搜解决办法,发现了这个帖子【已解决】torch==1.9.1+cu111无法安装-CSDN博客,使用了这个命令“pip install torch==1.8.1+cu111 -f  https://download.pytorch.org/whl/cu111/torch_stable.html” 安装规定版本的torch,安装成功了(这个”-f”的作用是从指定url文件中查找包的下载链接,从后面紧跟的url参数获得的文件中,找pip要安装的包文件)

但是还安了个1.26.2版本的numpy,师兄说要用的包最好都和readme文件中的要求对上,于是我删了这个包

然后这次就提示我不用安装这个torch了

再次执行pip install -r requirement.txt

这次报的错误是

ERROR: Could not find a version that satisfies the requirement dataclasses==0.8 (from versions: 0.1, 0.2, 0.3, 0.4, 0.5, 0.6)

ERROR: No matching distribution found for dataclasses==0.8

很无语…readme文件中说在创建的新环境里用3.8版本的python,但是这里安装0.8版本的dataclasses时系统却提示这个版本的这个包需要的python版本要大于等于3.6小于3.7

于是删除刚才的环境,重新创建一个使用3.6版本python的环境

换了3.6版本的包,numpy又安装不上了,因为3.6版本的python不能安1.20版本的numpy。我又搜了下百度,百度说3.8的python自带dataclasses不需要额外安装…那为什么readme文件中还要我安装…删环境重试了只能…

这次还是照着readme文件中的要求创建的带3.8版本python的环境,但是创建完环境以后我没有使用pip install -r requirement.txt,而是使用“pip install xxx”一个包一个包的装的,torch1.8.1还是按照上面的方法装的

前面的包都很顺利的装下来了,但是到了flax这个包这里出现问题了,提示我有依赖冲突

ERROR: Cannot install flax because these package versions have conflicting dependencies.

然后百度了一阵子解决不了问题,就去问GPT4了(不得不说GPT4大法好)

先是更新了一下pip,发现不管用

然后去看我的jaxlib版本,发现我并没有安装jaxlib,然后使用pip install jaxlib想安装jaxlib,结果还是失败,提示没有符合要求的版本

然后去百度了!!!这次百度到一篇帖子就我狗命了,链接在这JAX windows 下的安装 - 知乎 (zhihu.com),我下了“jaxlib-0.1.76-cp38-none-win_amd64.whl”这个包,包名的含义如图

然后在pycharm的终端中进入放这个包的文件夹,使用pip命令下载(下载的时候关掉梯子)

安装成功,然后回到原来的位置,安装flax包

安装成功!!!

现在是晚上11.26了,实验室只剩大老板和小老板的学生了…果然还得是俩老板的学生卷…哥们卷不动了…配置环境真的耗费心力…溜了溜了

2023.12.27

今天装了剩下的最后两个包,很顺利的就装上了,但是当我在pycharm中使用这个编译器的时候,还是提醒我没有numpy1.20.3和dataclasses0.8,使用conda list查看环境内的包时发现numpy被升级到1.24了,于是删了这个包,重新安一个1.20.3的numpy

然后就是dataclasses,我寻思不是python中自带吗,为什么还要我装,我想着死马当活马医吧,在interpreter setting里面,点红框中的加号

然后搜索dataclasses,就能找到

然后点左下角的“install package”,就能装好了(很迷…自己都说了这个包是给3.6准备的…为什么还要我3.8装…)

至此,配置环境阶段完成,开始读代码

  • 34
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一篇论文,其中使用了PARAFAC-based方法进行智能反射面辅助的MIMO信道估计。以下是代码复现的基本步骤: 1. 生成仿真数据集:通过MATLAB中的函数生成MIMO信道仿真数据集,包括发送端、接收端、智能反射面的位置坐标、反射系数等信息。可以参考MATLAB中的`comm.MIMOChannel`和`phased.ConformalArray`等函数。 2. 实现PARAFAC-based信道估计算法:根据论文中的算法原理,实现PARAFAC-based信道估计算法,包括数据预处理、TF分解、信道估计等步骤。可以使用MATLAB中的`parafac`函数进行TF分解,使用最小二乘法或迭代算法进行信道估计。 3. 评估算法性能:使用生成的仿真数据集,评估PARAFAC-based信道估计算法的性能指标,包括均方误差(MSE)、误差率等。可以使用MATLAB中的`sim`函数进行性能评估。 以下是参考代码实现: ```matlab % 生成仿真数据集 Nt = 4; Nr = 4; % 发送端和接收端天线数 Np = 16; % 智能反射面元素数 d = 0.5; % 智能反射面元素间距 fc = 28e9; % 载波频率 lambda = physconst('LightSpeed')/fc; % 波长 txPos = [0 0 0]; % 发送端位置 rxPos = [1 1 0]; % 接收端位置 irsPos = [0.5 0.5 1]; % 智能反射面位置 txArray = phased.URA(Nt,[0.5 0.5], 'ElementSpacing', lambda/2); % 发送端天线阵列 rxArray = phased.URA(Nr,[0.5 0.5], 'ElementSpacing', lambda/2); % 接收端天线阵列 irsArray = phased.ConformalArray('ElementPosition', [0 0 0; repmat([d 0 0], Np-1, 1)], ... 'ElementNormal', [0 0 1; repmat([0 0 1], Np-1, 1)], 'Element', phased.IsotropicAntennaElement('FrequencyRange', [20e9 40e9])); % 智能反射面天线阵列 channel = comm.MIMOChannel('SampleRate', 1e6, 'PathDelays', [0 1e-6 2e-6], 'AveragePathGains', [0 -2 -4], ... 'TransmitAntennaArray', txArray, 'ReceiveAntennaArray', rxArray, 'PathGainsOutputPort', true); % MIMO信道模型 [txSig, txInfo] = helperGenData(); % 生成发送信号 rxSig = channel(txSig); % 接收信号 irsCoef = ones(Np, 1); % 智能反射面反射系数 % PARAFAC-based信道估计算法 X = reshape(rxSig, Nr, Nt, []); % 数据预处理 [U, ~, ~] = parafac(X, 1); % TF分解 H = U{3}; % 信道估计 % 评估算法性能 MSE = mean(abs(H-channel.PathGains).^2); BER = helperComputeBER(H, channel.PathGains); ``` 其中,`helperGenData`和`helperComputeBER`分别为生成发送信号和计算误码率的辅助函数,需要根据具体需求自行实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值