神经网络模型代码
时间: 2023-07-22 15:09:25 浏览: 69
这是一个简单的神经网络模型的代码示例(使用Python和PyTorch库):
```python
import torch
import torch.nn as nn
# 定义神经网络模型
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.fc1 = nn.Linear(784, 256) # 输入层到隐藏层
self.fc2 = nn.Linear(256, 128) # 隐藏层到隐藏层
self.fc3 = nn.Linear(128, 10) # 隐藏层到输出层
self.relu = nn.ReLU() # 激活函数
def forward(self, x):
x = self.relu(self.fc1(x)) # 输入层到隐藏层,使用ReLU激活函数
x = self.relu(self.fc2(x)) # 隐藏层到隐藏层,使用ReLU激活函数
x = self.fc3(x) # 隐藏层到输出层
return x
# 实例化模型
model = Net()
# 定义损失函数和优化器
criterion = nn.CrossEntropyLoss() # 交叉熵损失函数
optimizer = torch.optim.SGD(model.parameters(), lr=0.01) # 随机梯度下降优化器
# 训练模型
for epoch in range(10): # 迭代10个epoch
for i, (images, labels) in enumerate(train_loader): # 加载训练数据
# 前向传播
images = images.view(-1, 28*28)
outputs = model(images)
loss = criterion(outputs, labels)
# 反向传播和优化
optimizer.zero_grad()
loss.backward()
optimizer.step()
# 打印训练过程
if (i+1) % 100 == 0:
print ('Epoch [{}/{}], Step [{}/{}], Loss: {:.4f}'
.format(epoch+1, 10, i+1, len(train_loader), loss.item()))
```
这段代码实现了一个简单的全连接神经网络,用于手写数字识别。其中包括了神经网络模型的定义、损失函数和优化器的定义,以及训练过程的实现。
阅读全文