Используя последовательную модель, сгенерированную следующим образом:
def generate_model():
model = Sequential()
model.add(Conv1D(64, kernel_size=10, strides=1,
activation='relu', padding='same',
input_shape=(MAXLENGTH, NAMESPACELENGTH)))
model.add(MaxPooling1D(pool_size=4, strides=2))
model.add(Conv1D(32, 3, activation='relu', padding='same'))
model.add(MaxPooling1D(pool_size=4))
model.add(Flatten())
model.add(Dense(10, activation='relu'))
model.add(Dense(1, activation='linear'))
model.compile(loss='mean_squared_error',
optimizer='adam', metrics=['mean_squared_error'])
return model
Я хочу сделать перекрестное подтверждение Kfold.Итак, я тренирую K моделей в цикле:
models = []
for ndx_train, ndx_val in kfold.split(X, y):
model = generate_model()
N_train = len(ndx_train)
X_batch = X[ndx_train]
y_batch = y[ndx_train]
model.fit(X_batch, y_batch, epochs=100, verbose=1, steps_per_epoch=10,
validation_data=(X[ndx_val], y[ndx_val]), validation_steps=100)
models.append(model)
Теперь я могу видеть, когда я хочу, чтобы каждая модель остановилась, посмотрев на результат.Т.е. когда ошибка проверки снова увеличивается.Можно ли сделать это легко с чистым tf
и с этой настройкой API более высокого уровня?Есть несколько советов, используя строчку tflearn
здесь .