Skip to content

[Example] Moflow代码paddlescience复现 #962

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 38 commits into from
Aug 20, 2024

Conversation

niushao12
Copy link
Contributor

PR types

PR changes

Describe

Copy link

paddle-bot bot commented Aug 7, 2024

Thanks for your contribution!

@CLAassistant
Copy link

CLAassistant commented Aug 7, 2024

CLA assistant check
All committers have signed the CLA.

Copy link
Collaborator

@HydrogenSulfate HydrogenSulfate left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

辛苦再修改一下

@HydrogenSulfate
Copy link
Collaborator

另外本PR的标题麻烦修改成合适的内容,
image

@niushao12 niushao12 changed the title Update mkdocs.yml Moflow代码paddlescience复现 Aug 8, 2024
@niushao12 niushao12 changed the title Moflow代码paddlescience复现 [Add]Moflow代码paddlescience复现 Aug 8, 2024
hidden: '16' -> 16
hidden: '16' ->16, 直接赋值
repair create_parameter
@lxw123123
Copy link

python -c "import ppsci; ppsci.utils.run_check()" 检查 会提示rdkit未安装 简易修改一下

@niushao12
Copy link
Contributor Author

python -c "import ppsci; ppsci.utils.run_check()" 检查 会提示rdkit未安装 简易修改一下

这个需要修改moflow_dataset的,得重新写一下这个文件了,里面有针对化学分子单独处理

@HydrogenSulfate
Copy link
Collaborator

HydrogenSulfate commented Aug 8, 2024

python -c "import ppsci; ppsci.utils.run_check()" 检查 会提示rdkit未安装 简易修改一下

这个需要修改moflow_dataset的,得重新写一下这个文件了,里面有针对化学分子单独处理

涉及到特殊依赖包的内容,请将导入语句放到try里面(参考airfoil_dataset.py处理),这样不影响其他代码运行,实际使用时如果缺少这个包,也能够正常报错,
image

特殊依赖包rdkit的处理,在try中导入
@lxw123123
Copy link

