tau-2020-pytorch-tutorial/pytorch7.py
2020-12-09 10:12:35 +01:00

42 lines
970 B
Python
Executable File

#!/usr/bin/python3
import torch
import pandas as pd
data = pd.read_csv('iris.data',sep = ',', header = None)
data[5] = data[4].apply(lambda x: 1 if x == 'Iris-versicolor' else 0)
x = torch.tensor(data[[0,1]].values, dtype=torch.float)
y = torch.tensor(data[5], dtype=torch.float)
y = y.reshape(100,1)
class Network(torch.nn.Module):
def __init__(self):
super(Network, self).__init__()
self.fc = torch.nn.Linear(2,1)
def forward(self,x):
x = self.fc(x)
x = torch.nn.functional.sigmoid(x)
return x
network = Network()
optimizer = torch.optim.SGD(network.parameters(), lr=0.002)
criterion = torch.nn.BCELoss()
for _ in range(3000):
optimizer.zero_grad()
ypredicted = network(x)
loss = criterion(ypredicted,y)
accuracy = 100 * sum((ypredicted > 0.5) == y).item() / len(ypredicted)
print('{:.3}'.format(loss.item()), "\t => ", accuracy, '% accuracy')
loss.backward()
optimizer.step()