分类神经网络python代码
时间: 2023-10-12 16:55:59 浏览: 80
神经网络分类模型Python代码.zip
下面是一个简单的用于分类任务的神经网络的 Python 代码示例:
```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(10, 64) # 输入层到隐藏层
self.fc2 = nn.Linear(64, 64) # 隐藏层到隐藏层
self.fc3 = nn.Linear(64, 2) # 隐藏层到输出层
def forward(self, x):
x = torch.relu(self.fc1(x))
x = torch.relu(self.fc2(x))
x = self.fc3(x)
return x
# 创建神经网络实例和损失函数
net = Net()
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(net.parameters(), lr=0.1)
# 定义训练数据和标签
inputs = torch.randn(100, 10) # 100个样本,每个样本10个特征
labels = torch.randint(0, 2, (100,)) # 100个样本的标签,0或1
# 训练神经网络
for epoch in range(10):
optimizer.zero_grad() # 梯度清零
outputs = net(inputs) # 前向传播
loss = criterion(outputs, labels) # 计算损失
loss.backward() # 反向传播
optimizer.step() # 更新参数
# 使用训练好的模型进行预测
test_inputs = torch.randn(10, 10) # 10个测试样本
predictions = net(test_inputs) # 进行预测
predicted_labels = torch.argmax(predictions, dim=1) # 获取预测结果
print(predicted_labels)
```
这个代码示例定义了一个简单的三层神经网络模型,包括一个输入层、两个隐藏层和一个输出层。使用交叉熵损失函数和随机梯度下降优化器进行训练,然后使用训练好的模型进行预测。注意,这只是一个简单的示例,实际应用中可能需要更复杂的网络结构和数据处理方式。
阅读全文