def predict(X): nn = NN([6, 8, 4, 1]) nn.load_state_dict(torch.load('model_state/state')) nn.eval() result = nn.forward(X).detach().numpy().reshape(-1, 1) result_transformed = scaler.inverse_transform(result) return result_transformed
best_accuracy = (0, 0) for epoch in tqdm(range(CHOSEN_EPOCH)): losses_training = [] for data, target in train_loader: data = Variable(data) target = Variable(target) loss = model.step(data, target) losses_training.append(loss) # Mean of the losses of training predictions training_loss_history.append(np.mean(losses_training)) ########## Test at this epoch ########## model.eval() accuracy = 0 losses_test = [] class_correct = list(0. for i in range(3)) class_total = list(0. for i in range(3)) for data, target in test_loader: data = Variable(data) target = Variable(target) y_pred_proba, loss = model.predict_proba_and_get_loss(data, target) losses_test.append(loss) accuracy += y_pred_proba.data[0][target.data[0]] loss_test = np.mean(losses_test)
import cv2 from model import NN import numpy as np import torch cap = cv2.VideoCapture(0) i = 0 classify = 1 labels =[] Model = NN(batch_size = 1) Model.load_state_dict(torch.load("1")) Model.eval() tardict = {1 : 'Face Detected' , 0 : 'Undetected' } while True: i += 1 ret , frame = cap.read() gray = cv2.cvtColor(frame , cv2.COLOR_RGB2GRAY) gray = cv2.GaussianBlur(gray, (15,15), 0) cv2.imshow('feed' , frame) gray = torch.from_numpy(gray).view(1 , 1, 480 , 640).float() output = torch.round(Model.forward(gray)) output = output.item() print (tardict[output]) if output != 0: input() if cv2.waitKey(1) & 0xFF == ord('q') : break