NILMTK安装的血泪征程(2021-11-04更新)

目录

1. 前言

2. 尝试1--遵照官方指示--失败

3. 尝试2--失败

3.1 下载代码包

3.2 安装

3.3 测试

4. 尝试3--失败

4.1 安装

4.2 REDDToH5测试

5. 尝试4--成功?

6.总结

6.1 补充【2021-08-29】

7. 2021-11-04追加


1. 前言

        开始入坑NILM。

        在浩如烟海的文献、博客中遨游(懵逼)了几圈后,发现概念装了一脑袋然而有如浮在云端雾里看花水中望月并没有什么卵用,还是得敲敲代码、看看数据、做做分析才能得到直观认识。所以决定开始整点脚踏实地的东西,自然就是从nilmtk的安装开始了。

        开源的东西好是好,就是要把环境整齐活了门槛太高了,对小白太不友好了。

        包括官方指示在内,介绍nilmtk安装的博文在网上一搜也是一大把(从今天以后又增加一篇了),但是你永远不要太期待照着别人博文中说的去做就能一帆风顺—那是可遇而不可求的事情。今天折腾了大半天在几乎绝望的情况下通过无头苍蝇式的尝试最终居然碰到了一个可行的方案,感觉像是一个奇迹。就此做一个总结,给自己留个纪念,也期望能给其他未来将要入坑的伙伴们一点点帮助。但是。。。需要记住的是,以下所描述的并不保证是一个正确的方案,甚至不能保证是一个无害的方案,它只是恰好符合本渣当前运行环境等条件的一个“可行”方案而已。也许相比最后的解决方案的细节本身,搜索和解决问题的那种折磨而又必须死磕到底直到最后达成坚持就是胜利的过程本身对后来者更有参考意义。

        作业环境:Windows10,Anaconda。以下未注明的话所有操作均在Windows Anaconda Prompt上执行。

        本次奋斗(折腾,煎熬)过程中参考了以下博文,在此表示感谢。

        [1] NILM(非侵入式电力负荷监测)学习笔记 —— 准备工作(一)配置环境NILMTK Toolkit_wwb1990的博客-CSDN博客

        [2] https://blog.csdn.net/wwb1990/article/details/103911372

        如果只想看最后怎么安装成功的话,直接翻到最后一章就可以了(但是并不建议这样做,过程可能比结果更有参考价值)。

        以下操作中用到的一些conda命令的简要使用说明参见:conda常用命令的使用说明

 

        [2021-11-04]追加了一种新的安装方式,意外地顺利(虽然仍然遗留了nosetests执行的问题)。建议新看到本贴的小伙伴可以跳过前面“血泪史^-^”直接看第7章。

 

2. 尝试1--遵照官方指示--失败

Ref: nilmtk/install_user.md at master · nilmtk/nilmtk · GitHub

        首先参考GitHub上以上官方链接的提示进行尝试。不多废话,以下就按照文中所示的步骤进行一步一步的操作。

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56yo54mb5oWi6ICV,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56yo54mb5oWi6ICV,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56yo54mb5oWi6ICV,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56yo54mb5oWi6ICV,size_20,color_FFFFFF,t_70,g_se,x_16

        出师未捷身先死。。。这个不意外,一上来就搞成了那是做梦。

        But。。。在后面的尝试中发现下载的最新的git文件中的版本号是0.4.0,所以。。。是因为版本号指定不正确?可以这是官方的install guide告诉我用0.4.2的啊?!那0.4.1和0.4.2在哪儿呢?当然以上安装命令中将0.4.2改为0.4.1或者0.4.0依然是报告同样的错误。此路不通!可是这不通的理由让人不爽。

 

3. 尝试2--失败

        接下来参照(NILM(非侵入式电力负荷监测)学习笔记 —— 准备工作(一)配置环境NILMTK Toolkit_wwb1990的博客-CSDN博客)的说明进行尝试。仍然在上一节建立的nilmtk-env中进行安装。

        因为是在新建的virtual-env中,所以很多工具都需要重新安装,首先需要安装的就是git。

