Esempio n. 1
0
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,
Esempio n. 2
0
# 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,
Esempio n. 3
0
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,
Esempio n. 4
0
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)
Esempio n. 5
0
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')