全解析:从科学可微分层到实战选型指南)
DeepChem 层速查表Layers Cheatsheet全解析从科学可微分层到实战选型指南【免费下载链接】deepchemDemocratizing Deep-Learning for Drug Discovery, Quantum Chemistry, Materials Science and Biology项目地址: https://gitcode.com/GitHub_Trending/de/deepchemLayers Cheatsheet 是 DeepChem 官方 API 参考中的一张层地图集中列出了 DeepChem 实现的各种具备科学意义scientifically relevant的可微分层differentiable layers覆盖图卷积、分子指纹、注意力、生成模型、密度泛函等多个方向。本文以 docs/source/api_reference/layers_cheatsheet.rst 为骨架结合 keras_layers.csv、torch_layers.csv 两张官方清单及 deepchem/models/layers.py、deepchem/models/torch_models/layers.py 源码实现帮助你快速定位每一层所属的后端、对应的模型架构、底层原理与使用前提从而在搭建分子、材料、生物相关深度学习模型时做出正确的层选型。一、什么是 Layers Cheatsheet一张表读懂 DeepChem 的层体系在 DeepChem 中层layer本质上是把一个张量变换为另一个张量的函数。围绕药物发现、量子化学、材料科学和生物学的建模需求DeepChem 维护了大量执行特定科学变换的层例如处理分子图拓扑的图卷积层GraphConv、GraphPool、GraphGather编码原子间距离、邻域与配体-受体相互作用的层InteratomicL2Distances、NeighborList、VinaFreeEnergy、AtomicConvolution面向生成模型的层MolGAN 系列、SeqToSeq 系列面向Transformer / 预训练分子模型的层MAT 系列、Grover 系列面向物理建模的层DFT 系列、Normalizing Flow 系列。Layers Cheatsheet 的作用正是把分散在各模型模块中的这些层汇总成一张速查表按KerasTensorFlow与PyTorch两个后端分列并通过Model列标注该层是为哪个具体模型架构实现的。原文档的完整说明如下layers_cheatsheet.rst速查表列出了 DeepChem 实现的各种科学可微分层部分层是为特定模型架构如GROVER、Attention实现的表中Model列会予以标注使用这些层之前必须先安装对应的后端Keras TensorFlow、PyTorch 或 JAXTensorFlow Keras 层均为tensorflow.keras.layers.Layer的子类PyTorch 层均为torch.nn.Module的子类。二、TensorFlow / Keras 层速查表以下 Keras 层完整继承自官方清单 keras_layers.csv均为tensorflow.keras.layers.Layer的子类。Model列为空表示该层是通用组件可自由组合进你自己的网络非空则表示该层服务于特定模型架构如 MolGan、Sluice Network、MessagePassing。层名出处论文速查表标注ModelInteratomicL2Distances——GraphConvDuvenaud et al., Convolutional networks on graphs for learning molecular fingerprints (2015)—GraphPool同上—GraphGather同上—MolGANConvolutionLayerMolGAN 论文 (2018)MolGanMolGANAggregationLayerMolGAN 论文 (2018)MolGanMolGANMultiConvolutionLayerMolGAN 论文 (2018)MolGanMolGANEncoderLayerMolGAN 论文 (2018)MolGanLSTMStep——AttnLSTMEmbedding注意力 LSTM 相关文献 (2016)—IterRefLSTMEmbedding——SwitchedDropout——WeightedLinearCombo——CombineMeanSt——Stack——VinaFreeEnergyAutoDock Vina 打分函数—NeighborList——AtomicConvolutionAtomic Convolutional Networks (2017)—AlphaShareLayerSluice 网络Sluice NetworkSluiceLossSluice 网络Sluice NetworkBetaShareSluice 网络Sluice NetworkANIFeat——GraphEmbedPoolLayer图池化相关文献 (2017)—HighwayHighway Networks (2015)—WeaveLayerMolecular graph convolutions (2016)—WeaveGather同上—DTNNEmbedding——DTNNStep——DTNNGather——DAGLayerDAG 递归神经网络 (2013)—DAGGather——MessagePassingNeural Message Passing (2015)—EdgeNetwork同上MessagePassingGatedRecurrentUnit同上MessagePassingSetGather——从源码看deepchem/models/layers.py这些层全部继承tf.keras.layers.Layer例如GraphConv位于该文件第 81 行起构造参数包含out_channel、min_deg默认 0、max_deg默认 10、activation_fn其call()方法接收「原子特征 图拓扑degree slice 与 degree adjacency lists」按节点度分别做邻居特征求和sum_neigh与仿射变换再合并回完整特征。max_deg默认 10 是考虑到部分有机金属配合物存在特殊结构若用于非分子场景可能需要显著调大该值。三、PyTorch 层速查表以下 PyTorch 层完整继承自官方清单 torch_layers.csv均为torch.nn.Module的子类在deepchem.models.torch_models.layers中实现对应源码 deepchem/models/torch_models/layers.py。注意其中DMPNNEncoderLayer的速查表标注论文为 Normalizing Flow 相关文献但从实现与命名看它实际服务于 DMPNNDirected Message Passing Neural Network编码选型时请以具体模型需求为准。层名出处论文速查表标注ModelMultilayerPerceptron——ScaleNorm分子注意力 Transformer (2020)Molecular Attention TransformerMATEncoderLayer分子注意力 Transformer (2020)Molecular Attention TransformerMultiHeadedMATAttention分子注意力 Transformer (2020)Molecular Attention TransformerSublayerConnectionAttention Is All You Need (2017)TransformerMATEmbedding分子注意力 Transformer (2020)Molecular Attention TransformerMATGenerator分子注意力 Transformer (2020)Molecular Attention TransformerAffineNormalizing Flow 相关文献 (2021)Normalizing FlowRealNVPLayer同上Normalizing FlowDMPNNEncoderLayerDMPNN 相关文献Normalizing FlowPositionwiseFeedForward分子注意力 Transformer (2020)Molecular Attention TransformerGraphPool图卷积网络 (2015)—GroverMPNEncoderGROVER 论文GroverGroverAttentionHeadGROVER 论文GroverGroverMTBlockGROVER 论文GroverGroverTransEncoderGROVER 论文GroverGroverEmbeddingGROVER 论文GroverGroverAtomVocabPredictorGROVER 论文GroverGroverBondVocabPredictorGROVER 论文GroverGroverFunctionalGroupPredictorGROVER 论文GroverScaledDotProductAttentionAttention Is All You Need (2017)TransformerSelfAttentionAttention Is All You Need (2017)TransformerGroverReadoutGROVER 论文GroverDFTXC深度 DFT 相关文献 (2021)XCModel-DFTNNLDA同上XCModel-DFTHybridXC同上XCModel-DFTXCNNSCF同上XCModel-DFTAtomEncoder3D InfoMax 相关文献 (2021)3D InfoMaxBondEncoder同上3D InfoMaxNet3DLayer同上3D InfoMaxNet3D同上3D InfoMaxPNALayerPrincipal Neighbourhood Aggregation (2020)PNAPNAGNN同上PNAEdgeNetworkMessage Passing 相关文献 (2017)Message Passing Neural NetworkWeaveLayerMolecular graph convolutions (2016)WeaveModelWeaveGather同上WeaveModelGradientPenaltyWGAN 相关文献 (2017)WGANModelMolGANConvolutionLayerMolGAN 论文 (2018)MolGanMolGANAggregationLayerMolGAN 论文 (2018)MolGanMolGANMultiConvolutionLayerMolGAN 论文 (2018)MolGanMolGANEncoderLayerMolGAN 论文 (2018)MolGanDTNNEmbeddingDTNN 相关文献 (2016)DTNNModelDTNNStep同上DTNNModelDTNNGather同上DTNNModelMXMNetGlobalMessagePassingMXMNet 论文 (2020)MXMNetModelMXMNetBesselBasisLayer同上MXMNetModelVariationalRandomizerSeqToSeq 相关文献 (2015)SeqToSeqModelEncoderRNNSeqToSeq 相关文献 (2014)SeqToSeqModelDecoderRNN同上SeqToSeqModelFerminetElectronFeatureFermiNet 论文 (2019)FerminetModelFerminetEnvelope同上FerminetModelMXMNetLocalMessagePassingMXMNet 论文 (2020)MXMNetModelMXMNetModelMXMNetSphericalBasisLayerMXMNet 论文 (2020)MXMNetModelHighwayLayerHighway Networks (2015)—GraphConv图卷积网络 (2015)—GraphPool图卷积网络 (2015)—GraphGather图卷积网络 (2015)—IRVLayer分子指纹 IRV 相关文献—DAGLayerDAG 递归神经网络—DAGGatherDAG 递归神经网络—四、源码级解读同一科学层如何跨后端实现速查表中不少层名同时出现在 Keras 与 PyTorch 两列如GraphConv、GraphPool、GraphGather、WeaveLayer、WeaveGather、DTNNStep、DAGLayer、MolGAN系列、EdgeNetwork等这是 DeepChem「一套科学层、多后端实现」设计的具体体现Keras 版本位于 deepchem/models/layers.py如InteratomicL2Distances第 10 行起、GraphConv第 81 行起、GraphPool第 216 行起、GraphGather第 297 行起、VinaFreeEnergy第 1407 行起、AtomicConvolution第 1830 行起、WeaveLayer第 2635 行起、WeaveGather第 2940 行起、DTNNStep第 3193 行起、DAGLayer第 3373 行起、MessagePassing第 3648 行起PyTorch 版本位于 deepchem/models/torch_models/layers.py如MultilayerPerceptron第 31 行起、ScaleNorm第 392 行起、MultiHeadedMATAttention第 435 行起、MATEncoderLayer第 621 行起、SublayerConnection第 749 行起、PositionwiseFeedForward第 796 行起、MATEmbedding第 912 行起、MATGenerator第 960 行起、DMPNNEncoderLayer第 1262 行起、RealNVPLayer第 1722 行起、EdgeNetwork第 4007 行起、HighwayLayer第 5991 行起、GraphConv第 6062 行起、GraphPool第 6250 行起、GraphGather第 6371 行起、DAGLayer第 6866 行起。以GraphConv为例对比两种实现可以直观看到同一算法在不同框架下的落地差异Keras 版deepchem/models/layers.py在build()中按num_deg 2 * max_deg (1 - min_deg)生成一组W_list/b_list权重call()中先用sum_neigh聚合邻居特征再按度切分tf.split(atom_features, deg_slice[:, 1])后逐度做仿射变换并合并。PyTorch 版deepchem/models/torch_models/layers.py构造参数为out_channel、number_input_features、min_deg0、max_deg10、activation_fnNone权重使用nn.ParameterList组织并采用 Xavier 初始化其 docstring 给出了一个完整可运行的示例用ConvMolFeaturizer对[CCC, C]做图特征化agglomerate_mols聚合后构造[atom_features, degree_slice, membership] deg_adjs输入GraphConv(out_channels, number_input_features)输出形状为[4, 2]4 个原子、2 个输出通道。这说明速查表不仅是「名单」更是一份跨框架实现对照表同一科学操作你可以根据项目技术栈自由选择 Keras 或 PyTorch 版本而无需重写算法逻辑。五、层与模型的对应关系Model 列的使用价值速查表的Model列解决了一个实际痛点某个层是为哪个架构写的例如Grover*系列层均标注Grover对应 deepchem/models/torch_models/grover_layers.py 中基于 Transformer Message Passing 的 GROVER 预训练/微调实现MAT*系列层标注Molecular Attention Transformer用于构建结合注意力与距离矩阵的分子 Transformer对应 deepchem/models/torch_models/layers.py 中的 MAT 模块DFTXC、NNLDA、HybridXC、XCNNSCF标注XCModel-DFT属于密度泛函理论DFT相关的交换关联能建模层FerminetElectronFeature、FerminetEnvelope标注FerminetModel用于量子化学波函数建模MolGAN*层标注MolGan是分子生成对抗网络的构件。当Model列为空时这些层如MultilayerPerceptron、GraphConv、WeaveLayer、DTNNStep、IRVLayer、HighwayLayer、SublayerConnection等属于通用积木可以直接嵌入自定义网络。六、使用前提与选型建议1. 后端安装前提原文档明确强调使用这些层之前必须确保对应后端Keras TensorFlow、PyTorch 或 JAX已安装。DeepChem 的 conda 环境文件给出了参考如 requirements/torch/env_torch.cpu.yml、requirements/tensorflow/env_tensorflow.cpu.yml。只有安装了对应后端才能import并使用对应层的类。2. 选型建议追求与旧版 DeepChem / TensorFlow 生态一致选用 Keras 层配合 deepchem/models/keras_model.py 中的KerasModel训练希望使用现代 PyTorch 生态DGL、PyG、HuggingFace 等选用 PyTorch 层配合 deepchem/models/torch_model.py 中的TorchModel训练Grover、MAT、PNA、MXMNet、FermiNet、SE(3) Transformer 等新架构的层目前主要面向 PyTorch 后端对层参数做精细控制参考对应类的__init__签名如GraphConv的min_deg/max_deg/activation_fn、AtomicConvolution的atom_types/radial等默认值已针对分子数据调优非分子场景需要自行调整。3. 从哪里继续深入层的完整 API 文档入口docs/source/api_reference/layers.rst其中同样内嵌了本速查表.. include:: layers_cheatsheet.rst并对每个层给出autoclass级成员说明Keras 层实现deepchem/models/layers.pyPyTorch 层实现deepchem/models/torch_models/layers.py层的测试用例如 MolGAN 层测试 deepchem/models/torch_models/tests/test_molgan_layers.py可以验证层的形状与数值行为是学习每个层输入输出约定的最佳范本。七、总结Layers Cheatsheet 是快速检索 DeepChem 科学可微分层的第一入口通过它你可以在一分钟内确认某个层是否存在、属于哪个后端、服务于哪个模型架构、对应的论文出处再顺着本文给出的源码路径查看具体实现与参数默认值。无论你要搭建图卷积分子性质预测模型、分子生成模型、Transformer 分子模型还是 DFT/量子化学网络这张速查表都能帮你高效完成层的定位与选型。【免费下载链接】deepchemDemocratizing Deep-Learning for Drug Discovery, Quantum Chemistry, Materials Science and Biology项目地址: https://gitcode.com/GitHub_Trending/de/deepchem创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考