我这里使用paddle2.6.1版本测试,这里有语法报错
File "/workspaces/PaddleScience/ppsci/arch/moflow_basic.py", line 184, in init
self.w_l = paddle.create_parameter(
TypeError: create_parameter() missing 1 required positional argument: 'dtype'

@niushao12
Copy link
Contributor Author

create_parameter

我这里使用paddle2.6.1版本测试,这里有语法报错 File "/workspaces/PaddleScience/ppsci/arch/moflow_basic.py", line 184, in init self.w_l = paddle.create_parameter( TypeError: create_parameter() missing 1 required positional argument: 'dtype'

这个错误我刚修复了,用新的修改的moflow_basic.py文件

@lxw123123
Copy link

使用新的代码,train的时候有新的错误:
File "/workspaces/PaddleScience/ppsci/loss/func.py", line 79, in forward
assert isinstance(losses, dict), (
AssertionError: Loss computed by custom function should be type of 'dict', but got <class 'paddle.Tensor'>. Please check the return type of custom loss function.

@niushao12
Copy link
Contributor Author

niushao12 commented Aug 8, 2024

使用新的代码,train的时候有新的错误: File "/workspaces/PaddleScience/ppsci/loss/func.py", line 79, in forward assert isinstance(losses, dict), ( AssertionError: Loss computed by custom function should be type of 'dict', but got <class 'paddle.Tensor'>. Please check the return type of custom loss function.

我这边train的时候没有出现这种错误
Uploading image.png…

@niushao12
Copy link
Contributor Author

使用新的代码,train的时候有新的错误: File "/workspaces/PaddleScience/ppsci/loss/func.py", line 79, in forward assert isinstance(losses, dict), ( AssertionError: Loss computed by custom function should be type of 'dict', but got <class 'paddle.Tensor'>. Please check the return type of custom loss function.
loss 返回的是张量,这部分代码是PaddleScience中,之前我用字典返回total_loss时候报错,后来改成张量不报错了

@luotao1 luotao1 self-assigned this Aug 13, 2024
@leeleolay
Copy link
Contributor

image 这里缺失代码 image 这里乱码了 截屏2024-08-09 10 36 26 image 文档多个代码的部分,添加了额外的信息,麻烦再检查一下
另外还想问一下,之前基于预训练的模型,我记得是会生成分子结构的,包括会有输出的图片,我在运行test_generate.py的时候,并没有看到生成的分子结构的输出

image 这个公式乱码的我这边是正常的,是因为不支持这个字体么? image

我们的文档使用katex语法,可能跟markdown的里的渲染结果有一定的区别,我看应该是吧 $ P 中间的空格删掉就行了,可以按照教程:https://paddlescience-docs.readthedocs.io/zh-cn/latest/zh/development/#3,预览下文档页面是否正确,

修改后没有,我这边检查修改了所有文档问题,网页预览没有问题了,要是需要生成分子照片的话,EVAL_mode参数选择nter2point或者Intergrid可以可视化显示图片或者pdf

辛苦在文档里标注说明一下

@HydrogenSulfate
Copy link
Collaborator

CLA assistant check Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@niushao12 签署一下CLA协议

@leeleolay
Copy link
Contributor

leeleolay commented Aug 16, 2024

image 运行优化命令时会一直有警告,检查一下是否有字典关键词的遗漏或错误吧 image 运行这条命令会报错,辛苦再看一下吧python test_generate.py data_name=qm9 EVAL_mode=Inter2point EVAL.pretrained_model_path=https://paddle-org.bj.bcebos.com/paddlescience/models/MoFlow/qm9/qed_pretrained.pdparams

优化时的Reconstruct/Random/Inter2point/Intergrid 这四个选项辛苦在文档中标准一下,并且说明一下每个模式的功能吧

@niushao12
Copy link
Contributor Author

qed_pretrained
这个应该是预训练模型的问题,上传模型的时候一个qm9的数据集我上传了两个,我不知道qed_pretrained是使用qed_model修改的,还是latest修改的, 如果是后者是不会报错的,文档中的说明修改了。

@HydrogenSulfate
Copy link
Collaborator

HydrogenSulfate commented Aug 16, 2024

qed_pretrained
这个应该是预训练模型的问题,上传模型的时候一个qm9的数据集我上传了两个,我不知道qed_pretrained是使用qed_model修改的,还是latest修改的, 如果是后者是不会报错的,文档中的说明修改了。

qm9,zinc250k这两个数据集的区别是什么呢,zinc250k文件夹下是有两个模型参数文件,这两个都需要还是有一个是多余的?
image

@niushao12
Copy link
Contributor Author

niushao12 commented Aug 19, 2024

qed_pretrained
这个应该是预训练模型的问题,上传模型的时候一个qm9的数据集我上传了两个,我不知道qed_pretrained是使用qed_model修改的,还是latest修改的, 如果是后者是不会报错的,文档中的说明修改了。

qm9,zinc250k这两个数据集的区别是什么呢,zinc250k文件夹下是有两个模型参数文件,这两个都需要还是有一个是多余的? image

这两个数据集都是小分子数据集,是两个不同的化学结构数据集,用于药物设计和发现,QM9和Zinc250k都具有分子结结构信息,两个主要区别是分子特性参数不同,因此处理的时候也不相同。QM9数据集更加专注于药物设计和材料科学,而Zinc250k数据集更加专注于高通量化学合成和小分子结构优化。qed_model.pdparams是optimize_moflow.py中增加优化网络MLP重新训练了一个模型,是基于latest.pdparams增加了MLP网络参数,训练的速度很快。latest.pdparams才是预训练模型。

niushao12 and others added 2 commits August 19, 2024 10:58
Co-authored-by: HydrogenSulfate <490868991@qq.com>
Co-authored-by: HydrogenSulfate <490868991@qq.com>
@leeleolay
Copy link
Contributor

我这里使用原先的预训练模型进行评估是没有问题的。 建议在docs/zh/examples/moflow.md文件里,添加模型推理评估命令的四种模式的说明(Reconstruct/Random/Inter2point/Intergrid),以及在该文档里添加好两个数据集QM9和Zinc250k各自对应的预训练模型,以及优化后的模型。另外想问一下,优化后产生的qed模型,在推理阶段中的哪些模式是可以使用的?这部分的解释说明也可以添加在moflow.md里。@niushao12
以上问题修改完后建议可以合入repo。@HydrogenSulfate

添加模型推理评估命令的四种模式的说明,优化后产生的模型和使用说明
@niushao12
Copy link
Contributor Author

我这里使用原先的预训练模型进行评估是没有问题的。 建议在docs/zh/examples/moflow.md文件里,添加模型推理评估命令的四种模式的说明(Reconstruct/Random/Inter2point/Intergrid),以及在该文档里添加好两个数据集QM9和Zinc250k各自对应的预训练模型,以及优化后的模型。另外想问一下,优化后产生的qed模型,在推理阶段中的哪些模式是可以使用的?这部分的解释说明也可以添加在moflow.md里。@niushao12 以上问题修改完后建议可以合入repo。@HydrogenSulfate

说明已经在docs/zh/examples/moflow.md中添加,参数文件中也添加了,优化模型除了qed模型,还有plogp模型,也增加了相关说明,首次运行优化程序的产生qed模型或者plogp模型,在第二次运行的时候将对优化后的模型进行评估。即在优化模型训练完成之后再运行优化程序的时候使用。

@leeleolay
Copy link
Contributor

我这里使用原先的预训练模型进行评估是没有问题的。 建议在docs/zh/examples/moflow.md文件里,添加模型推理评估命令的四种模式的说明(Reconstruct/Random/Inter2point/Intergrid),以及在该文档里添加好两个数据集QM9和Zinc250k各自对应的预训练模型,以及优化后的模型。另外想问一下,优化后产生的qed模型,在推理阶段中的哪些模式是可以使用的?这部分的解释说明也可以添加在moflow.md里。@niushao12 以上问题修改完后建议可以合入repo。@HydrogenSulfate

说明已经在docs/zh/examples/moflow.md中添加,参数文件中也添加了,优化模型除了qed模型,还有plogp模型,也增加了相关说明,首次运行优化程序的产生qed模型或者plogp模型,在第二次运行的时候将对优化后的模型进行评估。即在优化模型训练完成之后再运行优化程序的时候使用。

image 运行test_generate.py时的warning麻烦再修改一下吧。另外优化后的plogp这个模型是否有上传?

@niushao12
Copy link
Contributor Author

我这里使用原先的预训练模型进行评估是没有问题的。 建议在docs/zh/examples/moflow.md文件里,添加模型推理评估命令的四种模式的说明(Reconstruct/Random/Inter2point/Intergrid),以及在该文档里添加好两个数据集QM9和Zinc250k各自对应的预训练模型,以及优化后的模型。另外想问一下,优化后产生的qed模型,在推理阶段中的哪些模式是可以使用的?这部分的解释说明也可以添加在moflow.md里。@niushao12 以上问题修改完后建议可以合入repo。@HydrogenSulfate

说明已经在docs/zh/examples/moflow.md中添加,参数文件中也添加了,优化模型除了qed模型,还有plogp模型,也增加了相关说明,首次运行优化程序的产生qed模型或者plogp模型,在第二次运行的时候将对优化后的模型进行评估。即在优化模型训练完成之后再运行优化程序的时候使用。

image 运行test_generate.py时的warning麻烦再修改一下吧。另外优化后的plogp这个模型是否有上传?

qed模型和plogp模型不是运行test_generate.py的时候用的,是在运行

我这里使用原先的预训练模型进行评估是没有问题的。 建议在docs/zh/examples/moflow.md文件里,添加模型推理评估命令的四种模式的说明(Reconstruct/Random/Inter2point/Intergrid),以及在该文档里添加好两个数据集QM9和Zinc250k各自对应的预训练模型,以及优化后的模型。另外想问一下,优化后产生的qed模型,在推理阶段中的哪些模式是可以使用的?这部分的解释说明也可以添加在moflow.md里。@niushao12 以上问题修改完后建议可以合入repo。@HydrogenSulfate

说明已经在docs/zh/examples/moflow.md中添加,参数文件中也添加了,优化模型除了qed模型,还有plogp模型,也增加了相关说明,首次运行优化程序的产生qed模型或者plogp模型,在第二次运行的时候将对优化后的模型进行评估。即在优化模型训练完成之后再运行优化程序的时候使用。

image 运行test_generate.py时的warning麻烦再修改一下吧。另外优化后的plogp这个模型是否有上传?

我这里使用原先的预训练模型进行评估是没有问题的。 建议在docs/zh/examples/moflow.md文件里,添加模型推理评估命令的四种模式的说明(Reconstruct/Random/Inter2point/Intergrid),以及在该文档里添加好两个数据集QM9和Zinc250k各自对应的预训练模型,以及优化后的模型。另外想问一下,优化后产生的qed模型,在推理阶段中的哪些模式是可以使用的?这部分的解释说明也可以添加在moflow.md里。@niushao12 以上问题修改完后建议可以合入repo。@HydrogenSulfate

说明已经在docs/zh/examples/moflow.md中添加,参数文件中也添加了,优化模型除了qed模型,还有plogp模型,也增加了相关说明,首次运行优化程序的产生qed模型或者plogp模型,在第二次运行的时候将对优化后的模型进行评估。即在优化模型训练完成之后再运行优化程序的时候使用。

image 运行test_generate.py时的warning麻烦再修改一下吧。另外优化后的plogp这个模型是否有上传?

optimize_moflow.pyoptimize_moflow.py

我这里使用原先的预训练模型进行评估是没有问题的。 建议在docs/zh/examples/moflow.md文件里,添加模型推理评估命令的四种模式的说明(Reconstruct/Random/Inter2point/Intergrid),以及在该文档里添加好两个数据集QM9和Zinc250k各自对应的预训练模型,以及优化后的模型。另外想问一下,优化后产生的qed模型,在推理阶段中的哪些模式是可以使用的?这部分的解释说明也可以添加在moflow.md里。@niushao12 以上问题修改完后建议可以合入repo。@HydrogenSulfate

说明已经在docs/zh/examples/moflow.md中添加,参数文件中也添加了,优化模型除了qed模型,还有plogp模型,也增加了相关说明,首次运行优化程序的产生qed模型或者plogp模型,在第二次运行的时候将对优化后的模型进行评估。即在优化模型训练完成之后再运行优化程序的时候使用。

image 运行test_generate.py时的warning麻烦再修改一下吧。另外优化后的plogp这个模型是否有上传?

这个还是模型报错的,预训练模型我这边修改不了,optimize_moflow.py运行的时候会对预训练模型进行优化,选择qed和plogp模式就行,第二次运行optimize_moflow.py就能加载优化后的模型,我这边不建议在上传优化模型了,优化模型不到五分钟就优化训练完成了,没有必要再上传吧,之前上传的我建议删除了,这样保证都是预训练模型不会出现模型混用的报错。

Copy link
Collaborator

@HydrogenSulfate HydrogenSulfate left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@HydrogenSulfate HydrogenSulfate merged commit 6854119 into PaddlePaddle:develop Aug 20, 2024
3 of 4 checks passed
@luotao1
Copy link
Collaborator

luotao1 commented Aug 21, 2024

hi, @niushao12

  • 非常感谢你对飞桨的贡献,我们正在运营一个PFCC组织,会通过定期分享技术知识与发布开发者主导任务的形式持续为飞桨做贡献,详情可见 https://github.com/luotao1 主页说明。
  • 如果你对PFCC有兴趣,请发送邮件至 ext_paddle_oss@baidu.com,我们会邀请你加入~

@HydrogenSulfate HydrogenSulfate changed the title [Add]Moflow代码paddlescience复现 [Excample] Moflow代码paddlescience复现 Aug 21, 2024
@HydrogenSulfate HydrogenSulfate changed the title [Excample] Moflow代码paddlescience复现 [Example] Moflow代码paddlescience复现 Aug 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants