Keras Tuner模型自动超参数调优

Keras Tuner安装
pip install keras-tuner

from tensorflow.keras import layers
from tensorflow import keras
from kerastuner.tuners import RandomSearch
from kerastuner.tuners import BayesianOptimization

(x,y),(val_x,val_y)=keras.datasets.mnist.load_data()
x = x.astype('float32') / 255.
val_x = val_x.astype('float32') / 255.

x = x[:10000]
y = y[:10000]


def build_model(hp):
    model=keras.Sequential()
    model.add(layers.Flatten(input_shape=(28,28)))
    for i in range(hp.Int('num_layers',2,20)):
        model.add(layers.Dense(units=hp.Int('units_'+str(i),32,152)))
    model.add(layers.Dense(10,activation='softmax'))
   
    model.compile(optimizer=keras.optimizers.Adam(hp.Choice('learning_rate',[1e-2,1e-3,1e-4])),loss='sp
arse_categorical_crossentropy',metrics=['accuracy'])

    return model


tuner=RandomSearch(build_model, # # 构建模型函数名,默认传入hp
objective='val_accuracy', # 优化指标
max_trials=10, # 最大尝试次数
executions_per_trial=3, # 每种方式的尝试次数
directory='test_dir') # 结果保存路径,自动创建目录

tuner.search(x=x,y=y,epochs=2,validation_data=(val_x,val_y))

tuner.results_summary()

运行返回

[Results summary]
 |-Results in test_dir/untitled_project
 |-Showing 10 best trials
 |-Objective(name='val_accuracy', direction='max')
[Trial summary]
 |-Trial ID: fe780013dda2075c6ba800e86cc51a40
 |-Score: 0.8907000025113424
 |-Best step: 0
 > Hyperparameters:
 |-learning_rate: 0.0001
 |-num_layers: 3
 |-units_0: 98
 |-units_1: 130
 |-units_10: 65
 |-units_11: 137
 |-units_12: 120
 |-units_13: 103
 |-units_14: 98
 |-units_15: 45
 |-units_16: 136
 |-units_17: 109
 |-units_2: 100
 |-units_3: 56
 |-units_4: 81
 |-units_5: 35
 |-units_6: 87
 |-units_7: 116
 |-units_8: 53
 |-units_9: 85
[Trial summary]
 |-Trial ID: 4a465da19ef82fd8a9072cc94813f51c
 |-Score: 0.8893333474795023
 |-Best step: 0
 > Hyperparameters:
 |-learning_rate: 0.0001
 |-num_layers: 7
 |-units_0: 79
 |-units_1: 85
 |-units_10: 84
 |-units_11: 70
 |-units_12: 121
 |-units_13: 107
 |-units_14: 129
 |-units_15: 148
 |-units_16: 56
 |-units_17: 123
 |-units_2: 97
 |-units_3: 77
 |-units_4: 39
 |-units_5: 91
 |-units_6: 70
 |-units_7: 110
 |-units_8: 37
 |-units_9: 57
[Trial summary]
 |-Trial ID: 59246fbda040f771a6ab9ccfc8cf72e2
 |-Score: 0.8885666529337565
 |-Best step: 0
 > Hyperparameters:
 |-learning_rate: 0.001
 |-num_layers: 3
 |-units_0: 134
 |-units_1: 90
 |-units_10: 34
 |-units_11: 113
 |-units_12: 119
 |-units_13: 36
 |-units_14: 102
 |-units_15: 91
 |-units_16: 99
 |-units_17: 144
 |-units_2: 55
 |-units_3: 49
 |-units_4: 123
 |-units_5: 77
 |-units_6: 140
 |-units_7: 141
 |-units_8: 81
 |-units_9: 69
[Trial summary]
 |-Trial ID: 414acd3219bebb7e39508aff1e4888f4
 |-Score: 0.8752666711807251
 |-Best step: 0
 > Hyperparameters:
 |-learning_rate: 0.001
 |-num_layers: 9
 |-units_0: 139
 |-units_1: 135
 |-units_10: 142
 |-units_11: 124
 |-units_12: 126
 |-units_13: 126
 |-units_14: 113
 |-units_15: 40
 |-units_16: 36
 |-units_17: 137
 |-units_2: 44
 |-units_3: 58
 |-units_4: 51
 |-units_5: 110
 |-units_6: 54
 |-units_7: 124
 |-units_8: 43
 |-units_9: 142
[Trial summary]
 |-Trial ID: c8a3ee5f9ab41ae8a4bacf077fcc68a6
 |-Score: 0.8689999977747599
 |-Best step: 0
 > Hyperparameters:
 |-learning_rate: 0.001
 |-num_layers: 12
 |-units_0: 78
 |-units_1: 100
 |-units_10: 61
 |-units_11: 125
 |-units_12: 72
 |-units_13: 40
 |-units_14: 116
 |-units_15: 90
 |-units_16: 80
 |-units_17: 142
 |-units_2: 50
 |-units_3: 94
 |-units_4: 37
 |-units_5: 135
 |-units_6: 147
 |-units_7: 68
 |-units_8: 116
 |-units_9: 122
[Trial summary]
 |-Trial ID: 9d665196db31f6639c1a8e8c38624756
 |-Score: 0.8681999842325846
 |-Best step: 0
 > Hyperparameters:
 |-learning_rate: 0.01
 |-num_layers: 17
 |-units_0: 146
 |-units_1: 132
 |-units_10: 102
 |-units_11: 46
 |-units_12: 55
 |-units_13: 77
 |-units_14: 124
 |-units_15: 99
 |-units_16: 74
 |-units_17: 137
 |-units_2: 99
 |-units_3: 143
 |-units_4: 49
 |-units_5: 33
 |-units_6: 56
 |-units_7: 45
 |-units_8: 49
 |-units_9: 80
[Trial summary]
 |-Trial ID: fb36e64a04d784bf27c7570053d01fe3
 |-Score: 0.8650000095367432
 |-Best step: 0
 > Hyperparameters:
 |-learning_rate: 0.001
 |-num_layers: 11
 |-units_0: 41
 |-units_1: 123
 |-units_10: 40
 |-units_11: 124
 |-units_12: 43
 |-units_13: 80
 |-units_14: 84
 |-units_15: 33
 |-units_16: 93
 |-units_17: 65
 |-units_2: 99
 |-units_3: 130
 |-units_4: 103
 |-units_5: 110
 |-units_6: 97
 |-units_7: 38
 |-units_8: 73
 |-units_9: 37
[Trial summary]
 |-Trial ID: 79024e28abd01e0ec160ac365921175e
 |-Score: 0.8572333256403605
 |-Best step: 0
 > Hyperparameters:
 |-learning_rate: 0.01
 |-num_layers: 17
 |-units_0: 97
 |-units_1: 111
 |-units_10: 80
 |-units_11: 148
 |-units_12: 36
 |-units_13: 48
 |-units_14: 54
 |-units_15: 84
 |-units_16: 109
 |-units_17: 54
 |-units_2: 89
 |-units_3: 53
 |-units_4: 135
 |-units_5: 41
 |-units_6: 95
 |-units_7: 57
 |-units_8: 76
 |-units_9: 104
[Trial summary]
 |-Trial ID: c2f2c32c73ff34d9be17cef6ec932da8
 |-Score: 0.8558000127474467
 |-Best step: 0
 > Hyperparameters:
 |-learning_rate: 0.001
 |-num_layers: 12
 |-units_0: 117
 |-units_1: 135
 |-units_10: 115
 |-units_11: 72
 |-units_12: 149
 |-units_13: 146
 |-units_14: 47
 |-units_15: 143
 |-units_16: 87
 |-units_17: 132
 |-units_2: 114
 |-units_3: 73
 |-units_4: 74
 |-units_5: 113
 |-units_6: 107
 |-units_7: 128
 |-units_8: 46
 |-units_9: 136
[Trial summary]
 |-Trial ID: 6ec7d10ff76cc678ae5884afef189c0a
 |-Score: 0.8537000020345052
 |-Best step: 0
 > Hyperparameters:
 |-learning_rate: 0.0001
 |-num_layers: 18
 |-units_0: 73
 |-units_1: 74
 |-units_10: 32
 |-units_11: 32
 |-units_12: 32
 |-units_13: 32
 |-units_14: 32
 |-units_15: 32
 |-units_16: 32
 |-units_17: 32
 |-units_2: 32
 |-units_3: 32
 |-units_4: 32
 |-units_5: 32
 |-units_6: 32
 |-units_7: 32
 |-units_8: 32
 |-units_9: 32

你可能感兴趣的:(NLP)