init
This commit is contained in:
59
stock/util/StockPredictor.py
Normal file
59
stock/util/StockPredictor.py
Normal file
@@ -0,0 +1,59 @@
|
||||
import os
|
||||
import keras
|
||||
import numpy as np
|
||||
from keras.applications.imagenet_utils import decode_predictions
|
||||
from classification_models.keras import Classifiers
|
||||
|
||||
class StockPredictor:
|
||||
|
||||
RESOURCE_PATH = None
|
||||
stock2Vector = None
|
||||
|
||||
def __init__(self):
|
||||
return
|
||||
|
||||
def getDataset(self, df):
|
||||
VECTOR_SIZE = 299
|
||||
TOTAL_X, TOTAL_Y = [], []
|
||||
for key in df:
|
||||
if key == "date":
|
||||
continue
|
||||
elif key == "label":
|
||||
TOTAL_Y.append(df[key].tolist())
|
||||
else:
|
||||
TOTAL_X.append(df[key].tolist())
|
||||
|
||||
SIZE_WIDTH = len(TOTAL_X[0])
|
||||
SIZE_HEIGHT = len(TOTAL_X)
|
||||
X = []
|
||||
for i in range(VECTOR_SIZE, SIZE_WIDTH):
|
||||
temp_X, temp_Y = np.zeros((VECTOR_SIZE, VECTOR_SIZE)), np.zeros(0)
|
||||
for j in range(SIZE_HEIGHT):
|
||||
temp_X[j][0:VECTOR_SIZE] = TOTAL_X[j][i - VECTOR_SIZE:i]
|
||||
temp_X = np.stack([temp_X, temp_X, temp_X], axis=-1)
|
||||
X.append(temp_X)
|
||||
|
||||
X = np.asarray(X[len(X)-1])
|
||||
|
||||
return X
|
||||
|
||||
def predict(self, df, minmax_df, isRealTime=False):
|
||||
X = self.getDataset(df)
|
||||
|
||||
# build model
|
||||
n_classes = 3
|
||||
Inceptionresnetv2, preprocess_input = Classifiers.get('inceptionresnetv2')
|
||||
X = preprocess_input(X)
|
||||
base_model = Inceptionresnetv2(input_shape=(299, 299, 3), include_top=False)
|
||||
model = keras.models.Model(inputs=[base_model.input])
|
||||
|
||||
checkpoint_filename = os.path.join(self.RESOURCE_PATH, "model", "stock.ckpt")
|
||||
model.load_weights(checkpoint_filename)
|
||||
|
||||
y = model.predict(X)
|
||||
|
||||
# result
|
||||
print(decode_predictions(y))
|
||||
|
||||
|
||||
return
|
||||
Reference in New Issue
Block a user