Update models

This commit is contained in:
2024-10-28 10:19:33 -04:00
parent caf6543af4
commit d263ef3ff8
3 changed files with 31 additions and 27 deletions

View File

@@ -107,22 +107,22 @@ def predict_resnet50_20241024_270():
return response
# This version expects the image to be of the form (x,x,3).
@app.route('/predict_resnet50B', methods=['GET','POST'])
def predict_resnet50B():
print('/predict_resnet50B')
test_image=request.get_data()
save_image(test_image)
test_image = PIL.Image.open(io.BytesIO(test_image))
test_array=keras.preprocessing.image.img_to_array(test_image)
batch_test_array=np.array([test_array])
predictions=resnet50b_model.predict(batch_test_array)
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)
response=str(predictions)+'-->'+str(threshold_output)
return response
# @app.route('/predict_resnet50B', methods=['GET','POST'])
# def predict_resnet50B():
# print('/predict_resnet50B')
# test_image=request.get_data()
# save_image(test_image)
# test_image = PIL.Image.open(io.BytesIO(test_image))
# test_array=keras.preprocessing.image.img_to_array(test_image)
# batch_test_array=np.array([test_array])
# predictions=resnet50b_model.predict(batch_test_array)
# 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)
# response=str(predictions)+'-->'+str(threshold_output)
# return response
@app.route('/predict_lenet5', methods=['GET','POST'])
def predict_lenet5():
@@ -156,23 +156,28 @@ def process_image():
if __name__ == '__main__':
resnet50_model_name='../Weights/resnet50.h5'
path = os.getcwd()
resnet50_model_name='Weights/resnet50.h5.keras'
resnet50_model_name = os.path.realpath(path + '/' +resnet50_model_name)
print('Loading {model_name}'.format(model_name=resnet50_model_name))
resnet50_model = keras.models.load_model(resnet50_model_name)
resnet50_20241024_270_model_name='../Weights/resnet50_20241024_270.h5.keras'
resnet50_20241024_270_model_name='Weights/resnet50_20241024_270.h5.keras'
resnet50_20241024_270_model_name = os.path.realpath(path + '/' + resnet50_20241024_270_model_name)
print('Loading {model_name}'.format(model_name=resnet50_20241024_270_model_name))
resnet50_20241024_270_model = keras.models.load_model(resnet50_20241024_270_model_name)
resnet50b_model_name='../Weights/resnet50B.h5'
print('Loading {model_name}'.format(model_name=resnet50b_model_name))
resnet50b_model = keras.models.load_model(resnet50b_model_name)
# resnet50b_model_name='../Weights/resnet50B.h5'
# print('Loading {model_name}'.format(model_name=resnet50b_model_name))
# resnet50b_model = keras.models.load_model(resnet50b_model_name)
vgg16_model_name='../Weights/vggnet16.h5'
vgg16_model_name='Weights/vggnet16.h5.keras'
vgg16_model_name = os.path.realpath(path + '/' + vgg16_model_name)
print('Loading {model_name}'.format(model_name=vgg16_model_name))
vgg16_model=keras.models.load_model(vgg16_model_name)
lenet_model_name='../Weights/lenet5.h5'
lenet_model_name='Weights/lenet5.h5.keras'
lenet_model_name = os.path.realpath(path + '/' +lenet_model_name)
print('Loading {model_name}'.format(model_name=lenet_model_name))
lenet_model=keras.models.load_model(lenet_model_name)

View File

@@ -21,7 +21,7 @@ tensorboard = TensorBoard(log_dir='logs/{}'.format(time()))
image_size = (128, 128)
#model_weights_file='model_resnet50.hdf5'
model_name='resnet50_20241022.h5.keras'
model_name='resnet50.h5.keras'
train_ds = tensorflow.keras.preprocessing.image_dataset_from_directory(
'C:\\boneyard\\DeepLearning\\data',

View File

@@ -25,8 +25,7 @@ from time import time
image_size = (128, 128)
#model_name='vgg16'
model_weights_file='model_vgg16.h5.keras'
model_weights_file='vggnet16.h5.keras'
train_ds = tensorflow.keras.preprocessing.image_dataset_from_directory(
'C:\\boneyard\\DeepLearning\\data',
@@ -171,7 +170,7 @@ model.compile(loss='binary_crossentropy', optimizer=optimizer,metrics=['accuracy
# The callback to checkpointer saves the model wights. Other callback can be added...like a stopping function
# history=model.fit_generator(dataGen.flow(x_train,y_train,batch_size=batch_size),callbacks=[checkpointer],steps_per_epoch=x_train.shape[0] //
# batch_size,epochs=epochs,verbose=2,validation_data=(x_valid,y_valid))
history=model.fit(train_ds, epochs=epochs, validation_data=val_ds,batch_size=batch_size,verbose=2,callbacks=[earlystopping,tensorboard,checkpointer])
history=model.fit(train_ds, epochs=epochs, validation_data=val_ds,batch_size=batch_size,verbose=2,callbacks=[early_stopping,tensorboard,checkpointer])
# Here is the evaluation part
# score=model.evaluate(x=train_ds,verbose=1)