3.1 下载代码包

        安装完git了后执行以下两个命令:

        git clone https://github.com/nilmtk/nilm_metadata/

        git clone GitHub - nilmtk/nilmtk: Non-Intrusive Load Monitoring Toolkit (nilmtk)

        网络不稳定,不容易连接成功(报告下图所示错误,尝试了好几次终于clone成功)。还是直接从github上直接下载zip文件来得顺畅。不知道什么原因,不管了,反正下载的zip文件是一样的。

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56yo54mb5oWi6ICV,size_20,color_FFFFFF,t_70,g_se,x_16

 

3.2 安装

        进入nilm_metadata目录底下运行:python setup.py develop

        进入nilmtk目录底下运行:python setup.py develop

        看起来平安无事,毕竟没有报错。

3.3 测试

        运行noestests告诉命令找不到。好吧,也不知道nose到底是个什么鬼,反正安装就对了。。。

        conda install nose

        安装完再次命令行执行nosetests,出错报告中看到说没有找到pandas…参考wwb1990-blog的说明一锅端了:

        conda install --yes pip numpy scipy six scikit-learn pandas numexpr

        安装完再次命令行执行nosetests。

        这次报告没有找到networkx:ModuleNotFoundError: No module named 'networkx'

        从此开启了无穷无尽的各种包的安装(关键吧,每次只报告一个找不到的包。。。),甚至还出现过有些包需要在fanqiang软件开启条件下才能安装,有些则需要关闭才能安装。不知道有什么必然性,是因为我前面已经搞乱了才会出现这些幺蛾子吗?

        。。。

        最蛋疼的是下面这个:

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56yo54mb5oWi6ICV,size_20,color_FFFFFF,t_70,g_se,x_16

         安装:conda install tables

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56yo54mb5oWi6ICV,size_16,color_FFFFFF,t_70,g_se,x_16

        Conda不行那就改用pip安装:pip install tables

        报出一堆不明所以的错误。。。

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56yo54mb5oWi6ICV,size_20,color_FFFFFF,t_70,g_se,x_16

        病急乱投医。。。参考medium.com上某洋博文的建议更新pip:

        python -m pip install --upgrade pip

        无效,运行输出显示pip是最新版本

        仔细看了看有‘check_hostname’的错误,难道是?切断fanqiang软件试了试,果然开始Downloading(不禁为自己的机智而叹服)。燃鹅,又出新的幺蛾子了。 

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56yo54mb5oWi6ICV,size_20,color_FFFFFF,t_70,g_se,x_16

 

查了查,了解到hdf5.lib是h5py模块的库文件,管他niang的,安装。。。

conda install h5py

安装完毕后再次尝试tables的安装,依然出错。。。网上兜兜转转发现一个叫pytables,这是不是tables的替代品呢,好吧,试试看:

conda install pytables

安装成功(如果pytables是tables的替代品的,那前面为什么要提示安装tables而不是直接说安装pytables呢?)后再次运行nosetests: Ran 0 tests云云,就是说没有运行任何测试,不明所以。是不是nilmtk没有正确安装呢?跑到nilmtk目录底下重新运行一下python setup.py install(发现这次又要把fanqiang软件打开才行。。。蛋疼啊)。重新安装后,再次运行nosetests,这次报告无法找到”png.lib”,内心是崩溃的,有完没完啊。。。放弃,回头找另外的路。

  

4. 尝试3--失败

4.1 安装

        既然在virtual-env中安装整出这么多幺蛾子,心想还是回到base environment下试试吧。重来一遍以下操作:        

cd nilm_metadata
python setup.py develop
cd ..
cd nilmtk
python setup.py develop

        没有报告什么问题,执行nosetests进行测试,还是报告“Ran 0 tests”云云。

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56yo54mb5oWi6ICV,size_20,color_FFFFFF,t_70,g_se,x_16

         虽然执行nosetests没有实现有效的单体测试,但是毕竟也没有像上一章那样报一堆错误,所以决定先放过,直接前进到尝试性的数据转换。如果能正确地进行数据转换,总可以证明安装是正确的吧。

 

