当前位置: 首页 > news >正文

c 网站建设综合报告网页加速器安卓

c 网站建设综合报告,网页加速器安卓,做网站所需要的技术,宁波市建设局官网学过高斯软件的人都知道#xff0c;我们在撰写输入文件 gjf 时需要准备输入【泛函】和【基组】这两个关键词。 【泛函】敲定计算方法#xff0c;【基组】则类似格点积分中的密度#xff0c;与计算精度密切相关。 部分研究人员借用高斯中的一系列基组去包装输入几何信息我们在撰写输入文件 gjf 时需要准备输入【泛函】和【基组】这两个关键词。 【泛函】敲定计算方法【基组】则类似格点积分中的密度与计算精度密切相关。 部分研究人员借用高斯中的一系列基组去包装输入几何信息距离、角度和二面角这样做一方面提高了GNN的可解释性另一方面也实实在在的提高了模型精度。从 AI 角度看embedding则可以看作是几何信息的升维。 具体来说 如果模型输入仅有距离信息则采用径向基函数去embedding。常用的有 Gaussian 也有Bessel如果模型输入含有距离和角度信息。在直角坐标系下可以用 Gaussian 和 sin 函数组embedding。在球坐标系下可以考虑 spherical Bessel functions and spherical harmonics 组合。其中 spherical harmonics 采用m0的形式。如果模型输入含有距离角度和二面角信息一般采用 spherical Bessel functions and spherical harmonics 组合。可能有其他的但目前涉及二面角的模型较少据我了解Spherenet和ComENet均采用的是这种组合。 下面进行简要介绍 Gaussian 系列基组 SchNet网络架构中使用的基组是目前用途最广的基组之一。 我们借助 DIG 框架中 schnet 的实现对其进行可视化 from dig.threedgraph.method.schnet.schnet import *import numpy as np import math import matplotlib.pyplot as pltimport torchdist_test torch.arange(0.01, 5.01, 0.01) dist_emb emb(num_gaussians5) y dist_emb(dist_test) y y.Tfor idx, y_plot in enumerate(y):x [a_dist.detach().numpy() for a_dist in dist_test]y [an_emb.detach().numpy() for an_emb in y_plot]plt.plot(x, y, labelfGaussian embedding {idx})plt.xlabel(x) plt.ylabel(y) plt.legend() plt.show()结果如下图所示 所谓“对几何信息进行嵌入”指同一个距离信息对应x轴一个点。如果高斯基组有5则嵌入后该距离信息就映射到了5个口袋里获得一组长度为5的特征向量。 此处为了清晰的可视化仅设置 num_gaussians5 在实际应用中这一数值往往设的很高。例如原版的 schnet 将这一数值设为 300在 DIG 版本中这一数值是默认的 50而在最新的 schnetpack 中这一数值 降为了 20. Bessel 系列基组 与高斯基组类似Bessel 系列基组用于 embedding 距离信息文献里用 spherical Bessel functions 表示。 其源头可以追溯到微分方程的求解spherical Bessel functions 是作为一系列解中的径向部分存在也常被称为 radical Bessel functions。 最早使用 Bessel functions 的可能不严谨GNN大概是 DimeNet。据 DimeNet 原文报道使用 Bessel functions 会带来一定程度的精度提升。 我们借助 DIG 框架中 DimeNet 的实现对其进行可视化 from dig.threedgraph.method.spherenet.features import *import numpy as np import math import matplotlib.pyplot as pltimport torchdist_test torch.arange(0.01, 5.01, 0.01) dist_emb dist_emb(num_radial5) y dist_emb(dist_test) y y.Tfor idx, y_plot in enumerate(y):x [a_dist.detach().numpy() for a_dist in dist_test]y [an_emb.detach().numpy() for an_emb in y_plot]plt.plot(x, y, labelfradical_basis_{idx})plt.xlabel(x) plt.ylabel(y) plt.legend() plt.show()结果如下图所示 spherical harmonics 基组 spherical Bessel functions 和 spherical harmonics 不是一个基组。他俩分别对应方程特解中的径向和角度部分。 下图为 ComENet 中的概述 spherical harmonics 基组常常在球极坐标系下和 spherical Bessel functions 配套使用。 如果输入的几何信息仅有角度没有二面角我们将 spherical harmonics 中的 m 置零。 此时得到的是一系列二维的 embedding 矩阵。 我们借助 DIG 框架中 SphereNet 的实现对其进行可视化源码稍微改了改此处仅是一些思路 from dig.threedgraph.method.spherenet.features import *import numpy as np import math import matplotlib.pyplot as pltimport torchangle_emb angle_emb(num_spherical4, num_radial4, cutoff4) rlist np.arange(0, 4.01, 0.005) # Angstroms thetalist np.radians(np.arange(0, 361, 0.5)) # Radians rmesh, thetamesh np.meshgrid(rlist, thetalist) # Generate a meshn 1 l 1 fig plt.figure() info angle_emb(torch.tensor(rlist), torch.tensor(thetalist)) info_0 info[n, l] info_0 info_0.detach().numpy()info_0 info_0.reshape(len(rlist), len(thetalist)) info_0 info_0.T fig, ax plt.subplots(subplot_kwdict(projectionpolar)) ax.contourf(thetamesh, rmesh, info_0, 100, cmapRdBu) ax.set_rticks([]) ax.set_xticks([]) plt.savefig(f./basis/n_{n}_l_{l}.png, dpi400)结果如下图所示 我们可以得到一系列能够embedding角度和距离信息的函数。 下图是DimeNet原文中的图 需要注意的是DimeNet源码中对 l0 的径向函数进行了修改所以无法复现 Figure 2 第一行。 我们还可以借助 scipy 进行实现例如下面我们对角度部分 spherical harmonics 进行可视化不涉及径向部分径向部分在 scipy.special._spherical_bessel 里 借用plotly实现可交互的可视化 import plotly.graph_objects as go import numpy as np from mpl_toolkits.mplot3d import Axes3D from scipy.special import sph_harm# from scipy.special._spherical_bessel import# l, m 3, 0for l in range(0, 4):for m in range(-l, l1):theta np.linspace(0, np.pi, 100)phi np.linspace(0, 2 * np.pi, 100)theta, phi np.meshgrid(theta, phi)xyz np.array([np.sin(theta) * np.sin(phi),np.sin(theta) * np.cos(phi),np.cos(theta)])Y sph_harm(abs(m), l, phi, theta)if m 0:Y np.sqrt(2) * (-1) ** m * Y.imagelif m 0:Y np.sqrt(2) * (-1) ** m * Y.realYx, Yy, Yz np.abs(Y) * xyzfig go.Figure(data[go.Surface(xYx, yYy, zYz, surfacecolorY.real), ])fig.update_layout(titlefY_l_{l}_m_{m}, )fig.write_html(rf./pics_html/Y_l_{l}_m_{m}.html) 借用matplotlib实现静态的可视化 import numpy as np import matplotlib.pyplot as plt import matplotlib.gridspec as gridspec # The following import configures Matplotlib for 3D plotting. from mpl_toolkits.mplot3d import Axes3D from scipy.special import sph_harm# plt.rc(text, usetexTrue)# Grids of polar and azimuthal angles theta np.linspace(0, np.pi, 100) phi np.linspace(0, 2*np.pi, 100) # Create a 2-D meshgrid of (theta, phi) angles. theta, phi np.meshgrid(theta, phi) # Calculate the Cartesian coordinates of each point in the mesh. xyz np.array([np.sin(theta) * np.sin(phi),np.sin(theta) * np.cos(phi),np.cos(theta)])def plot_Y(ax, el, m):Plot the spherical harmonic of degree el and order m on Axes ax.# NB In SciPys sph_harm function the azimuthal coordinate, theta,# comes before the polar coordinate, phi.Y sph_harm(abs(m), el, phi, theta)# Linear combination of Y_l,m and Y_l,-m to create the real form.if m 0:Y np.sqrt(2) * (-1)**m * Y.imagelif m 0:Y np.sqrt(2) * (-1)**m * Y.realYx, Yy, Yz np.abs(Y) * xyz# Colour the plotted surface according to the sign of Y.cmap plt.cm.ScalarMappable(cmapRdBu)cmap.set_clim(-0.5, 0.5)ax.plot_surface(Yx, Yy, Yz,facecolorscmap.to_rgba(Y.real),rstride2, cstride2)# Draw a set of x, y, z axes for reference.ax_lim 0.5ax.plot([-ax_lim, ax_lim], [0,0], [0,0], c0.5, lw1, zorder10)ax.plot([0,0], [-ax_lim, ax_lim], [0,0], c0.5, lw1, zorder10)ax.plot([0,0], [0,0], [-ax_lim, ax_lim], c0.5, lw1, zorder10)# Set the Axes limits and title, turn off the Axes frame.# ax.set_title(r$Y_{{{},{}}}$.format(el, m))ax.set_title(Y_l_{}_m_{}.format(el, m))ax_lim 0.5ax.set_xlim(-ax_lim, ax_lim)ax.set_ylim(-ax_lim, ax_lim)ax.set_zlim(-ax_lim, ax_lim)ax.axis(off)# fig plt.figure(figsizeplt.figaspect(1.))for l in range(0, 4):for m in range(-l, l1):fig plt.figure()ax fig.add_subplot(projection3d)plot_Y(ax, l, m)plt.savefig(./pics_png/Y_l_{}_m_{}.png.format(l, m))静态效果如下 OK至此GNN中常用的基组至少我所了解到的介绍完了。 一般来说仅涉及距离信息的架构常常采用 gaussian 基组。 如果要用 spherical harmonics 这种涉及角度的基组一般需要将几何坐标转到球极坐标下而这将导致网络适应等变架构时遇到困难。 当然还有使用 tensor field 做基组的这块我还了解的少但看起来好像也是套的 spherical harmonics 。
http://www.dnsts.com.cn/news/104506.html

