Skip to content

Commit 6271036

Browse files
committed
commit #22: fix some processing bugs & change learning rate
1 parent 8ed6753 commit 6271036

File tree

10 files changed

+79
-73
lines changed

10 files changed

+79
-73
lines changed

1_Lecun_Network/LeNet_dp_da_keras.py

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from keras.preprocessing.image import ImageDataGenerator
99

1010
batch_size = 128
11-
epochs = 180
11+
epochs = 200
1212
iterations = 391
1313
num_classes = 10
1414
log_filepath = './lenet_dp_da'
@@ -30,14 +30,13 @@ def build_model():
3030
return model
3131

3232
def scheduler(epoch):
33-
learning_rate_init = 0.02
34-
if epoch >= 60:
35-
learning_rate_init = 0.01
36-
if epoch >= 120:
37-
learning_rate_init = 0.004
38-
if epoch >= 160:
39-
learning_rate_init = 0.0008
40-
return learning_rate_init
33+
if epoch <= 60:
34+
return 0.05
35+
if epoch <= 120:
36+
return 0.01
37+
if epoch <= 160:
38+
return 0.002
39+
return 0.0004
4140

4241
if __name__ == '__main__':
4342

1_Lecun_Network/LeNet_dp_da_wd_keras.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,12 @@
99
from keras.regularizers import l2
1010

1111
batch_size = 128
12-
epochs = 150
12+
epochs = 200
1313
iterations = 391
1414
num_classes = 10
1515
weight_decay = 0.0001
1616
mean = [125.307, 122.95, 113.865]
1717
std = [62.9932, 62.0887, 66.7048]
18-
lr = [0.02, 0.004, 0.0008]
1918

2019
log_filepath = './lenet_dp_da_wd'
2120

@@ -34,7 +33,13 @@ def build_model():
3433
return model
3534

3635
def scheduler(epoch):
37-
return lr[epoch//50]
36+
if epoch <= 60:
37+
return 0.05
38+
if epoch <= 120:
39+
return 0.01
40+
if epoch <= 160:
41+
return 0.002
42+
return 0.0004
3843

3944
if __name__ == '__main__':
4045

1_Lecun_Network/LeNet_dp_keras.py

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from keras.callbacks import LearningRateScheduler, TensorBoard
88

99
batch_size = 128
10-
epochs = 180
10+
epochs = 200
1111
iterations = 391
1212
num_classes = 10
1313
log_filepath = './lenet_dp'
@@ -27,14 +27,13 @@ def build_model():
2727
return model
2828

2929
def scheduler(epoch):
30-
learning_rate_init = 0.02
31-
if epoch >= 60:
32-
learning_rate_init = 0.01
33-
if epoch >= 120:
34-
learning_rate_init = 0.004
35-
if epoch >= 160:
36-
learning_rate_init = 0.0008
37-
return learning_rate_init
30+
if epoch <= 60:
31+
return 0.05
32+
if epoch <= 120:
33+
return 0.01
34+
if epoch <= 160:
35+
return 0.002
36+
return 0.0004
3837

3938
if __name__ == '__main__':
4039

1_Lecun_Network/LeNet_keras.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from keras.callbacks import LearningRateScheduler, TensorBoard
77

88
batch_size = 128
9-
epochs = 180
9+
epochs = 200
1010
iterations = 391
1111
num_classes = 10
1212
log_filepath = './lenet'
@@ -26,12 +26,13 @@ def build_model():
2626
return model
2727

2828
def scheduler(epoch):
29-
learning_rate_init = 0.02
30-
if epoch >= 80:
31-
learning_rate_init = 0.01
32-
if epoch >= 150:
33-
learning_rate_init = 0.004
34-
return learning_rate_init
29+
if epoch <= 60:
30+
return 0.05
31+
if epoch <= 120:
32+
return 0.01
33+
if epoch <= 160:
34+
return 0.002
35+
return 0.0004
3536

3637
if __name__ == '__main__':
3738

2_Network_in_Network/Network_in_Network_bn_keras.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from keras.callbacks import LearningRateScheduler, TensorBoard
1212

1313
batch_size = 128
14-
epochs = 164
14+
epochs = 200
1515
iterations = 391
1616
num_classes = 10
1717
dropout = 0.5
@@ -29,12 +29,13 @@ def color_preprocessing(x_train,x_test):
2929
return x_train, x_test
3030

3131
def scheduler(epoch):
32-
learning_rate_init = 0.08
33-
if epoch >= 81:
34-
learning_rate_init = 0.01
35-
if epoch >= 122:
36-
learning_rate_init = 0.001
37-
return learning_rate_init
32+
if epoch <= 60:
33+
return 0.05
34+
if epoch <= 120:
35+
return 0.01
36+
if epoch <= 160:
37+
return 0.002
38+
return 0.0004
3839

3940
def build_model():
4041
model = Sequential()

2_Network_in_Network/Network_in_Network_keras.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from keras.layers.normalization import BatchNormalization
1212

1313
batch_size = 128
14-
epochs = 164
14+
epochs = 200
1515
iterations = 391
1616
num_classes = 10
1717
dropout = 0.5
@@ -29,12 +29,13 @@ def color_preprocessing(x_train,x_test):
2929
return x_train, x_test
3030

3131
def scheduler(epoch):
32-
learning_rate_init = 0.08
33-
if epoch >= 81:
34-
learning_rate_init = 0.01
35-
if epoch >= 122:
36-
learning_rate_init = 0.001
37-
return learning_rate_init
32+
if epoch <= 60:
33+
return 0.05
34+
if epoch <= 120:
35+
return 0.01
36+
if epoch <= 160:
37+
return 0.002
38+
return 0.0004
3839

3940
def build_model():
4041
model = Sequential()

3_Vgg19_Network/Vgg19_keras.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,20 @@
2222

2323
num_classes = 10
2424
batch_size = 128
25-
epochs = 170
25+
epochs = 200
2626
iterations = 391
2727
dropout = 0.5
2828
weight_decay = 0.0005
2929
log_filepath = r'./vgg19_retrain_logs/'
3030

3131
def scheduler(epoch):
32-
learning_rate_init = 0.1
33-
if epoch > 80:
34-
learning_rate_init = 0.01
35-
if epoch > 120:
36-
learning_rate_init = 0.001
37-
return learning_rate_init
32+
if epoch <= 60:
33+
return 0.05
34+
if epoch <= 120:
35+
return 0.01
36+
if epoch <= 160:
37+
return 0.002
38+
return 0.0004
3839

3940
WEIGHTS_PATH = 'https://github.com/fchollet/deep-learning-models/releases/download/v0.1/vgg19_weights_tf_dim_ordering_tf_kernels.h5'
4041
filepath = get_file('vgg19_weights_tf_dim_ordering_tf_kernels.h5', WEIGHTS_PATH, cache_subdir='models')

4_Residual_Network/ResNet_keras.py

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,23 +22,21 @@
2222

2323
def scheduler(epoch):
2424
if epoch <= 60:
25-
return 0.1
25+
return 0.05
2626
if epoch <= 120:
27-
return 0.02
28-
if epoch <= 160:
29-
return 0.004
30-
return 0.0008
27+
return 0.01
28+
if epoch <= 160:
29+
return 0.002
30+
return 0.0004
3131

3232
def color_preprocessing(x_train,x_test):
3333
x_train = x_train.astype('float32')
3434
x_test = x_test.astype('float32')
35-
x_train[:,:,:,0] = (x_train[:,:,:,0] - np.mean(x_train[:,:,:,0])) / np.std(x_train[:,:,:,0])
36-
x_train[:,:,:,1] = (x_train[:,:,:,1] - np.mean(x_train[:,:,:,1])) / np.std(x_train[:,:,:,1])
37-
x_train[:,:,:,2] = (x_train[:,:,:,2] - np.mean(x_train[:,:,:,2])) / np.std(x_train[:,:,:,2])
38-
39-
x_test[:,:,:,0] = (x_test[:,:,:,0] - np.mean(x_test[:,:,:,0])) / np.std(x_test[:,:,:,0])
40-
x_test[:,:,:,1] = (x_test[:,:,:,1] - np.mean(x_test[:,:,:,1])) / np.std(x_test[:,:,:,1])
41-
x_test[:,:,:,2] = (x_test[:,:,:,2] - np.mean(x_test[:,:,:,2])) / np.std(x_test[:,:,:,2])
35+
mean = [125.307, 122.95, 113.865]
36+
std = [62.9932, 62.0887, 66.7048]
37+
for i in range(3):
38+
x_train[:,:,:,i] = (x_train[:,:,:,i] - mean[i]) / std[i]
39+
x_test[:,:,:,i] = (x_test[:,:,:,i] - mean[i]) / std[i]
4240

4341
return x_train, x_test
4442

@@ -146,4 +144,4 @@ def residual_block(x,shape,increase_filter=False):
146144
epochs=epochs,
147145
callbacks=cbks,
148146
validation_data=(x_test, y_test))
149-
resnet.save('resnet.h5')
147+
resnet.save('resnet.h5')

