|
2 | 2 | import pandas as pd |
3 | 3 | import beacon8 as bb8 |
4 | 4 | import beacon8.optimizers as optim |
| 5 | +from os.path import dirname, join as pjoin |
5 | 6 | from sklearn.preprocessing import LabelEncoder |
6 | 7 | from sklearn.cross_validation import train_test_split |
7 | | -from train import * |
8 | | -from test import * |
| 8 | +from train import train |
| 9 | +from test import validate |
9 | 10 |
|
10 | 11 |
|
11 | 12 | def load_train_data(): |
12 | | - train_data = pd.read_csv('./data/train.csv') |
| 13 | + train_data = pd.read_csv(pjoin(dirname(__file__), 'data', 'train.csv')) |
13 | 14 | labels = train_data.target.values |
14 | | - labels_encoder = LabelEncoder() |
15 | | - labels = labels_encoder.fit_transform(labels) |
| 15 | + labels = LabelEncoder().fit_transform(labels) |
16 | 16 | train_data = train_data.drop('id', axis=1) |
17 | 17 | train_data = train_data.drop('target', axis=1) |
18 | 18 | return train_data.as_matrix(), labels |
@@ -48,20 +48,20 @@ def nnet(): |
48 | 48 |
|
49 | 49 | train_data_x, train_data_y = load_train_data() |
50 | 50 |
|
51 | | - train_data_x, test_data_x, train_data_y, test_data_y = train_test_split(train_data_x, train_data_y, train_size=0.85) |
| 51 | + train_data_x, valid_data_x, train_data_y, valid_data_y = train_test_split(train_data_x, train_data_y, train_size=0.85) |
52 | 52 | model = nnet() |
53 | 53 |
|
54 | 54 | criterion = bb8.ClassNLLCriterion() |
55 | 55 |
|
56 | 56 | optimiser = optim.Momentum(lr=0.01, momentum=0.9) |
57 | 57 |
|
58 | | - for epoch in range(1000): |
| 58 | + for epoch in range(1, 1001): |
59 | 59 | model.training() |
60 | | - if epoch > 100 and epoch % 100 == 0: |
| 60 | + if epoch % 100 == 0: |
61 | 61 | optimiser.hyperparams['lr'] /= 10 |
62 | | - train(train_data_x, train_data_y, model, optimiser, criterion, epoch, 100) |
63 | | - train(train_data_x, train_data_y, model, optimiser, criterion, epoch, 100, 'stat') |
| 62 | + train(train_data_x, train_data_y, model, optimiser, criterion, epoch, 100, 'train') |
| 63 | + train(train_data_x, train_data_y, model, optimiser, criterion, epoch, 100, 'stats') |
64 | 64 |
|
65 | 65 | model.evaluate() |
66 | | - validate(test_data_x, test_data_y, model, epoch, 100) |
| 66 | + validate(valid_data_x, valid_data_y, model, epoch, 100) |
67 | 67 |
|
0 commit comments