相关文章:

  • 一个空间可以做几个网站wordpress上传文件插件
  • 云vps怎么搭建网站wordpress博客论坛插件
  • 为什么建设网银网站打不开wordpress花园破解小彬子
  • 企业网站建设 百度文库东营建设信息网官网网址
  • 做网站设计用什么软件怎么用视频做网站背景
  • 虹口专业网站建设公司佛山网页设计培训中心
  • 网站模版制作wordpress侧边栏标题字数
  • 供热设施网站搭建教程计算机网站建设 是什么意思
  • 杭州网站排名提升免费素材图片库
  • 博物馆网站微信公众号建设方案贵阳房地产网站建设
  • 苏州信网网站建设技术有限公司怎么创建自己的购物平台
  • 做装修公司网站费用做网站用哪几个端口 比较好
  • 医疗网站模版广西网站建设建议
  • 重庆微网站开发公司网页版微信登录入口官网
  • 金融 网站 源码穿山甲广告联盟
  • 网站建设创业计划书模板范文郑州开发软件的公司
  • 社交网站开发难度北京电子商务网站制作
  • 义乌网站建设zisou8公司内部网站建设管理办法
  • 哪里网站建设便宜设计医院网站建设
  • 网站建设技术咨询协议购物网站怎么建立
  • 郑州企业网站建设公司东西湖建设局网站
  • 建网站多少钱 万户百度搜索数据
  • 网站不足之处正常成都建设网站
  • 网站标题分隔符网站备案核验单怎么填
  • 网站建设与管理pdf微信网站如何做
  • 网站建设公司专业开发北京网站家电企业展厅设计
  • 做学校网站的目的做网站需要哪些程序
  • app与手机网站的区别怎样弄一个自己的网站
  • 永川做网站做鞋子的招聘网站有哪些
  • 做网站代理工作安全吗苏州建设工程公司