5_Wide_Residual_Network/Wide_ResNet_keras.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,11 @@ def scheduler(epoch):
3333
def color_preprocessing(x_train,x_test):
3434
x_train = x_train.astype('float32')
3535
x_test = x_test.astype('float32')
36-
x_train[:,:,:,0] = (x_train[:,:,:,0] - np.mean(x_train[:,:,:,0])) / np.std(x_train[:,:,:,0])
37-
x_train[:,:,:,1] = (x_train[:,:,:,1] - np.mean(x_train[:,:,:,1])) / np.std(x_train[:,:,:,1])
38-
x_train[:,:,:,2] = (x_train[:,:,:,2] - np.mean(x_train[:,:,:,2])) / np.std(x_train[:,:,:,2])
39-
x_test[:,:,:,0] = (x_test[:,:,:,0] - np.mean(x_test[:,:,:,0])) / np.std(x_test[:,:,:,0])
40-
x_test[:,:,:,1] = (x_test[:,:,:,1] - np.mean(x_test[:,:,:,1])) / np.std(x_test[:,:,:,1])
41-
x_test[:,:,:,2] = (x_test[:,:,:,2] - np.mean(x_test[:,:,:,2])) / np.std(x_test[:,:,:,2])
36+
mean = [125.307, 122.95, 113.865]
37+
std = [62.9932, 62.0887, 66.7048]
38+
for i in range(3):
39+
x_train[:,:,:,i] = (x_train[:,:,:,i] - mean[i]) / std[i]
40+
x_test[:,:,:,i] = (x_test[:,:,:,i] - mean[i]) / std[i]
4241

4342
return x_train, x_test
4443

@@ -127,4 +126,4 @@ def wide_residual_layer(x,out_filters,increase_filter=False):
127126
epochs=epochs,
128127
callbacks=cbks,
129128
validation_data=(x_test, y_test))
130-
resnet.save('resnet.h5')
129+
resnet.save('resnet.h5')

6_ResNeXt/ResNeXt_keras.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from keras import optimizers
1313
from keras import regularizers
1414

15-
cardinality = 8 # 4 or 8 or 16 or 32
15+
cardinality = 4 # 4 or 8 or 16 or 32
1616
base_width = 64
1717
inplanes = 64
1818
expansion = 4
@@ -29,11 +29,13 @@
2929
std = [62.9932, 62.0887, 66.7048]
3030

3131
def scheduler(epoch):
32-
if epoch <= 100:
32+
if epoch <= 75:
3333
return 0.05
34-
if epoch <= 180:
34+
if epoch <= 150:
3535
return 0.005
36-
return 0.0005
36+
if epoch <= 210:
37+
return 0.0005
38+
return 0.0001
3739

3840
def resnext(img_input,classes_num):
3941
global inplanes

0 commit comments

Comments
 (0)