Ejemplo n.º 1
0
    layer_params = layer.get_params(trainable=True)
    if name in ['new_output', 'fc6', 'fc7']:
        layer_lr = learning_rate
    else:
        layer_lr = learning_rate / 10
    if name != 'fc8':
        layer_updates = lasagne.updates.nesterov_momentum(
            loss, layer_params, learning_rate=layer_lr, momentum=0.9)
        updates.update(layer_updates)

# Compile functions for training, validation and prediction
train_fn = theano.function([X_sym, y_sym], [loss, acc], updates=updates)
val_fn = theano.function([X_sym, y_sym], [loss, acc])
pred_fn = theano.function([X_sym], prediction)

X, y, ids = load_train_data()
X, y, ids = sklearn.utils.shuffle(X, y, ids, random_state=0)


# generator splitting an iterable into chunks of maximum length N
def batches(iterable, N):
    chunk = []
    for item in iterable:
        chunk.append(item)
        if len(chunk) == N:
            yield chunk
            chunk = []
    if chunk:
        yield chunk

Ejemplo n.º 2
0
from lasagne.layers import InputLayer, Conv2DLayer, MaxPool2DLayer, DenseLayer, DropoutLayer
from lasagne.layers.dnn import Conv2DDNNLayer
from lasagne.utils import floatX
from nolearn.lasagne import NeuralNet, BatchIterator
from sklearn.cross_validation import LabelKFold
from sklearn.utils import shuffle
from data_pretrained import load_train_data, load_test_data, make_submission
from utils_otto import CVTrainSplit, RotateBatchIterator, AdjustVariable

np.random.seed(15)
IMG_SHAPE = 224, 224
path = '../input'

X, y, drivers = load_train_data(path,
                                grayscale=False,
                                img_shape=IMG_SHAPE,
                                equalize=False,
                                zeromean=True,
                                usecache=False)
X, y, drivers = shuffle(X, y, drivers, random_state=0)

train_split = CVTrainSplit(LabelKFold(drivers, n_folds=2))
batch_iterator_train = RotateBatchIterator(10, 0.5, 12, True)
batch_iterator_test = BatchIterator(12, False)

layer = [(InputLayer, {
    'shape': (None, 3, 224, 224)
}), (Conv2DDNNLayer, {
    'num_filters': 64,
    'filter_size': 3,
    'pad': 1
}), (Conv2DDNNLayer, {
Ejemplo n.º 3
0
    if name in ['new_output', 'fc6', 'fc7']:
        layer_lr = learning_rate
    else:
        layer_lr = learning_rate  #/ 10
    if name != 'fc8':
        layer_updates = lasagne.updates.nesterov_momentum(
            loss, layer_params, learning_rate=layer_lr, momentum=0.9)
        updates.update(layer_updates)

# Compile functions for training, validation and prediction
train_fn = theano.function([X_sym, y_sym], [loss, acc], updates=updates)
val_fn = theano.function([X_sym, y_sym], [loss, acc])
pred_fn = theano.function([X_sym], prediction)

X, y, drivers = load_train_data('../input',
                                grayscale=False,
                                img_shape=IMG_SHAPE,
                                usecache=False)
X, y, drivers = sklearn.utils.shuffle(X, y, drivers, random_state=1)


# generator splitting an iterable into chunks of maximum length N
def batches(iterable, N):
    chunk = []
    for item in iterable:
        chunk.append(item)
        if len(chunk) == N:
            yield chunk
            chunk = []
    if chunk:
        yield chunk
Ejemplo n.º 4
0
    layer_params = layer.get_params(trainable=True)
    if name in ['new_output', 'fc6', 'fc7']:
        layer_lr = learning_rate
    else:
        layer_lr = learning_rate / 10
    if name != 'fc8':
        layer_updates = lasagne.updates.nesterov_momentum(
            loss, layer_params, learning_rate=layer_lr, momentum=0.9)
        updates.update(layer_updates)

# Compile functions for training, validation and prediction
train_fn = theano.function([X_sym, y_sym], [loss, acc], updates=updates)
val_fn = theano.function([X_sym, y_sym], [loss, acc])
pred_fn = theano.function([X_sym], prediction)

X_train, y_train, ids_train = load_train_data()
X_test, ids_test = load_test_data(img_start_ix=0, max_img=1000)
y_pseudo = load_pseudo_labels()
pos = np.array(range(4777))
X, y, ids = np.concatenate((X_train, X_test)), np.concatenate(
    (y_train, y_pseudo)), np.concatenate((ids_train, ids_test))
X, y, ids, pos = sklearn.utils.shuffle(X, y, ids, pos, random_state=0)

new_pseudo_label_pos = []
for i in range(3777, 4777):
    k = np.where(pos == i)
    new_pseudo_label_pos.append(int(k[0]))


# generator splitting an iterable into chunks of maximum length N
def batches(iterable, N):