hwberry2 commited on
Commit
e9d74ac
·
1 Parent(s): 459ba45

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -5
app.py CHANGED
@@ -1,5 +1,9 @@
1
  import gradio as gr
2
  import tensorflow as tf
 
 
 
 
3
 
4
  # Create a Gradio App using Blocks
5
  with gr.Blocks() as demo:
@@ -11,15 +15,21 @@ with gr.Blocks() as demo:
11
  with gr.Accordion("Click for Instructions:"):
12
  gr.Markdown(
13
  """
14
- * Train/Eval will setup, train, and evaluate the base model
15
  """)
16
 
 
 
 
17
  def modelTraining(img):
 
18
  mnist = tf.keras.datasets.mnist
19
 
 
20
  (x_train, y_train), (x_test, y_test) = mnist.load_data()
21
  x_train, x_test = x_train / 255.0, x_test / 255.0
22
 
 
23
  model = tf.keras.models.Sequential([
24
  tf.keras.layers.Flatten(input_shape=(28, 28)),
25
  tf.keras.layers.Dense(128, activation='relu'),
@@ -27,25 +37,34 @@ with gr.Blocks() as demo:
27
  tf.keras.layers.Dense(10)
28
  ])
29
 
 
 
30
  predictions = model(x_train[:1]).numpy()
31
-
 
32
  tf.nn.softmax(predictions).numpy()
33
-
 
34
  loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
35
  loss_fn(y_train[:1], predictions).numpy()
36
-
 
37
  model.compile(optimizer='adam',
38
  loss=loss_fn,
39
  metrics=['accuracy'])
40
 
41
-
 
42
  model.fit(x_train, y_train, epochs=5)
43
  test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2)
44
 
45
  print("Test accuracy: ", test_acc)
46
 
47
  # Define any necessary preprocessing steps for the image input here
 
 
48
  probability_model = tf.keras.Sequential([model, tf.keras.layers.Softmax()])
 
49
  # Make a prediction using the model
50
  prediction = probability_model.predict(img)
51
 
 
1
  import gradio as gr
2
  import tensorflow as tf
3
+ import numpy as np
4
+ import os
5
+ import PIL
6
+ import PIL.Image
7
 
8
  # Create a Gradio App using Blocks
9
  with gr.Blocks() as demo:
 
15
  with gr.Accordion("Click for Instructions:"):
16
  gr.Markdown(
17
  """
18
+ * uploading an image will setup, train, and evaluate the base model
19
  """)
20
 
21
+ # Train, evaluate and test a ML
22
+ # image classification model for
23
+ # clothes images
24
  def modelTraining(img):
25
+ # clothing dataset
26
  mnist = tf.keras.datasets.mnist
27
 
28
+ #split the training data in to a train/test sets
29
  (x_train, y_train), (x_test, y_test) = mnist.load_data()
30
  x_train, x_test = x_train / 255.0, x_test / 255.0
31
 
32
+ # create the neural net layers
33
  model = tf.keras.models.Sequential([
34
  tf.keras.layers.Flatten(input_shape=(28, 28)),
35
  tf.keras.layers.Dense(128, activation='relu'),
 
37
  tf.keras.layers.Dense(10)
38
  ])
39
 
40
+ #make a post-training predition on the
41
+ #training set data
42
  predictions = model(x_train[:1]).numpy()
43
+
44
+ # converts the logits into a probability
45
  tf.nn.softmax(predictions).numpy()
46
+
47
+ #create and train the loss function
48
  loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
49
  loss_fn(y_train[:1], predictions).numpy()
50
+
51
+ # compile the model with the loss function
52
  model.compile(optimizer='adam',
53
  loss=loss_fn,
54
  metrics=['accuracy'])
55
 
56
+ # train the model - 5 runs
57
+ # evaluate the model on the test set
58
  model.fit(x_train, y_train, epochs=5)
59
  test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2)
60
 
61
  print("Test accuracy: ", test_acc)
62
 
63
  # Define any necessary preprocessing steps for the image input here
64
+ # the image can be passed as a PIL or numpy
65
+ # create the final model for production
66
  probability_model = tf.keras.Sequential([model, tf.keras.layers.Softmax()])
67
+
68
  # Make a prediction using the model
69
  prediction = probability_model.predict(img)
70