python加载chgcar, aeccar压缩数据 数据来源:materials project网站下载的.json.gz压缩包。文件读出的结构数据和电荷密度数据。文件的数据结构大概如代码所示。包可以免解压直接读取。
Could not build wheels for XXX, which is required to install pyproject.toml-based projects 解决方法:直接pip install pymatgen就行了。一般是装某个需要pymatgen的包会碰到这个问题。不要装pymatgen的老版本,还会报这个错。
解决 RuntimeError: CUDA error: device-side assert triggered debug方法就是逐行插入print看在哪tensor的值输出不出来,问题就定位到了。如果是自定义的loss,可以换个loss之类的再试试。但这个报错烦人的点是它不告诉你哪有问题,而且报错的行往往不是真正有问题的行,很多时候是有问题行的下一行。如谷歌搜索结果所述,这种情况多半是loss计算出了点问题。
PyTorch训练网络参数不更新原因一例 起因是在训练一个多个模块构成的网络时发现loss不收敛,而且是所有的子loss都不收敛,显然这就不是因为个别loss写错导致的了。但模块A确实在前向传播中被调用了,那原因是什么呢?发现模块A的参数梯度值竟然都是None!其次,检查模块各个参数是否都设成。删除多余的嵌套后,问题解决!首先,有一个地方用了。
怎么用pymatgen将超胞复原成原胞 有时出于一些原因,需要将pymatgen超胞(super cell)复原为primitive cell。注意,如果改成用get_reduced_structure()是没有效果的,原因不明。
解决AttributeError: Can‘t pickle local object ‘ALIGNN.__init__.<locals>.<lambda>‘ 这是因为没有在pytorch中设置ddp (distributed data parallel) 就试图使用多块GPU。如果调试阶段不想用ddp,显式把使用的GPU数量设成1即可。
【别折腾显卡驱动了】ImportError: libcudart.so.10.2: cannot open shared object file: No such file or directory 笔者的DL项目,在本地 PC (cuda 11.2)上运行良好,在服务器 (cuda 11.8)上报上面的错。排查发现,如果把DL项目里的模块B换成原作者使用的模块A,则运行顺利。单独运行模块B发现,问题出在模块B使用了dgl上(划重点:这个具体的报错信息在运行完整项目的时候会被吞掉,系统只会告诉你libcudart.so.10.2,不会告诉你是在import dgl上出的问题)。卸载dgl,重新安装cuda 11.8版本的dgl后,问题解决!别再费时费力地往cuda目录里加文件了!
解决 ReduceLROnPlateau conditioned on metric val_loss which is not available 其实可能是模型在跑第一个验证样本时推理出了问题导致退出或者返回None之类的,所以val_loss不计算
深度学习配环境三板斧:升级、降级、备份 常常发生这样的情况:要安装包C,结果conda或pip自动把包A和包B需要的一些早期版本的依赖升级了,导致本来跑得好好的环境四处起火,修了这个问题又会出现下一个问题,程序完全跑不起来,让人非常头疼。那好,看起来是pymatgen引用了monty里一个不存在的东西,有可能是pymatgen太新monty太老,或者monty太新pymatgen太老。百度Google也找不到什么经验帖可以参考啊!也就是说,看到这种输出你要立刻明白一个非常简单的道理:可能是monty的问题或者是pymatgen的问题。
最新的不等于最好的--从segmentation fault说开去 这就造成了即使按照 environment.yml 来配置环境,如果作者没有细致地写清每一个包的版本,那么由于时间推移,就有可能导致一些包被自动安装了与其他包冲突的最新版,从而使得代码无法运行。这时,通过观察故障包的名称,安装相应的旧版可能会解决问题。一方面,负责开发 Linux 发行版的团队构成互不相同,而它本身也不是一个盈利的项目,这些年来围绕开发产生的各种狗血剧情也是数不胜数,这势必造成版本的质量控制无法同 Windows 相比,指望他们对用户负责只能呵呵呵。
解决Ubuntu改用户名后conda找不到路径 先说原因:~/anaconda3/bin/文件夹里面的conda, pip等文件头还是老用户名。把pip和conda文件头部蓝色字体部分(称作shebang line)里的老用户名换成新的。作死改了Ubuntu系统的用户名,结果输入conda找不到了。
RuntimeError: Found dtype Double but expected Float - PyTorch 在使用Pytorch Lightning训练时在backward阶段输出了“RuntimeError: Found dtype Double but expected Float”错误。最后查明,在使用mse时,必须将输入参数手动转为float,算完mse再用float()就会报上面的错——即使输出这个loss的dtype它依然显示是float32类型。一开始,尝试把所有loss在return之前都用.float()方式转为float32,但问题依然存在。
Outlook邮箱网页版无法记住登录状态 结果发现之后每次登录outlook邮箱网页版(实际是学校的邮箱,outlook.office.com或outlook.office365.com)都会要求重新发短信或使用Microsoft Authenticator验证。但如果关闭掉整个浏览器窗口(即把chrome.exe从RAM中清出去),则session立即失效,再次打开邮箱需要登录验证。反复确认过浏览器没有打开退出清cookie的选项。Chrome和Edge浏览器均有此问题,自己电脑其他账号也没这问题,所以不是客户端设置的原因。
有密码Win10创建新用户 3)开机狂按F2/F12/Del进入启动选项,U盘引导。PE系统启动后进入桌面,打开U盘里的Windows Login Unlocker,新建用户即可。1)先用老毛桃WinPE做一个USB启动盘(注意文件系统格式要跟U盘格式化的格式一致,比如都是ExtFAT)对此,显然最佳选择是在不破坏师兄密码的情况下新建一个Windows管理员账户。2)再把Windows Login Unlocker拷到U盘里。(其实微PE也可以,但微PE在英文系统下会乱码,遂弃之)但师兄电脑有密码,他自己也忘了。
解决explorer.exe开机占用CPU过高 Windows 10 explorer.exe每次开机都占用50%CPU左右,笔记本风扇狂转解决策略:使用procexp程序(微软自家出品的任务管理器升级版)看explorer.exe的哪个线程这么占发现是一个叫tpreleasecleanupgroupmembers的东西谷歌一下发现这玩意是Microsoft Store Installation (MSI),不知道为啥就开始呼呼往我机子上装在services.msc里停止掉就可以了,去它的吧参见:https://docs.microsoft.