Comment cette couche de mise en commun fonctionne - t - elle?

Questions et réponses du rseoc 2021-12-30 11:12:00 阅读数:706

comment cette couche mise en

C'est le Code joint à la littérature,Le but de la littérature est d'explorer la relation entre les propriétés atomiques des matériaux et d'autres propriétés basées sur l'apprentissage profond.
J'ai intercepté cette partie pour établir un lien entre les caractéristiques atomiques et cristallines,Mais je ne comprends pas cette partie du Code,Merci à tous.

https://github.com/txie-93/cgcnn/blob/master/cgcnn/model.pyLe code complet est ici,Les objectifs sont énoncés dans la Section168Jusqu'à la fin

def pooling(self, atom_fea, crystal_atom_idx): """ Pooling the atom features to crystal features N: Total number of atoms in the batch N0: Total number of crystals in the batch Parameters ---------- atom_fea: Variable(torch.Tensor) shape (N, atom_fea_len) Atom feature vectors of the batch crystal_atom_idx: list of torch.LongTensor of length N0 Mapping from the crystal idx to atom idx """ assert sum([len(idx_map) for idx_map in crystal_atom_idx]) ==\ atom_fea.data.shape[0] summed_fea = [torch.mean(atom_fea[idx_map], dim=0, keepdim=True) for idx_map in crystal_atom_idx] return torch.cat(summed_fea, dim=0)



Adopter les réponses:

assert C'est une affirmation. , Le Code principal est variable summed_fea , C'est l'équivalent du code suivant

summed_fea=[]for idx_map in crystal_atom_idx: r = torch.mean(atom_fea[idx_map], dim=0, keepdim=True) summed_fea.append(r)

Ce code doit être clairement divisé torch.mean、torch.cat Et ce que chaque paramètre est
Si ça t'aide,Vous pouvez cliquer sur moi en haut à droite pour répondre【Adoption】Boutons,Tu m'en donnes une?,Merci beaucoup.


版权声明:本文为[Questions et réponses du rseoc]所创,转载请带上原文链接,感谢。 https://primo.wiki/2021/12/202112300958549089.html