TourchDrug笔记--逆合成所遇到的问题

文章记录了在使用TorchDrug时遇到的代码问题及解决方案,包括更新代码源、设置编译器路径、处理数据集加载错误以及解决分子kekulize化异常。通过修改数据集加载方式和捕获Kekulize异常,成功解决了训练过程中的错误。
摘要由CSDN通过智能技术生成

TourchDrug挺牛逼,但官网给的代码总会出现一些问题,在此做些记录以便自己回顾。

1.从哪儿复制代码

点主页最下方的图标可以进colab,那儿的代码要新一点

 2.Error checking compiler version for cl: [WinError 2] 系统找不到指定的文件

把cl.exe所在目录加入Path环境变量,如

D:\ProgramData\Microsoft\Visual Studio itself\VC\Tools\MSVC\14.28.29333\bin\Hostx64\x64

加完后记得重启!!! 

3.到synthon_solver.train(num_epoch=1)时报错

错误1:assert(reactant.num_nodes >= synthon.num_nodes).all()处报错

这处困扰了我很久,一直没找到解决办法,assert(reactant.num_nodes >= synthon.num_nodes).all()也不能注释,不然后面训练会报错。debug发现synthon.num_nodes比reactant.num_nodes多了1000多个。

最后跟其他地方的代码对比发现了问题。错误在最开始获取数据集的地方:

出错代码:

synthon_dataset = datasets.USPTO50k("./molecule-datasets/", node_feature="synthon_completion", kekulize=True)

修改为:

synthon_dataset = datasets.USPTO50k("./molecule-datasets/", as_synthon=True, node_feature="synthon_completion", kekulize=True)

 中间加了个as_synthon=True就解决了。

 错误2:Can't kekulize mol.  Unkekulized atoms: 11

有不能kekulize化的分子。

解决方法:

找到Chem.Kekulize(mol)函数位置,将其修改为:

  try:
                    Chem.Kekulize(mol)
                except Chem.rdchem.KekulizeException:
                    pass

这样运行时虽然会出现一大堆红色的Can't kekulize mol.  Unkekulized atoms: 但不影响运行。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值