|
@@ -6,13 +6,13 @@
|
|
|
|
|
|
import itertools
|
|
|
import os
|
|
|
-
|
|
|
+os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
|
|
|
import matplotlib.pylab as plt
|
|
|
import numpy as np
|
|
|
|
|
|
import tensorflow as tf
|
|
|
import tensorflow_hub as hub
|
|
|
-from tensorflow.keras import datasets, layers, models
|
|
|
+from tensorflow.keras import datasets, layers, models, preprocessing
|
|
|
|
|
|
print("TF version:", tf.__version__)
|
|
|
print("Hub version:", hub.__version__)
|
|
@@ -28,6 +28,7 @@ BATCH_SIZE=32
|
|
|
datagen_kwargs = dict(rescale=1./255, validation_split=.20)
|
|
|
dataflow_kwargs = dict(target_size=IMAGE_SIZE, batch_size=BATCH_SIZE,
|
|
|
interpolation="bilinear")
|
|
|
+
|
|
|
train_datagen = tf.keras.preprocessing.image.ImageDataGenerator(
|
|
|
**datagen_kwargs)
|
|
|
|
|
@@ -38,9 +39,7 @@ print(f"Data shape {train_generator[1][0].shape}")
|
|
|
|
|
|
|
|
|
valid_generator = train_datagen.flow_from_directory(
|
|
|
- "data/seg_test/seg_test", subset="validation", shuffle=False, **dataflow_kwargs)
|
|
|
-
|
|
|
-
|
|
|
+ "data/seg_train/seg_train", subset="validation", shuffle=False, **dataflow_kwargs)
|
|
|
|
|
|
|
|
|
model = tf.keras.models.Sequential()
|
|
@@ -65,4 +64,14 @@ model.compile(optimizer=optmizer, loss=tf.keras.losses.MeanSquaredError(),
|
|
|
|
|
|
history = model.fit(train_generator, batch_size=32,
|
|
|
epochs=30, validation_data=valid_generator)
|
|
|
+
|
|
|
+
|
|
|
+img = preprocessing.image.load_img("data/seg_test/buildings/20057.jpg")
|
|
|
+img_arr = preprocessing.image.img_to_array(img)
|
|
|
+img_arr = tf.expand_dims(img_arr, 0)
|
|
|
+true_labels = valid_generator.classeds
|
|
|
+predictions = model.predict(img_arr)
|
|
|
+
|
|
|
|
|
|
+y_pred = np.array([np.argmax(x) for x in predictions])
|
|
|
+print(y_pred)
|