Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.66 KB | None | 0 0
  1. from sklearn.model_selection import train_test_split
  2. from keras.layers import Dense, Dropout, Flatten, Conv1D, Input, MaxPooling1D
  3. from keras.models import Model
  4. from keras.callbacks import EarlyStopping, ModelCheckpoint
  5. from keras import backend as K
  6. from matplotlib import pyplot
  7. from keras.models import load_model
  8. history_array = []
  9.  
  10. for set_size in range(2000, 8000, 1000):
  11.     print("TRAINING FOR SET SIZE: ", set_size)
  12.    
  13.     y=le.fit_transform(all_label)
  14.     y=np_utils.to_categorical(y, num_classes=len(labels))[:set_size]  
  15.     all_wave_i = np.array(all_wave).reshape(-1,set_size,1)
  16.  
  17.     x_tr, x_val, y_tr, y_val = train_test_split(np.array(all_wave_i), np.array(y), stratify=y, test_size = 0.2, random_state=777,shuffle=True)
  18.    
  19.  
  20.     K.clear_session()
  21.  
  22.     inputs = Input(shape=(set_size,1))
  23.  
  24.     #First Conv1D layer
  25.     conv = Conv1D(8,13, padding='valid', activation='relu', strides=1)(inputs)
  26.     conv = MaxPooling1D(3)(conv)
  27.     conv = Dropout(0.3)(conv)
  28.  
  29.     #Second Conv1D layer
  30.     conv = Conv1D(16, 11, padding='valid', activation='relu', strides=1)(conv)
  31.     conv = MaxPooling1D(3)(conv)
  32.     conv = Dropout(0.3)(conv)
  33.  
  34.     #Third Conv1D layer
  35.     conv = Conv1D(32, 9, padding='valid', activation='relu', strides=1)(conv)
  36.     conv = MaxPooling1D(3)(conv)
  37.     conv = Dropout(0.3)(conv)
  38.  
  39.     #Fourth Conv1D layer
  40.     conv = Conv1D(64, 7, padding='valid', activation='relu', strides=1)(conv)
  41.     conv = MaxPooling1D(3)(conv)
  42.     conv = Dropout(0.3)(conv)
  43.  
  44.     #Flatten layer
  45.     conv = Flatten()(conv)
  46.  
  47.     #Dense Layer 1
  48.     conv = Dense(256, activation='relu')(conv)
  49.     conv = Dropout(0.3)(conv)
  50.  
  51.     #Dense Layer 2
  52.     conv = Dense(128, activation='relu')(conv)
  53.     conv = Dropout(0.3)(conv)
  54.  
  55.     outputs = Dense(len(labels), activation='softmax')(conv)
  56.  
  57.     model = Model(inputs, outputs)
  58.     model.summary()
  59.  
  60.     model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])
  61.  
  62.     es = EarlyStopping(monitor='val_loss', mode='min', verbose=1, patience=10, min_delta=0.0001)
  63.     model_path = '/Users/fryzu/Documents/systemyGlosowe/lab1/src/klasyfikacja/best_model_' + str(set_size) + '.hdf5'
  64.     mc = ModelCheckpoint(model_path, monitor='val_acc', verbose=1, save_best_only=True, mode='max')
  65.  
  66.     history=model.fit(x_tr, y_tr ,epochs=3, callbacks=[es,mc], batch_size=32, validation_data=(x_val,y_val))
  67.  
  68.     model.save(model_path)
  69.  
  70.     pyplot.plot(history.history['loss'], label='train')
  71.     pyplot.plot(history.history['val_loss'], label='test')
  72.     pyplot.legend()
  73.     plt.ylabel('Loss [%]', fontsize=12)
  74.     pyplot.show()
  75.  
  76.     model=load_model(model_path)
  77.    
  78.     history_array.append(history)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement