ValueError:两个形状中的维度 0 必须相等,但分别为 3 和 10

时间:2021-03-24 12:47:15

标签: keras deep-learning lstm recurrent-neural-network keras-tuner

我尝试运行此神经网络但返回此错误:

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])

0 个答案:

没有答案