三维旋转、平移和镜像E(3)群的等变卷积神经网络。
e3nn的Python项目详细描述
e3nn公司
E(3)是维度3中的Euclidean group。这是一组旋转,平移和镜像。
e3nn
是一个pytorch库,旨在创建E(3)等变neural^{str1}$n网络。在
安装
安装pytorch_geometric后,运行命令:
pip install e3nn
要获取CUDA内核,请阅读INSTALL.md
中的说明。在
示例
fromfunctoolsimportpartialimporttorchfrome3nnimportKernel,rsfrome3nn.non_linearities.normimportNormfrome3nn.non_linearities.rescaled_actimportswishfrome3nn.point.operationsimportConvolutionfrome3nn.radialimportGaussianRadialModel# Define the input and output representationsRs_in=[(1,0),(2,1)]# Input = One scalar plus two vectorsRs_out=[(1,1)]# Output = One single vector# Radial model: R+ -> R^dRadialModel=partial(GaussianRadialModel,max_radius=3.0,number_of_basis=3,h=100,L=1,act=swish)# kernel: composed on a radial part that contains the learned parameters# and an angular part given by the spherical hamonics and the Clebsch-Gordan coefficientsK=partial(Kernel,RadialModel=RadialModel)# Create the convolution moduleconv=Convolution(K(Rs_in,Rs_out))# Module to compute the norm of each irreducible componentnorm=Norm(Rs_out)n=5# number of input pointsfeatures=rs.randn(1,n,Rs_in,requires_grad=True)in_geometry=torch.randn(1,n,3)out_geometry=torch.zeros(1,1,3)# One point at the originout=norm(conv(features,in_geometry,out_geometry))out.backward()print(out)print(features.grad)
等级制度
e3nn
包含库e3nn/o3.py
O(3)不可约表示e3nn/rsh.py
实球谐函数e3nn/rs.py
几何张量表示e3nn/image
包含体素的线性运算e3nn/point
包含点的线性运算e3nn/non_linearities
非线性操作
examples
简单的脚本和实验
引用
^{pr2}$版权
欧几里得神经网络(e3nn)版权所有(c)2020 加州大学,通过劳伦斯伯克利国家实验室 (以收到美国能源部要求的任何批准为准), 洛桑联邦理工学院(EPFL),柏林自由大学 还有克什蒂安·拉契夫斯基。版权所有。在
如果您对使用或分发本软件的权利有疑问, 请联系伯克利实验室的知识产权办公室 IPO@lbl.gov。在
注意。这个软件是在美国国务院的资助下开发的 因此,美国政府保留了某些权利。作为 这样,美国政府就被允许为自己和其他国家采取行动 其代表的是一份已付清的、非排他性的、不可撤销的全球许可证 复制软件,向公众分发副本,准备衍生产品 公开工作,公开表演,公开展示,并允许他人这样做。在
- 项目
标签: