当前位置: 首页> 房产> 政策 > 美工设计培训_永久虚拟主机_一个自己的网站_网站搭建教程

美工设计培训_永久虚拟主机_一个自己的网站_网站搭建教程

时间:2025/7/16 8:05:54来源:https://blog.csdn.net/serpenttom/article/details/144893088 浏览次数:0次
美工设计培训_永久虚拟主机_一个自己的网站_网站搭建教程

利用paddlepaddle建立神经网络,模拟有限个数据的非线性拟合

本文仍然考虑 f ( x ) = sin ⁡ ( x ) x f(x)=\frac{\sin(x)}{x} f(x)=xsin(x) 函数在区间 [-10,10] 上固定数据的拟合。

import paddle
import paddle.nn as nn
import numpy as np
import matplotlib.pyplot as plt# 设置随机种子以确保结果的可重复性
paddle.seed(1)# 生成数据集
x_data = (np.random.rand(500) * 20 - 10).astype('float32')  # 生成500个随机x值,范围在-10到10之间
y_data = np.sin(x_data) / x_data  # 生成y值
y_data = y_data.reshape(-1, 1)  # 将y_data转换为二维数组# 定义模型,一个具有2个隐藏层的多层感知器
class MyModel(nn.Layer):def __init__(self):super(MyModel, self).__init__()self.hidden1 = nn.Linear(in_features=1, out_features=50)self.bn = nn.BatchNorm1D(num_features=50)self.hidden2 = nn.Linear(in_features=50, out_features=1)def forward(self, x):x = paddle.tanh(self.hidden1(x))x = self.bn(x)x = self.hidden2(x)return xmodel = MyModel()# 定义损失函数
loss_fn = nn.MSELoss()# 设置优化器
optimizer = paddle.optimizer.Adam(learning_rate=0.01, parameters=model.parameters())# 训练数据
train_data = paddle.to_tensor(x_data).unsqueeze(-1), paddle.to_tensor(y_data)# 训练模型
epochs = 1000
for epoch in range(1, epochs + 1):loss = loss_fn(model(train_data[0]), train_data[1])loss.backward()optimizer.step()optimizer.clear_grad()if epoch % 100 == 0:print(f'Epoch {epoch}: Loss = {loss.numpy()}')# 使用训练好的模型进行预测
y_pred = model(train_data[0]).numpy()# 可视化结果
plt.scatter(x_data, y_data, label='True')
plt.scatter(x_data, y_pred, label='Predicted')
plt.legend()
plt.show()

在这里插入图片描述

关键字:美工设计培训_永久虚拟主机_一个自己的网站_网站搭建教程

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: