是否有可能将sklearn流水线应用于深度学习神经网络?



是否有可能像这样应用sklearn管道进行深度学习:

clf = Pipeline(
steps=[("preprocessor", preprocessor), ("classifier", LogisticRegression())]
)
clf.fit(X_train, y_train)

如果这是可能的,那么如何去做呢?下面的代码产生了后续的错误:

def model():
ann = tf.keras.models.Sequential()
ann.add(tf.keras.layers.Dense(units=6, activation='relu'))
ann.add(tf.keras.layers.Dense(units=6, activation='relu'))
ann.add(tf.keras.layers.Dense(units=1, activation='sigmoid'))
ann.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])
return ann
clf = Pipeline(
steps = [
('pre', preprocessor),
('ann', model())
]
)
clf.fit(X_train, y_train, batch_size = 32, epochs = 100)

错误:

ValueError:管道。Fit不接受batch_size参数。您可以使用stepname__parameter格式将参数传递给管道的特定步骤,例如:Pipeline.fit(X, y, logisticregression__sample_weight=sample_weight).

要访问管道中named_step中的参数,必须使用<step_name>__<parameter_name>。例如,在您的示例中,在使用fit时必须使用ann__batch_sizeann__epochs来设置值。

最新更新