Esempio n. 1
0
if K.image_data_format() == 'channels_first':
    input_size = (3,71,71)    
else:
    input_size = (71,71,3)

output_size = 5

handler = data_utils.data_handler(data_dir_path, sample_fractions=sample_fractions, 
                              input_size=input_size, labels_type='classes', 
                              output_size=output_size, normalize_input=False, 
                              create_samples_bool=False, preprocess_bool=False, 
                              crp_factor=2, ds_factor=3)

### Load data
X_train, y_train = data_utils.load_samples(handler, 'training', grey_scale=False, as_vector=False)    
X_val, y_val = data_utils.load_samples(handler, 'validation', grey_scale=False, as_vector=False) 

### Convert class vectors to binary class matrices
y_train = np_utils.to_categorical(y_train, n_classes)
y_val = np_utils.to_categorical(y_val, n_classes)

### Build model 
model = conv_net.CNN_VGG16(input_size=input_size, output_size=n_classes)
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
#plot_model(model, to_file='model_plot.png', show_shapes=True, show_layer_names=True)

# this is the augmentation configuration for training
train_datagen = ImageDataGenerator(
        rescale=1./255,
        rotation_range=90,
classNames = {0: 'Disc',
              1: 'Spiral',
              2: 'Elliptical',
              3: 'Round',
              4: 'Other'}

n_comp = 200

handler = data_utils.data_handler(data_dir_path, sample_fractions=sample_fractions, 
                              input_size=input_size, labels_type='classes', 
                              output_size=output_size, normalize_input=False, 
                              create_samples_bool=False, preprocess_bool=False, 
                              crp_factor=2, ds_factor=3)
    
### Load data
X_train, y_train = data_utils.load_samples(handler, 'training', grey_scale=True)    
X_val, y_val = data_utils.load_samples(handler, 'validation', grey_scale=True)    

### Perform PCA
X_train_pca, X_val_pca, pca = data_utils.compute_pca(
        X_train=X_train, n_comp=n_comp, X_test=X_val)

### Train an one vs. all Logistic Regression model
param_grid = {'C': 10.**np.arange(-8, 8, 0.5)}

clf = GridSearchCV(LogisticRegression(multi_class='ovr'), param_grid, scoring="accuracy")

t0 = time()
clf = clf.fit(X_train_pca, y_train)
print("done in %0.3fs" % (time() - t0))
print(clf.best_estimator_)
Esempio n. 3
0
input_size = (71, 71)
output_size = 1

handler = data_utils.data_handler(data_dir_path,
                                  sample_fractions=sample_fractions,
                                  input_size=input_size,
                                  labels_type='classes',
                                  output_size=output_size,
                                  normalize_input=False,
                                  create_samples_bool=False,
                                  preprocess_bool=False,
                                  crp_factor=2,
                                  ds_factor=3)

X_train, y_train = data_utils.load_samples(handler,
                                           sample='training',
                                           grey_scale=True)

# PCA Variance Explained
X_train_pca, pca = data_utils.compute_pca(X_train, n_comp=X_train.shape[1])

plt.plot(np.cumsum(pca.explained_variance_ratio_))
plt.xlabel('Number of Components')
plt.ylabel('Explained Variance')
plt.title('Cumulative Variance Explained ')
plt.show()
plt.savefig(os.path.join(figures_dir_path, 'PCA_Variance_Explained.png'))

# Reconstruted Images
raw_img = X_train[5000, :].reshape(input_size)
vector_img = raw_img.reshape(np.prod(raw_img.shape))