Решаю задачу классификации текста при помощи сверточных сетей.
Pipeline состоит из двух шагов:
1) препроцессор MyPreprocessor, который разбивает текст на слова, определяет словарь и заменяет слова в тексте на порядковые индексы в словаре
2) классификатор MyClassifier, который собственно обучает сеть.
Однако у этих двух шагов есть общий набор параметров (размер словаря max_features и макс. допустимая длина фразы max_len). Что надо сделать, чтобы они менялись синхронно?
Условный код:
clf = Pipeline([('vect', MyPreprocessor()),
('clf', MyClassifier())])}
params = {'vect__max_features': [5000, 10000],
'vect__max_len': [64, 96, 128],
'clf__max_features': [5000, 10000],
'clf__max_len': [64, 96, 128]}
gs_clf = GridSearchCV(clf, params, n_jobs=-1)
gs_clf = gs_clf.fit(X_train, Y_train)