SolveQ / src /train.py
ByteJoseph's picture
Upload folder using huggingface_hub
dbadc63 verified
Raw
History Blame Contribute Delete
956 Bytes
import torch
import torch.nn as nn
from dataset import get_data
from model import LinearModel
from matplotlib import pyplot as plt
def train():
x_train, y_train = get_data()
model = LinearModel()
loss_fn = nn.MSELoss()
optimizer = torch.optim.Adam(model.parameters(),lr=0.01)
epochs = 1000
y_axis = []
for epoch in range(epochs):
pred = model(x_train)
loss = loss_fn(pred,y_train)
optimizer.zero_grad()
loss.backward()
optimizer.step()
y_axis.append(loss.item())
if epoch % 100 == 0:
print(f'Epoch {epoch}, Loss: {loss.item()}')
x_axis = range(epochs)
plt.plot(x_axis, y_axis)
plt.xlabel('Epochs')
plt.ylabel('Loss')
plt.title('Training Loss over Epochs')
torch.save(model.state_dict(),'models/model.pt')
print('Model saved!')
plt.show()
if __name__ == '__main__':
train()