Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- import matplotlib.pyplot as plt
- from keras.models import Sequential
- from keras.layers.convolutional import Conv2D
- from keras.layers.core import Dense, Dropout, Activation, Flatten
- from keras.layers.convolutional import Convolution2D, MaxPooling2D, ZeroPadding2D
- from keras.layers.normalization import BatchNormalization
- #from sklearn.preprocessing import LabelEncoder
- #from sklearn.preprocessing import OneHotEncoder
- import copy
- import cv2
- import pickle
- #from keras.optimizers import Adam
- #from keras.preprocessing.image import ImageDataGenerator
- from keras.callbacks import EarlyStopping
- dim = 200
- print("[INFO] Importing Data...")
- pickle_in = open("train_xarr.pickle","rb")
- train_xarr = pickle.load(pickle_in)
- pickle_in = open("val_xarr.pickle","rb")
- val_xarr = pickle.load(pickle_in)
- #pickle_in = open("test_xarr.pickle","rb")
- #test_xarr = pickle.load(pickle_in)
- pickle_in = open("train_yarr.pickle","rb")
- train_yarr = pickle.load(pickle_in)
- pickle_in = open("val_yarr.pickle","rb")
- val_yarr = pickle.load(pickle_in)
- #pickle_in = open("test_yarr.pickle","rb")
- #test_yarr = pickle.load(pickle_in)
- train_xarr = train_xarr.reshape([-1, dim, dim,1])
- val_xarr = val_xarr.reshape([-1, dim, dim,1])
- #test_xarr = test_xarr.reshape([-1, dim, dim,1])
- model = Sequential()
- model.add(Conv2D(64, 11, strides=4))
- model.add(ZeroPadding2D(2))
- model.add(Activation('relu'))
- model.add(MaxPooling2D(pool_size=3, strides=2))
- model.add(Conv2D(192, 5))
- model.add(ZeroPadding2D(2))
- model.add(Activation('relu'))
- model.add(MaxPooling2D(pool_size=3, strides=2))
- model.add(Conv2D(384, 3))
- model.add(ZeroPadding2D(1))
- model.add(Activation('relu'))
- model.add(Conv2D(256, 3))
- model.add(ZeroPadding2D(1))
- model.add(Activation('relu'))
- model.add(MaxPooling2D(pool_size=3, strides=2))
- model.add(Flatten())
- model.add(Dropout(0.5))
- model.add(Dense(4096, input_shape=(6 * 6 * 256, )))
- model.add(Activation('relu'))
- model.add(Dropout(0.5))
- model.add(Dense(4096))
- model.add(Activation('relu'))
- model.add(Dense(70))
- model.add(Activation('softmax'))
- EPOCHS = 20
- #INIT_LR = 1e-3
- #BS = 50
- #opt = Adam(lr=INIT_LR, decay=INIT_LR / EPOCHS)
- model.compile(loss="categorical_crossentropy", optimizer='rmsprop',
- metrics=["accuracy"])
- es = EarlyStopping(monitor='val_loss', min_delta=0, patience=0, verbose=0, mode='auto', baseline=None, restore_best_weights=False)
- #aug = ImageDataGenerator(rotation_range=30, width_shift_range=0.1,
- # height_shift_range=0.1, shear_range=0.2, zoom_range=0.2,
- # horizontal_flip=True, fill_mode="nearest")
- #steps_per_epoch=len(train_xarr) // BS
- #validation_data=(val_xarr, val_yarr)
- print("[INFO] training network...")
- history = model.fit(train_xarr, train_yarr, epochs=EPOCHS, validation_data=(val_xarr, val_yarr), batch_size = 10, verbose=1)
- print("できた")
- #print (model.summary())
- """
- pickle_in = open("test_xarr.pickle","rb")
- test_xarr = pickle.load(pickle_in)
- pickle_in = open("test_yarr.pickle","rb")
- test_yarr = pickle.load(pickle_in)
- test_xarr = test_xarr.reshape([-1, dim, dim,1])
- error_and_stuff_i_think = history.history
- #test_loss, test_acc = model.evaluate(test_xarr, test_yarr)
- train_predicts = model.predict_proba(train_xarr)
- #yuh = test_yarr-predicts
- """
- model.save('aircraft_model.h5')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement