• 1000 Теперь я пытаюсь приспособить свой код к формату, который мне предоставили для проекта, в котором есть предопределенный класс для хранения NN. При попытке назначить либо этот новый класс, либо свойство класса с типом оболочки KerasClassifier, возвращается из .fit () вместо типа engine.sequential.Sequential, что означает, что дальнейшие функции не будут работать.
I ожидает, что функция .fit () вернет элемент типа KerasClassifier.
Приведенный ниже код передается предварительно обработанным обучающим данным.
class Module4_Model:
def __init__(self):
self.my_model = None
def init_classifier(self):
self.my_model = KerasClassifier(build_fn = self.build_classifier,
optimizer = 'adam',
n_units = 7,
batch_size = 32,
epochs = 100)
return self.my_model
def build_classifier(self, optimizer, n_units):
self.my_model = Sequential()
self.my_model.add(Dense(units = n_units, kernel_initializer = 'uniform', activation = 'relu', input_dim = 15))
self.my_model.add(Dense(units = n_units, kernel_initializer = 'uniform', activation = 'relu'))
self.my_model.add(Dense(units = 1, kernel_initializer = 'uniform', activation = 'sigmoid'))
self.my_model.compile(optimizer = optimizer, loss = 'binary_crossentropy', metrics = ['accuracy'])
return self.my_model
def train_model(self, X_train, y_train):
history = self.my_model.fit(X_train, y_train, validation_split = 0.1)
print(type(self.my_model))
return history
my_model = Module4_Model()
my_model.init_classifier()
history = my_model.train_model(x_train_processed, y_train_processed)
Тот же код, перемещенный за пределы класса, работает как ожидается.