pytorch感知机
时间: 2023-11-20 17:59:28 浏览: 95
pytorch实现的源代码项目.rar
以下是使用PyTorch实现感知机的示例代码:
```python
import torch
import torch.nn as nn
# 定义感知机模型
class Perceptron(nn.Module):
def __init__(self, input_dim):
super(Perceptron, self).__init__()
self.fc = nn.Linear(input_dim, 1)
def forward(self, x):
x = self.fc(x)
return torch.sigmoid(x)
# 定义训练数据
X = torch.tensor([[0, 0], [0, 1], [1, 0], [1, 1]], dtype=torch.float32)
y = torch.tensor([[0], [0], [0], [1]], dtype=torch.float32)
# 初始化模型和损失函数
model = Perceptron(input_dim=2)
criterion = nn.BCELoss()
optimizer = torch.optim.SGD(model.parameters(), lr=0.1)
# 训练模型
for epoch in range(1000):
optimizer.zero_grad()
y_pred = model(X)
loss = criterion(y_pred, y)
loss.backward()
optimizer.step()
# 测试模型
with torch.no_grad():
y_pred = model(X)
y_pred_cls = y_pred.round().long()
acc = (y_pred_cls == y.long()).sum().item() / len(y)
print('Accuracy:', acc)
```
在这个示例中,我们定义了一个名为`Perceptron`的类,它继承自`nn.Module`,并包含一个线性层和一个sigmoid激活函数。我们使用二元交叉熵损失函数和随机梯度下降优化器来训练模型。最后,我们使用测试数据评估模型的准确性。
阅读全文