forked from patrickn699/DL-MLOPS
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.py
78 lines (52 loc) · 1.92 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import os
os.environ["CUDA_VISIBLE_DEVICES"]="-1"
from flask import Flask,render_template,url_for,request
from werkzeug.utils import secure_filename
from keras.models import load_model
#from keras.preprocessing.image import image
import numpy as np
from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession
#from tensorflow.keras.preprocessing import image
from PIL import Image
import cv2
webapp_root = "webapps"
static_dir = os.path.join(webapp_root, "static")
template_dir = os.path.join(webapp_root, "templates")
app = Flask(__name__,static_folder=static_dir,template_folder=template_dir)
app.config['upimg'] = os.path.join('uploads')
model1 = load_model("trainedd.h5")
def img_predict(pat,model):
load_img = cv2.imread(pat)
load_img = cv2.resize(np.float32(load_img),(225,225))
imgg = np.array(load_img)
#load_img = image.load_img(pat,target_size=(140,140))
#imgg = image.img_to_array(load_img)
imgg = np.expand_dims(imgg, axis = 0)
pred = model.predict(imgg)
#pred = pred[0]
pred = np.argmax(pred)
return str(pred)
@app.route("/")
def home():
return render_template('new.html')
@app.route("/predict", methods = ['POST', 'GET'] )
def predict():
if request.method == 'POST':
fil = request.files['file']
bas_path = os.path.dirname(__file__)
fil_path = os.path.join('webapps','uploads',secure_filename(fil.filename))
if not os.path.exists('uploads'):
os.mkdir('webapps/uploads')
fil.save(fil_path)
preds = img_predict(fil_path, model1)
if preds == '0':
opp = 'Its Bulbasaur!'
elif preds == '1':
opp = 'Its Charmander!'
else:
opp = 'Its Squirtle!'
return opp
return None
if __name__ =='__main__':
app.run(debug = True)