我尝试运行此 NN 但返回此错误:
ValueError:两个形状中的维度 0 必须相等,但分别是 3 和 10。形状是 [3] 和 [10]。对于 '{{node AssignAddVariableOp_2}} = AssignAddVariableOp[dtype=DT_FLOAT](AssignAddVariableOp_2/resource, Sum_2)' 输入形状:[], [10]。
def build_model(hp):
model=Sequential()
dropout = 0.2
hp_units = hp.Int('units', min_value=32, max_value=512, step=32)
hp_learning_rate = hp.Choice('learning_rate', values=[1e-2, 1e-3, 1e-4])
model.add(LSTM(units=hp_units,input_shape=(X_train.shape[1:])
,return_sequences=True))
model.add(Dropout(dropout))
model.add(BatchNormalization())
model.add(LSTM(units=hp_units, return_sequences=False))
model.add(Dropout(dropout))
model.add(BatchNormalization())
model.add(Dense(units=hp_units, activation='sigmoid'))
model.add(Dropout(rate=dropout))
model.add(Dense(10))
model.compile(optimizer=keras.optimizers.Adam(learning_rate=hp_learning_rate),
loss=keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=[tfa.metrics.F1Score(num_classes=3)])
return model
tuner = kt.Hyperband(build_model,
objective=kt.Objective('val_tfa.metrics.F1Score', direction='max'),
max_epochs = 10,
factor = 3,
directory = 'model2',
project_name= 'Hyper tuning')
stop_early = EarlyStopping(monitor='val_tfa.metrics.F1Score', patience=3)
tuner.search(X_train, y_train, epochs=50, validation_split=0.2, callbacks=[stop_early])