from models import * from torch.autograd import Variable import torchvision import scores #Creating custom dataset train_set, test_set = data.generate_clean_data( data_dir="../data/REDD/", appliance='Refrigerator', window_size=params.REFRIGERATOR_WINDOW_SIZE, proportion=[0, 0], threshold=80, test=True, test_on='All') #stride=5 # initialization of custom pytorch datasets refrigerator_train_set = dataset.REDDDataset(data=train_set) refrigerator_test_set = dataset.REDDDataset(data=test_set) #Getting mean and standard deviation so Normalization can be performed mean, std = refrigerator_train_set.get_mean_and_std() refrigerator_train_set.init_transformation( torchvision.transforms.Compose([Normalize(mean=mean, sd=std)])) refrigerator_test_set.init_transformation( torchvision.transforms.Compose([Normalize(mean=mean, sd=std)])) print('Training set size: ', len(refrigerator_train_set)) print('Test set size: ', len(refrigerator_test_set)) #Splitting dataset into training and test set refrigerator_trainloader = torch.utils.data.DataLoader(refrigerator_train_set, batch_size=32, num_workers=2) refrigerator_testloader = torch.utils.data.DataLoader(refrigerator_test_set, batch_size=32,
# std = 450 #training_set.init_transformation(torchvision.transforms.Compose([Normalize(mean=mean, sd=std)])) #del training_set, test_set training_set, test_set = data.generate_clean_data( data_dir="../data/REDD/", appliance='Dishwasher', window_size=params.DISHWASHER_WINDOW_SIZE, proportion=[3, 0], threshold=10, test=True, test_on='h1', stride=100) #stride=1 mean = 395.890660893 std = 615.928606564 # test_set = data.read_from_home('../data/REDD/', 'h2', appliance='Dishwasher', window_size=params.DISHWASHER_WINDOW_SIZE) test_set = dataset.REDDDataset(data=test_set) test_set.init_transformation( torchvision.transforms.Compose([Normalize(mean=mean, sd=std)])) print('Size of test set: ', len(test_set)) # del training_set net = ConvDishNILM() try: net = torch.load('models/dishwasher_lucky_shot_house1.pt') except FileNotFoundError: print('There is no pretrained model') if torch.cuda.is_available(): net = net.cuda() print('Testing.') print("Trained network's results: ") net_scores = train.test_network(net, test_set, params.DISHWASHER_WINDOW_SIZE,
import torchvision import scores # dishwasher_train_set = dataset.REDDCleanDataset(data_dir="data/REDD/", appliance='Dishwasher', window_size=params.DISHWASHER_WINDOW_SIZE, proportion=[3, 900], threshold=10) # dishwasher_test_set = dataset.REDDCleanDataset(data_dir="data/REDD/", appliance='Dishwasher', window_size=params.DISHWASHER_WINDOW_SIZE, test=True) train_set, test_set = data.generate_clean_data( data_dir="../data/REDD/", appliance='Dishwasher', window_size=params.DISHWASHER_WINDOW_SIZE, proportion=[3, 0], threshold=10, test=True, test_on='All', stride=1) # initialization of custom pytorch datasets dishwasher_train_set = dataset.REDDDataset(data=train_set) dishwasher_test_set = dataset.REDDDataset(data=test_set) mean = 395.890660893 std = 615.928606564 dishwasher_train_set.init_transformation( torchvision.transforms.Compose([Normalize(mean=mean, sd=std)])) dishwasher_test_set.init_transformation( torchvision.transforms.Compose([Normalize(mean=mean, sd=std)])) print('Training set size: ', len(dishwasher_train_set)) print('Test set size:', len(dishwasher_test_set)) dishwasher_trainloader = torch.utils.data.DataLoader(dishwasher_train_set, batch_size=32, num_workers=8) dishwasher_testloader = torch.utils.data.DataLoader(dishwasher_test_set, batch_size=32,
from models import * from torch.autograd import Variable import torchvision import scores #Initialization of dataset train_set, test_set = data.generate_clean_data( data_dir="../data/REDD/", appliance='Microwave', window_size=params.MICROWAVE_WINDOW_SIZE, proportion=[15, 0], threshold=200, test=True, test_on='All') #stride=1 # initialization of custom pytorch datasets microwave_train_set = dataset.REDDDataset(data=train_set) microwave_test_set = dataset.REDDDataset(data=test_set) #Getting mean and standard deviation so Normalization can be performed #mean, std = microwave_train_set.get_mean_and_std() mean = 444.516250434 std = 828.08954202 microwave_train_set.init_transformation( torchvision.transforms.Compose([Normalize(mean=mean, sd=std)])) microwave_test_set.init_transformation( torchvision.transforms.Compose([Normalize(mean=mean, sd=std)])) print('Training set size: ', len(microwave_train_set)) print('Test set size:', len(microwave_test_set)) microwave_trainloader = torch.utils.data.DataLoader(microwave_train_set, batch_size=32, num_workers=2)
import scores import train # As test_on you for dishwasher you can put 'h1', 'h2', 'h3', 'h4', 'All', also best thing is that stride=1 (default), but careful with RAM # Code for generate_clean_data is way to messy for you to worry about it, just call it :) training_set, test_set = data.generate_clean_data( data_dir="../data/REDD/", appliance='Dishwasher', window_size=params.DISHWASHER_WINDOW_SIZE, proportion=[3, 0], threshold=10, test=True, test_on='h1', stride=2) training_set = dataset.REDDDataset(data=training_set) test_set = dataset.REDDDataset(data=test_set) # These are exctracted from aggregate data of all the houses so I use them as constants for every dataset's normalization for now. mean = 395.890660893 std = 615.928606564 # Dataset normalization [must do] training_set.init_transformation( torchvision.transforms.Compose([Normalize(mean=mean, sd=std)])) test_set.init_transformation( torchvision.transforms.Compose([Normalize(mean=mean, sd=std)])) # This in initialization of network from models.py file, put your network model over there and call it the same way like this net = ConvDishNILM() try: net = torch.load('models/dishwasher_model.pt')