diff --git a/pywatts/db.py b/pywatts/db.py index 234926c..88af8f7 100644 --- a/pywatts/db.py +++ b/pywatts/db.py @@ -7,7 +7,6 @@ import os.path BASE_DIR = os.path.dirname(os.path.abspath(__file__)) db_path = os.path.join(BASE_DIR, "pywatts.db") -print(db_path) db = SqliteExtDatabase(db_path) diff --git a/pywatts/kcross.py b/pywatts/kcross.py index 9c3151d..435390b 100644 --- a/pywatts/kcross.py +++ b/pywatts/kcross.py @@ -1,6 +1,4 @@ import random -import itertools -from pywatts import db def split(data, k): @@ -18,7 +16,7 @@ def split(data, k): data_list = data['dc'].tolist() # Each sample has 337 elements - samples = [data_list[i:i+337] for i in range(0, len(data_list) - 337, 337)] + samples = [data_list[i:i+337] for i in range(0, len(data_list) - 337)] # Randomly shuffle samples random.shuffle(samples) diff --git a/pywatts/neural.py b/pywatts/neural.py index 4180366..f675d17 100644 --- a/pywatts/neural.py +++ b/pywatts/neural.py @@ -1,5 +1,3 @@ -import pandas -import numpy as np import tensorflow as tf diff --git a/pywatts/predict_for_json.py b/pywatts/predict_for_json.py new file mode 100644 index 0000000..98f666f --- /dev/null +++ b/pywatts/predict_for_json.py @@ -0,0 +1,30 @@ +import os +import sys + +import tensorflow as tf + +import pywatts.db +from pywatts.routines import * + +# get rid of TF debug message +os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' + +if len(sys.argv) != 3: + print("Usage: python predict_for_json.py 24h|1h ") + exit(1) + +type = sys.argv[1] # '1h' or '24h' +json_file = sys.argv[2] # json file + +queries = input_queries(json_file) + +feature_col = [tf.feature_column.numeric_column(str(idx)) for idx in range(336)] +n = pywatts.neural.Net(feature_cols=feature_col) + +predictions = [] +for query in queries: + if type == '1h': + predictions.extend(predict(n, query).astype('Float64').tolist()) + else: + predictions.append(predict24h(n, query)) +print(predictions) diff --git a/pywatts/routines.py b/pywatts/routines.py index cf4d80e..e676ba0 100644 --- a/pywatts/routines.py +++ b/pywatts/routines.py @@ -36,6 +36,18 @@ def input_query(json_str, idx=0): 'wind': tmp_df['wind'][idx]} ) +def input_queries(json_str): + tmp_df = pandas.read_json(json_str) + + queries = [] + for i in range(len(tmp_df)): + queries.append(pandas.DataFrame.from_dict( + {'dc': tmp_df['dc'][i], + 'temp': tmp_df['temp'][i], + 'wind': tmp_df['wind'][i]} + )) + return queries + def input_result(json_str, idx=0): tmp_df = pandas.read_json(json_str) @@ -81,7 +93,7 @@ def predict24h(nn, X_pred): # Remove first value and append predicted value del input['dc'][0] input['dc'].append(predictions[-1]) - print("Prediction for hour %d/%d" % (i+1, 24)) + # print("Prediction for hour %d/%d" % (i+1, 24)) return predictions @@ -94,3 +106,9 @@ def eval_prediction(prediction, result): print("The Median Absolute Error: %.2f volt dc" % median_absolute_error( result, prediction)) +def jsonify(predictions): + json_out = "[" + for v in predictions: + json_out += "[" + str(v) + "]," + json_out = json_out[:-1] + "]" + return json_out diff --git a/pywatts/test_kcross_train.py b/pywatts/test_kcross_train.py index 4e29d0a..d88e070 100644 --- a/pywatts/test_kcross_train.py +++ b/pywatts/test_kcross_train.py @@ -1,5 +1,5 @@ -import peewee import tensorflow as tf + import pywatts.db from pywatts import kcross diff --git a/pywatts/test_train.py b/pywatts/test_train.py index 1aa52e3..09f814a 100644 --- a/pywatts/test_train.py +++ b/pywatts/test_train.py @@ -1,5 +1,5 @@ -import peewee import tensorflow as tf + import pywatts.db from pywatts.routines import *