我正在运行下面的代码,它工作正常,results_summary()
函数状态如下:
输入单位:100
n_GRU_layers: 2
GRU_units: 35
n_Dense_layers: 0
GRU_0_units:185
GRU_1_units:160
GRU_2_units:115
Dense_0_units: 10
GRU_3_units:180
Dense_1_units: 185
Dense_2_units: 140
Dense_3_units: 165
我的问题是为什么它告诉 n_GRU_layers : 2
ie (3 GRU 层 0,1,2) 但它显示了四层,第四层在 ( GRU_3_units: 180
) 上。
同样它告诉 n_Dense_layers: 0
ie(一个密集层),但又是四个
Dense_0_units: 10
Dense_1_units: 185
Dense_2_units: 140
Dense_3_units: 165
def build_model(hp):
model = Sequential()
model.add(GRU(hp.Int('input_units',
min_value=10,
max_value=200,
step=5),return_sequences=True, input_shape=(n_steps, n_features)))
model.add(Activation('relu'))
for i in range(hp.Int('n_GRU_layers', 0, 4)): # adding variation of layers.
model.add(GRU(hp.Int(f'GRU_{i}_units',
min_value=10,
max_value=200,
step=5),return_sequences=True))
model.add(Activation('relu'))
model.add(GRU(hp.Int(f'GRU_units',
min_value=10,
max_value=50,
step=5), activation='relu'))
for i in range(hp.Int('n_Dense_layers', 0, 4)): # adding variation of layers.
model.add(Dense(hp.Int(f'Dense_{i}_units',
min_value=10,
max_value=200,
step=5)))
model.add(Activation('relu'))
model.add(Dense(5, activation='softmax'))
model.compile(optimizer="adam",
loss="categorical_crossentropy",
metrics=["accuracy"])
return model
tuner = RandomSearch(
build_model,
objective='val_accuracy',
max_trials=5,
executions_per_trial=3,
directory=LOG_DIR)
tuner.search(x=x_train,
y=y_train,
verbose=2,
epochs=500,
#callbacks=[tensorboard],
validation_data=(x_test, y_test))