Willenberg commited on
Commit
390de6f
·
1 Parent(s): 1f82054

Updated model

Browse files
app.py CHANGED
@@ -1,3 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import numpy as np
2
  import gradio as gr
3
  from PIL import Image
@@ -25,4 +57,5 @@ gr.Interface(fn=classify,
25
  inputs=input_sketchpad,
26
  outputs="label",
27
  allow_flagging=False,
 
28
  theme=gr.themes.Soft()).launch()
 
1
+ <<<<<<< HEAD
2
+ import numpy as np
3
+ import gradio as gr
4
+ from PIL import Image
5
+ from tensorflow import keras
6
+
7
+ model = keras.models.Sequential([
8
+ keras.layers.Flatten(input_shape=(28, 28)), # Diese Schicht nimmt unser 2D-Bild und verwandelt es in ein 1D-Array
9
+ keras.layers.Dense(64, activation='relu'), # Als Nächstes kommen zwei Schichten mit 512 künstlichen Neuronen. Als Funktion wählen wir 'relu' f(x) = max(0,x)
10
+ keras.layers.Dense(64, activation='relu'),
11
+ keras.layers.Dense(10, activation='softmax') # Die letzte Schicht besteht aus 10 Neuronen, die für unsere 10 Zahlen stehen. Die 'softmax' Funktion wandelt die Ergebnisse der vorherigen Schicht in Wahrscheinlichkeiten
12
+ ])
13
+
14
+ model.compile(optimizer=keras.optimizers.Adam(0.001),
15
+ loss=keras.losses.SparseCategoricalCrossentropy(from_logits=True),
16
+ metrics=[keras.metrics.SparseCategoricalAccuracy()])
17
+
18
+ model.load_weights('./weights/weights')
19
+
20
+ def classify(input):
21
+ image = np.expand_dims(np.array(Image.fromarray(input['layers'][0]).resize((28,28),resample=Image.Resampling.BILINEAR), dtype=int), axis=0)#[:,:,0]
22
+ prediction = model.predict(image).tolist()[0]
23
+ return {str(i): float(prediction[i]) for i in range(10)}
24
+
25
+ input_sketchpad = gr.Paint(image_mode="L", brush=gr.components.image_editor.Brush(default_color="rgb(156, 104, 200)"))
26
+ output_lable = gr.Label()
27
+
28
+ gr.Interface(fn=classify,
29
+ inputs=input_sketchpad,
30
+ outputs=output_lable,
31
+ allow_flagging=False,
32
+ =======
33
  import numpy as np
34
  import gradio as gr
35
  from PIL import Image
 
57
  inputs=input_sketchpad,
58
  outputs="label",
59
  allow_flagging=False,
60
+ >>>>>>> 1f82054bee2ed11c23599ab720a05335eb2d9499
61
  theme=gr.themes.Soft()).launch()
requirements.txt CHANGED
@@ -1,4 +1,10 @@
 
1
  numpy
2
  gradio
3
  Pillow
 
 
 
 
 
4
  tensorflow
 
1
+ <<<<<<< HEAD
2
  numpy
3
  gradio
4
  Pillow
5
+ =======
6
+ numpy
7
+ gradio
8
+ Pillow
9
+ >>>>>>> 1f82054bee2ed11c23599ab720a05335eb2d9499
10
  tensorflow
training.py CHANGED
@@ -1,3 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  from tensorflow import keras
2
 
3
  (x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
@@ -15,4 +37,5 @@ model = keras.models.Sequential([
15
  model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
16
  model.fit(x_train, y_train, validation_data=(x_test, y_test), epochs=6)
17
 
 
18
  model.save_weights('./weights/weights')
 
1
+ <<<<<<< HEAD
2
+ from tensorflow import keras
3
+
4
+ (x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
5
+
6
+ x_train = x_train / 255.0
7
+ x_test = x_test / 255.0
8
+
9
+ model = keras.models.Sequential([
10
+ keras.layers.Flatten(input_shape=(28, 28)), # Diese Schicht nimmt unser 2D-Bild und verwandelt es in ein 1D-Array
11
+ keras.layers.Dense(64, activation='relu'), # Als Nächstes kommen zwei Schichten mit 64 künstlichen Neuronen. Als Funktion wählen wir 'relu' f(x) = max(0,x)
12
+ keras.layers.Dense(64, activation='relu'),
13
+ keras.layers.Dense(10, activation='softmax') # Die letzte Schicht besteht aus 10 Neuronen, die für unsere 10 Zahlen stehen. Die 'softmax' Funktion wandelt die Ergebnisse der vorherigen Schicht in Wahrscheinlichkeiten
14
+ ])
15
+
16
+ model.compile(optimizer=keras.optimizers.Adam(0.001),
17
+ loss=keras.losses.SparseCategoricalCrossentropy(from_logits=True),
18
+ metrics=[keras.metrics.SparseCategoricalAccuracy()])
19
+
20
+ model.fit(x_train, y_train, validation_data=(x_test, y_test), epochs=3)
21
+
22
+ =======
23
  from tensorflow import keras
24
 
25
  (x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
 
37
  model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
38
  model.fit(x_train, y_train, validation_data=(x_test, y_test), epochs=6)
39
 
40
+ >>>>>>> 1f82054bee2ed11c23599ab720a05335eb2d9499
41
  model.save_weights('./weights/weights')
weights/weights.data-00000-of-00001 CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:c830f3592c537868e20d93013f72906daa1c770ede682ab1ba938e12f18dcd33
3
- size 8039013
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:161614b663d2da91c99b9bfc1fa99d8d61bebe0ab296bf6e298e6a8cb78d36c0
3
+ size 663141
weights/weights.index CHANGED
Binary files a/weights/weights.index and b/weights/weights.index differ