/
predict.py
48 lines (39 loc) · 1.38 KB
/
predict.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
from database import connect, getRecentRun, getRandomExample, processExample
from model import getModel, getParameters, getGraph, getActivations
from classes import classToCode
import tensorflow as tf
def predict(image):
data = getRecentRun()
predictions, x, y, keep_prob = getModel()
graph = getGraph()
conv1_activations = getActivations()
W_conv1, b_conv1, W_conv2, b_conv2, W_fc1, b_fc1, W_fc2, b_fc2 = getParameters()
feed = {
x: [image],
keep_prob: 1.0,
W_conv1: data['parameters']['W_conv1'],
b_conv1: data['parameters']['b_conv1'],
W_conv2: data['parameters']['W_conv2'],
b_conv2: data['parameters']['b_conv2'],
W_fc1: data['parameters']['W_fc1'],
b_fc1: data['parameters']['b_fc1'],
W_fc2: data['parameters']['W_fc2'],
b_fc2: data['parameters']['b_fc2'],
}
T_y_probs = tf.nn.softmax(predictions)
# Get all predictions in order of probability
T_top_predictions = tf.nn.top_k(T_y_probs, 62)
with tf.Session(graph=graph) as session:
y_probs, top, activations = session.run(
[T_y_probs, T_top_predictions, conv1_activations],
feed_dict=feed
)
values, indices = top
result = []
for confidence, index in zip(values[0], indices[0]):
result.append({
'charcode': classToCode[index],
'confidence': str(confidence)
})
session.close()
return result, activations.tolist()[0]