Skip to content

Instantly share code, notes, and snippets.

View pmarcelino's full-sized avatar

Pedro Marcelino pmarcelino

View GitHub Profile
@pmarcelino
pmarcelino / extract_features
Created October 14, 2018 12:19
Extract features from convolutional base on Dogs vs. Cats Kaggle competition
# Extract features
import os, shutil
from keras.preprocessing.image import ImageDataGenerator
datagen = ImageDataGenerator(rescale=1./255)
batch_size = 32
def extract_features(directory, sample_count):
features = np.zeros(shape=(sample_count, 7, 7, 512)) # Must be equal to the output of the convolutional base
labels = np.zeros(shape=(sample_count))
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@pmarcelino
pmarcelino / sol_03_svm
Created October 22, 2018 15:56
SVM solution for the Dogs vs. Cats competition
# Build model
import sklearn
from sklearn.cross_validation import train_test_split
from sklearn.grid_search import GridSearchCV
from sklearn.svm import LinearSVC
X_train, y_train = svm_features.reshape(300,7*7*512), svm_labels
param = [{
"C": [0.01, 0.1, 1, 10, 100]
@pmarcelino
pmarcelino / svm_data_concatenation
Created October 22, 2018 15:55
Concatenation of data for the SVM classifier
# Concatenate training and validation sets
svm_features = np.concatenate((train_features, validation_features))
svm_labels = np.concatenate((train_labels, validation_labels))
@pmarcelino
pmarcelino / sol_02_global_average_pooling
Last active October 22, 2018 15:53
Global average pooling solution for Dogs vs. Cats
# Define model
from keras import models
from keras import layers
from keras import optimizers
epochs = 100
model = models.Sequential()
model.add(layers.GlobalAveragePooling2D(input_shape=(7,7,512)))
model.add(layers.Dense(1, activation='sigmoid'))
@pmarcelino
pmarcelino / sol_01_fullyConnected
Created October 22, 2018 04:23
Fully connected layers solution for Dogs vs. Cats
# Define model
from keras import models
from keras import layers
from keras import optimizers
epochs = 100
model = models.Sequential()
model.add(layers.Flatten(input_shape=(7,7,512)))
model.add(layers.Dense(256, activation='relu', input_dim=(7*7*512)))
@pmarcelino
pmarcelino / data_preparation
Last active October 14, 2018 12:17
Data preparation for Dogs vs. Cats
# Create smaller dataset for Dogs vs. Cats
import os, shutil
original_dataset_dir = '/Users/macbook/dogs_cats_dataset/train/'
base_dir = '/Users/macbook/book/dogs_cats/data'
if not os.path.exists(base_dir):
os.mkdir(base_dir)
# Create directories
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@pmarcelino
pmarcelino / data_augmentation.ipynb
Last active September 6, 2018 15:28
Data Augmentation
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Missing Data"
]
},
{