Advertisement
Guest User

Untitled

a guest
Aug 7th, 2020
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.95 KB | None | 0 0
  1. import warnings
  2. warnings.filterwarnings("ignore")
  3. import os
  4. os.environ['TF_CPP_MIN_LOG_LEVEL']='3'
  5. import numpy as np
  6. import cv2
  7. import tensorflow as tf
  8. from tensorflow.keras.models import Sequential
  9. from tensorflow.keras.applications import InceptionV3
  10. from tensorflow.keras.layers import Conv2D, Dense, Dropout, MaxPool2D, Flatten, BatchNormalization
  11. from tensorflow.keras.optimizers import Adam
  12. from tensorflow.keras.callbacks import TensorBoard, EarlyStopping, ReduceLROnPlateau, Callback
  13. from tqdm import tqdm as tqdm
  14. path = 'your_path/'
  15.  
  16. data = []
  17.  
  18. def load_data(path):
  19.     global data
  20.     print('Loading in Data ....')
  21.     for f in tqdm(os.listdir(path)):
  22.         p = path + f
  23.         file = np.load(p, allow_pickle=True)
  24.         try:
  25.             data = data + file
  26.         except:
  27.             data = file
  28. load_data(path)
  29.  
  30. print('Separating images and labels...')
  31. x = np.array([np.array(img) for img, label in data]).reshape(-1, 256, 480, 3) / 255
  32. y = np.array([label for img, label in data])
  33. print(x.shape)
  34. print(y[0])
  35.  
  36.  
  37. class model():
  38.     def __init__(self):
  39.         self.model = Sequential()
  40.         self.name = 'version0.1'
  41.         self.epochs = 10
  42.         # Callbacks
  43.         self.tensorboard = TensorBoard()
  44.         self.reducelr = ReduceLROnPlateau(patience=2)
  45.         self.WIDTH = 256
  46.         self.HEIGHT = 480
  47.         self.optimizer = Adam(lr=0.001)
  48.         self.make_model()
  49.  
  50.     def make_model(self):
  51.         self.model.add(InceptionV3(include_top=False,
  52.                            input_shape=(self.WIDTH, self.HEIGHT, 3),
  53.                        weights="inception_v3_weights.h5"))
  54.         self.model.add((Dense(32, activation='relu')))
  55.         self.model.add(Dense(7, activation='softmax'))
  56.         self.model.layers[0].trainable = False
  57.  
  58.     def train(self):
  59.         self.model.compile(optimizer=self.optimizer, loss='categorical_crossentropy', metrics=['accuracy'])
  60.         self.model.fit(x=x, y=y, batch_size=64,
  61.                    validation_split=0.15, shuffle=True, epochs=self.epochs,
  62.                    callbacks=[self.tensorboard, self.saver, self.reducelr],)
  63.  
  64. conv_model1 = model()
  65. conv_model1.train()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement