Files
CNN/Models/model_testrunner.py

141 lines
4.3 KiB
Python

# import sys
# import os
# import glob
# from keras.layers.pooling import MaxPool2D
# sys.path.append('c:/git/keras')
# sys.path.append('c:/git/absl')
# installed
# py -mpip install numpy
# py -mpip show numpy
# py -mpip install tensorflow
# py -mpip show tensorflow
# py -mpip install matplotlib
# c:\users\skess\appdata\local\programs\python\python39\lib\site-packages
# import keras
# from keras.preprocessing.image import ImageDataGenerator
# import numpy as np
# import tensorflow
#model_name='lenet5.h5'
import sys
import os
import glob
from keras.optimizers import SGD
from keras.optimizers import Adam
from tensorflow.keras.callbacks import TensorBoard
import keras
from keras.src.legacy.preprocessing.image import ImageDataGenerator
from keras.callbacks import ModelCheckpoint
from tensorflow.keras.callbacks import EarlyStopping
import numpy as np
import tensorflow
from resnet50 import *
import math
from time import time
print(os.getcwd())
path = os.getcwd()
model_name='Weights/resnet50_20241024_270.h5.keras'
# *************************************************** T E S T I N G ********************************************
# This gets a 0. This is a good result
#image_path='C:/boneyard/DeepLearning/IndividualValidationCases/BAND_0_Test_BollingerBand.jpg'
# This gets 6.3385902e-12 [0]. I kind of expect this.
#image_path='C:/boneyard/DeepLearning/IndividualValidationCases/NVCR_0_Test_BollingerBand.jpg'
# This gets a 0. This is a good result because ABX_3_Training_BollingerBand.jpg exhibits the pattern we are looking for and is in teh Training set
#image_path='C:/boneyard/DeepLearning/IndividualValidationCases/ABX_3_Training_BollingerBand.jpg'
# This gets 0.9911055 This is a good result because SIG_0_Test_BollingerBand contains a downturn
#image_path='C:/boneyard/DeepLearning/IndividualValidationCases/SIG_0_Test_BollingerBand.jpg'
# *****************************************************************************************************************
# test_image = tensorflow.keras.preprocessing.image.load_img(image_path,color_mode='grayscale')
# test_array = keras.preprocessing.image.img_to_array(test_image)
# print(test_array.shape)
# batch_test_array = np.array([test_array])
# print(batch_test_array.shape)
# Load the model
real_path = os.path.realpath(path + '/' + model_name)
print('Loading {model_name}'.format(model_name=real_path))
model = keras.models.load_model(real_path)
# image_path='C:/boneyard/DeepLearning/IndividualValidationCases/SIG_0_Test_BollingerBand.jpg'
# test_image = tensorflow.keras.preprocessing.image.load_img(image_path,color_mode='grayscale')
# test_array = keras.preprocessing.image.img_to_array(test_image)
# print(test_array.shape)
# batch_test_array = np.array([test_array])
# print(batch_test_array.shape)
# predictions=model.predict(batch_test_array)
# print('Actual Prediction(s):',predictions)
# threshold_output = np.where(predictions > 0.5, 1, 0)
# print('Threshold output:',threshold_output)
# All files ending with .txt
#files=glob.glob("C:/boneyard/DeepLearning/ModelInputData/*.jpg")
files=glob.glob("C:/boneyard/DeepLearning/IndividualValidationCases/*.jpg")
#files=glob.glob("C:/boneyard/DeepLearning/data/VolatilityPriceContraction/*.jpg")
for file in files:
test_image = tensorflow.keras.preprocessing.image.load_img(file,color_mode='grayscale')
test_array = keras.preprocessing.image.img_to_array(test_image)
# print(test_array.shape)
batch_test_array = np.array([test_array])
# print(batch_test_array.shape)
predictions=model.predict(batch_test_array)
# print('Actual Prediction(s):',predictions)
# threshold_output = np.where(predictions < 0.00000005, 1, 0)
if type(predictions) == list:
average_prediction = sum(predictions)/len(predictions)
threshold_output = np.where(average_prediction > 0.5, 1, 0)
else :
threshold_output = np.where(predictions > 0.5, 1, 0)
# threshold_output = np.where(predictions > 0.5, 1, 0)
sstart=file.rfind("\\")+1
send=file.find("_")
symbol=file[int(sstart):int(send)]
# print('%s,%s' % (symbol,threshold_output[0][0]))
print('%s,%s -->%s %s' % (symbol,predictions,threshold_output,file))
#model.summary()
# predictions=model.predict(batch_test_array)
# print('Actual Prediction(s):',predictions)
# threshold_output = np.where(predictions > 0.5, 1, 0)
# print('Threshold output:',threshold_output)