3.9 KiB
3.9 KiB
import torch
import pandas
import numpy
from torch.autograd import Variable
class LinearRegressionModel(torch.nn.Module):
def __init__(self):
super(LinearRegressionModel, self).__init__()
self.linear = torch.nn.Linear(1, 1)
def forward(self, x):
y_pred = self.linear(x)
return y_pred
train_data=pandas.read_csv('C:/Users/eryk6/PycharmProjects/mieszkania5/train/train.tsv',sep='\t',header=None)
x=train_data[0].tolist()
x = [str(train_data).replace(' ', '') for train_data in x]
y=train_data[8].tolist()
y = [str(train_data).replace(' ', '') for train_data in y]
x=numpy.array(x, dtype=numpy.float32)
y=numpy.array(y, dtype=numpy.float32)
x = x.reshape(-1, 1)
y = y.reshape(-1, 1)
model = LinearRegressionModel()
criterion = torch.nn.MSELoss()
optimizer = torch.optim.SGD(our_model.parameters(), lr = 0.000000000001 )
for i in range(500):
input = Variable(torch.from_numpy(x))
pred_y = model(input)
optimizer.zero_grad()
loss = criterion(pred_y, Variable(torch.from_numpy(y)))
optimizer.zero_grad()
loss.backward()
optimizer.step()
test_A_in = pandas.read_csv('C:/Users/eryk6/PycharmProjects/mieszkania5/test-A/in.tsv',sep='\t',header=None)
x = test_A_in[7].tolist()
x = numpy.array(x, dtype=numpy.float32)
x = x.reshape(-1, 1)
y = model(Variable(torch.from_numpy(x))).data.numpy()
out = open('C:/Users/eryk6/PycharmProjects/mieszkania5/test-A/out.tsv', 'w')
for i in y:
out.write(str(i[0])+'\n')
out.close()
dv_in = pandas.read_csv('C:/Users/eryk6/PycharmProjects/mieszkania5/dev-0/in.tsv',sep='\t',header=None)
x = dv_in[7].tolist()
x = numpy.array(x, dtype=numpy.float32)
x = x.reshape(-1, 1)
y = model(Variable(torch.from_numpy(x))).data.numpy()
output = open('C:/Users/eryk6/PycharmProjects/mieszkania5/dev-0/out.tsv', 'w')
for i in y:
output.write(str(i[0])+'\n')
output.close()