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

网站建设服务好谷歌推广怎么样

网站建设服务好,谷歌推广怎么样,恩施seo搜索引擎优化,WordPress管理员密码多少位首先给出数学上的知识。 1. 2. 3. 其次给出PINN最基础的理解与应用说明。 1.PINN中的MLP多层感知机的作用? 答:目的是用来拟合出我们需要的那个 常微分方程,即函数逼近器。 2.PINN中物理信息的作用? 答:用于约束MLP反向…

首先给出数学上的知识。

1.\left ( \sin x \right ){}'=\cos x

2.\sin \left ( 0 \right )=\sin \left ( 3.14 \right )=\sin \left ( -3.14 \right )=0

3.\sin ^{^2}\left ( x \right )+\cos ^{^2}\left ( x \right )-1=0

其次给出PINN最基础的理解与应用说明。

1.PINN中的MLP多层感知机的作用?

答:目的是用来拟合出我们需要的那个 常微分方程,即函数逼近器。

2.PINN中物理信息的作用?

答:用于约束MLP反向传播梯度下降求解时的解空间。所以PINN只需要更少的数据就能完成任务。

拟合sin(x)时的边界条件。

1. \sin \left ( 0 \right )=0

2.参照上面的数学式子。

PINN最容易入手的就是根据各种边界条件设计出不同的损失函数(loss function),让MLP最小化这些损失函数的和或者加权和。

下面是代码部分:

import torch
import torch.nn as nn
import numpy as np
import matplotlib.pyplot as plt
from torch import autogradclass Net(nn.Module):def __init__(self, NN): # NN决定全连接层的神经元个数,对拟合快慢直接相关super(Net, self).__init__()self.input_layer = nn.Linear(1, NN)self.hidden_layer = nn.Linear(NN,int(NN/2)) self.output_layer = nn.Linear(int(NN/2), 1)def forward(self, x):out = torch.tanh(self.input_layer(x))out = torch.tanh(self.hidden_layer(out))out_final = self.output_layer(out)return out_finalnet=Net(6) # 6个
mse_cost_function = torch.nn.MSELoss(reduction='mean') # 最小化L2范数
optimizer = torch.optim.Adam(net.parameters(),lr=1e-4)  # 优化器def ode_01(x,net):# 使用神经网络net(x)作为偏微分方程的函数逼近器,每经过一次梯度更新就对对net(x)求一次导,代码中net(x)需要去逼近sin(x)y=net(x)# 求net(x)在0点的导数y_x = autograd.grad(y, x,grad_outputs=torch.ones_like(net(x)),create_graph=True)[0]# sin**2 + cos**2 - 1 = 0return torch.pow(y, 2)+torch.pow(y_x, 2)-1 # 动态图
plt.ion()  
# 总的迭代次数
iterations=20000
# 粒度N_,决定将区间分为多少个间隔
N_ = 200
for epoch in range(iterations):optimizer.zero_grad()  # 梯度归0# sin(0) - 0 = 0x_0 = torch.zeros(N_, 1)y_0 = net(x_0)mse_i = mse_cost_function(y_0, torch.zeros(N_, 1))  # sin(-3.14) - 0 = 0x_n314= torch.full((N_,1), -3.14)y_n = net(x_n314)mse_n = mse_cost_function(y_n, torch.zeros(N_, 1))# sin(3.14) - 0 = 0x_p314 = torch.full((N_,1), 3.14)y_p = net(x_p314)mse_p = mse_cost_function(y_p, torch.zeros(N_, 1)) # 输入数据,-pi到+pi之间x_in = np.random.uniform(low=-3.14, high=3.14, size=(N_, 1))# 将输入数据转为torch张量pt_x_in = autograd.Variable(torch.from_numpy(x_in).float(), requires_grad=True)# pt_y_colection 是 sin**2 + cos**2 - 1 = 0 的值pt_y_colection=ode_01(pt_x_in,net)# 全是0pt_all_zeros= autograd.Variable(torch.from_numpy(np.zeros((N_,1))).float(), requires_grad=False)# sin**2 + cos**2 - 1 与 0 之间的误差mse_f=mse_cost_function(pt_y_colection, pt_all_zeros)# 各种误差之和loss = mse_i + mse_f +mse_n + mse_p# 反向传播loss.backward()# 优化下一步optimizer.step()  if epoch%1000==0:y = torch.sin(pt_x_in)  # y 真实值y_train0 = net(pt_x_in) # y 预测值,只用于画图,不输入模型,注意区分本代码的PINN与使用MLP进行有监督回归的差别print(epoch, "Traning Loss:", loss.data)plt.cla()plt.scatter(pt_x_in.detach().numpy(), y.detach().numpy())plt.scatter(pt_x_in.detach().numpy(), y_train0.detach().numpy(),c='red')plt.pause(0.1)

结果展示部分: 

1000次迭代:

3000次迭代:

8000次迭代:

20000次迭代:

        可以看到,20000次迭代之后,MLP完美逼近了sin(x)。而且不是通过有监督回归得到的。参考博客如下:PINN学习与实验(一)__刘文凯_的博客-CSDN博客。

http://www.hkea.cn/news/163228/

相关文章:

  • 我有一个域名怎么做网站百度一下下载
  • 郑州网站建设品牌好安装百度到桌面
  • 株洲做网站定制百度灰色词优化排名
  • 上海网页设计公司兴田德润电话排名优化外包公司
  • 做360网站优化快推广普通话宣传语手抄报
  • 动态网站开发语言有哪些大学生创新创业大赛
  • 关键词推广公司网站网络排名优化方法
  • 福州移动网站建设网络营销推广工具有哪些
  • win2008sr怎么用iis做网站国外网站加速
  • 合肥++网站建设磐石网站seo
  • 万网主机怎么上传网站如何在百度上投放广告
  • 做网站时如何给文字做超链接全球疫情最新数据消息
  • 四川省住建厅官方网站3分钟搞定网站seo优化外链建设
  • 做网站阳泉巨量千川广告投放平台
  • 温岭哪里有做网站的如何自制网站
  • 知道创于 wordpress搜索引擎优化宝典
  • 乌兰县wap网站建设公司有效获客的六大渠道
  • 微信网站开发教程视频教程百度一下主页官网
  • 网站开发专业前景关键词挖掘排名
  • 网站开发属于什么职位类别seo查询站长工具
  • wordpress postmetaseoul national university
  • 商务网站的主要存在形式杭州百度快照优化公司
  • 个人备案网站做购物网站可以不班级优化大师免费下载电脑版
  • 贸易网站建设互联网广告代理加盟
  • 深圳网站建设网络公司河北关键词排名推广
  • 在工商网上怎么注册公司seo优化博客
  • 免费的小程序怎么赚钱历下区百度seo
  • 河北石家庄最新疫情最新消息优化防疫政策
  • 一站式做网站哪家强新闻小学生摘抄
  • 江西南昌网站建设公司哪家好谷歌google 官网下载