4.2 REDDToH5测试

        参考[2],下载REDD数据,并复制修改脚本REDDToH5.py如下:

from nilmtk.dataset_converters import convert_redd

convert_redd(r'D:\NILMD\REDD\low_freq',r'D:\NILMD\REDD\low_freq\redd_low.h5')

        运行后发现报告以下错误:

        TypeError: put() got an unexpected keyword argument 'expectedrows'

        一查原来在github(convert_read fail: TypeError: put() got an unexpected keyword argument 'expectedrows' · Issue #858 · nilmtk/nilmtk · GitHub)上已经有人报告了这个错误,并且有人给出了解决方案,心想这下总稳了。。。然而并没有,好事多磨。

 

5. 尝试4--成功?

        从以上链接可以看到这个事情的讨论(原文参见以上链接)经过如下:

        首先,solegalli报告了这个错误

        然后,orestislampridis附和了这个问题

        第三,solegalli声称找到了一个solution

        第四,simplyoptimisticonly 说他按照solegalli的方法做依然不行

        第五,作为Collaborator的PMeira站出来说不建议solegalli所提出的“歪门邪道”,并且声称已经更新了版本到0.4.1(然而,如前所述,how can get version 0.4.1和0.4.2?),并且给出了另外的建议。

        第六,simplyoptimisticonly声称找到了正确的解决方案,并贴出了成功转换REDD数据的运行结果

        经过尝试后,我发现首先PMeira(按道理应该是代表“官方”)建议不成立,其一是找不到ver0.4.1和ver0.4.2,其二是我的Anaconda中的pandas当前版本就是0.25.3,可是就是不行。

        其次,simplyoptimisticonly的解决方案我没有看懂(也许这个才是正解?),对我没有意义。没有心情再去摸索什么yml啊什么的—也许等我歇歇后缓过劲来了会再试一试。

 

        抱着死马当做活马医的态度,我决定试一试solegalli的方案。在conda base environment下:

        Step1 进到nilmtk目录,执行(这条具体什么含义后面再回头学习)“pip install -e .”

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56yo54mb5oWi6ICV,size_20,color_FFFFFF,t_70,g_se,x_16

……

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56yo54mb5oWi6ICV,size_20,color_FFFFFF,t_70,g_se,x_16

        Step2 执行“pip install 'git+https://github.com/nilmtk/nilm_metadata.git#egg=nilm_metadata'”

        然而,执行step2报告错误如下:

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56yo54mb5oWi6ICV,size_20,color_FFFFFF,t_70,g_se,x_16

        这意味着solegalli建议的原始方案也行不通(?2021-08-29 参见下面6.1)。算了算了,到nilm_metadata目录下也执行“pip install -e .”一下如何(解决实际的问题往往就是这样的,有时候需要适当的random exploration)?

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56yo54mb5oWi6ICV,size_20,color_FFFFFF,t_70,g_se,x_16

        这次安装成功了,当然只是没报错而已,是否正确还要看后面的测试运行情况。

        执行nosetests依然不对,已经麻木了,爱咋咋地吧。。。

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56yo54mb5oWi6ICV,size_20,color_FFFFFF,t_70,g_se,x_16

        最后尝试一次执行REDD数据转换。。。哇奥,成了!不枉这大半天的折腾,热泪盈眶啊。。。看到了simplyoptimisticonly所贴出的标志转换成功的输出结果。 

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56yo54mb5oWi6ICV,size_20,color_FFFFFF,t_70,g_se,x_16

 

6.总结

        虚脱,暂时无力吐槽。。。

        文中用到的一些conda命令的简要使用说明参见:conda常用命令的使用说明

 

6.1 补充【2021-08-29】

        今天查了查pip的使用方法(https://pip.pypa.io/en/stable/getting-started/),看到以下例子:

                   py -m pip install git+https://github.com/pypa/sampleproject.git@main

        对比上面尝试solegalli的方案的step2的执行命令,发现最后一串东西并没有用单引号‘’圈住,难道是因为这个导致命令执行失败?--没文化真的太可怕了,深刻反省ing。。。

       另外,“pip install -e .”中的选项“-e”似乎是指editable,即意味着这个package被安装以后还可以被修改(修改部分不用重新安装?),最后的选项应该是指定待安装包的存放目录,因此‘.’就表示当前目录啰(?)

7. 2021-11-04追加

        今天(主要看到关于environment.yml的使用)尝试了另外一种安装方式,很意外地非常顺利。

        从github上下载nilmtk-master.zip和nilm_metadata-master.zip并展开。将nilmtk-master更名为nilmtk(非必须,个人喜好)。以下"$..."表示在Anaconda Prompt运行命令(一路运行过去似乎并没有爆出什么幺蛾子):

        $ cd nilmtk

        $ conda env create -f environment.yml

        $ conda activate nilmtk-env

        $ python setup.py develop

        $ conda list

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56yo54mb5oWi6ICV,size_20,color_FFFFFF,t_70,g_se,x_16

        。。。。。。 

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56yo54mb5oWi6ICV,size_20,color_FFFFFF,t_70,g_se,x_16

        可以看到在nilm-tk环境下安装了所有必须的东西。

       但是执行nosetests,依然是NG:

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56yo54mb5oWi6ICV,size_20,color_FFFFFF,t_70,g_se,x_16

         执行REDD低频数据转换(前提当然是已经下载了REDD数据并将low_freq数据展开了)。以下运行的REDDToH5.py内容如下:

from nilmtk.dataset_converters import convert_redd

convert_redd(r'D:\NILMD\REDD\low_freq',r'D:\NILMD\REDD\low_freq\redd_low.h5')

 

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56yo54mb5oWi6ICV,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56yo54mb5oWi6ICV,size_20,color_FFFFFF,t_70,g_se,x_16

 

[2021-11-22]评论区有人说11-04的方法实测可行,有人说好像不行。。。我也有点慌^-^. “王后驾到”发布了一个执行“11-04的方法”运行成功的博客,有较详细的贴图。碰到问题的小伙伴可以看一看:NILMTK安装https://blog.csdn.net/wangwy_hoveringeagle/article/details/121143285https://blog.csdn.net/wangwy_hoveringeagle/article/details/121143285

 

 

 

  • 12
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 18
    评论
在Win10下配置PyTorch环境可能会遇到一些困难,但只要按照正确步骤进行,就能成功安装。下面是一个简单的配置指南: 1. 首先,确保你已经在电脑上安装了Python解释器,建议使用Anaconda发行版,因为它已经包含了大部分常用的科学计算包。 2. 打开Anaconda Prompt,并创建一个新的虚拟环境,以便隔离PyTorch的安装。可以使用以下命令:```conda create -n myenv python=3.7```,其中"myenv"是你要创建的环境的名称,"python=3.7"表示使用Python 3.7。 3. 激活虚拟环境:```conda activate myenv``` 4. 安装PyTorch的基础包。可以在PyTorch官方网站中找到适合你系统和Python版本的安装命令。例如,如果你的系统是64位的,Python版本是3.7,你可以输入以下命令:```conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c conda-forge``` 5. 等待安装完成,这可能需要一些时间,因为PyTorch包的大小比较大。 6. 安装完成后,可以通过运行以下命令来验证PyTorch是否成功安装:```python -c "import torch; print(torch.__version__)"```。如果没有报任何错误,并且显示了安装的PyTorch版本号,则表示安装成功。 7. 如果你想使用GPU加速,还需要安装对应的NVIDIA显卡驱动和CUDA工具包。可以在NVIDIA官方网站上找到适合你显卡型号和系统的驱动和CUDA版本,并按照官方指南进行安装。 8. 最后,你可以尝试运行一些PyTorch的示例代码,以确保环境配置正确无误。PyTorch官方文档和教程提供了大量的示例代码,可以帮助你入门。 希望这些步骤能帮助你在Win10下成功配置PyTorch环境。如果还有其他问题,可以参考博客-csdn中的更详细教程,或者向PyTorch的社区寻求帮助。
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笨牛慢耕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值