|
import tensorflow.keras.backend as K |
|
from tensorflow.keras.layers import LSTM |
|
from pickle import load |
|
import numpy as np |
|
import tensorflow as tf |
|
import gradio as gr |
|
|
|
model_V2 = 'ByteLevelLM.h5' |
|
|
|
K.clear_session() |
|
tf.keras.backend.clear_session() |
|
np.random.seed(42) |
|
tf.random.set_seed(42) |
|
HeNormal = tf.keras.initializers.he_normal() |
|
daily_V2 = tf.keras.models.load_model(model_V2, |
|
custom_objects={'HeNormal': HeNormal},compile=False) |
|
|
|
def tokenize(): |
|
import json |
|
with open('Tokenizer.json', encoding='utf-8') as f: |
|
data = json.load(f) |
|
tokenizer = tf.keras.preprocessing.text.tokenizer_from_json(data) |
|
with open('index2char.json', encoding='utf-8') as f: |
|
index2char = json.load(f) |
|
char2index = dict((int(v),int(k)) for k,v in index2char.items()) |
|
tokenizer.word_index = char2index |
|
return tokenizer |
|
|
|
def model2_preds(news_headline_input): |
|
headline = news_headline_input |
|
headline = '<s>' + headline + '<\s' |
|
|
|
tokenizer = tokenize() |
|
|
|
sample_2 = headline.encode('utf-8') |
|
sample_2 = tokenizer.texts_to_sequences([sample_2]) |
|
|
|
predict_v2 = daily_V2.predict(sample_2, verbose = 0)[0,0] |
|
|
|
return "Probability of Buy Signal from News Headline/s: %f" % predict_v2 |
|
|
|
|
|
app = gr.Interface(fn=model2_preds, |
|
title="Event Driven Trading (Byte Level Language Modelling)", |
|
description='News headlines from OverNight concatenated for next day Buy/Sell Probability/Signal', |
|
inputs = gr.Textbox(label="News Headline/s", info='Separate several news headlines by a space'), |
|
outputs=gr.Textbox(show_label = True,label="Prediction", info='This is the probability to buy at market close today and sell market close tomorrow'), |
|
submit_btn = 'Predict') |
|
|
|
|
|
if __name__ == '__main__': |
|
app.launch(share=True) |
|
|
|
|