基于pytorch的函数神经网络结构代码
时间: 2023-12-14 09:03:27 浏览: 81
以下是一个使用PyTorch实现的简单函数神经网络结构示例:
```python
import torch
import torch.nn as nn
import torch.optim as optim
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.fc1 = nn.Linear(1, 10) # 输入层到隐藏层,1个输入,10个隐藏节点
self.fc2 = nn.Linear(10, 1) # 隐藏层到输出层,10个隐藏节点,1个输出
def forward(self, x):
x = torch.sigmoid(self.fc1(x)) # 使用sigmoid激活函数
x = self.fc2(x)
return x
net = Net() # 创建神经网络实例
criterion = nn.MSELoss() # 定义损失函数
optimizer = optim.SGD(net.parameters(), lr=0.01) # 定义优化器
# 训练模型
for epoch in range(1000):
optimizer.zero_grad() # 梯度清零
output = net(torch.randn(10, 1)) # 随机生成10个输入
target = torch.randn(10, 1) # 随机生成10个目标输出
loss = criterion(output, target) # 计算损失函数
loss.backward() # 反向传播
optimizer.step() # 更新参数
# 测试模型
test_input = torch.tensor([[1.0], [2.0], [3.0], [4.0]])
test_output = net(test_input)
print(test_output)
```
在这个示例中,我们创建了一个具有一个输入层、一个隐藏层和一个输出层的函数神经网络。隐藏层有10个节点,使用sigmoid激活函数,输出层有1个节点。我们使用平均方差损失函数和随机梯度下降优化器进行训练。在训练过程中,我们随机生成了一些输入和目标输出,并将它们传递给神经网络进行训练。最后,我们使用一个包含四个测试输入的张量来测试训练好的模型。
阅读全文