但是当我称其为as
时fitted_model, history = fit_model(model, X_train_sequence_tensor,Y_train_sequence_tensor,
epochs=100, val_set=val_set, time_windows=90, scaler=scaler)
在第一个时期之后停止。它不能按要求所有100个运行。 我试图在函数调用之外调用它,并且有效。
`# Step 3.2 : Fit the model + We pass some validation for
# monitoring validation loss and metrics
# at the end of each epoch
X_val_set = val_set[X_column_list].round(2)
#X_val_set.values = scaler.transform(X_val_set.values)
X_val_set[X_val_set.columns] = scaler.transform(X_val_set[X_val_set.columns] )
X_val_sequence = get_feature_array(X_val_set , X_column_list, 90)
X_val_sequence_tensor = tf.convert_to_tensor(X_val_sequence, dtype=tf.float32)
Y_val_set = val_set[Y_column_list].round(2)
Y_val_sequence = get_feature_array(Y_val_set , Y_column_list, 90)
Y_val_sequence_tensor = tf.convert_to_tensor(Y_val_sequence, dtype=tf.float32)
training_history = cnn1d_bilstm_model.fit(X_train_sequence_tensor,Y_train_sequence_tensor, epochs=200,
# We pass some validation for
# monitoring validation loss and metrics
# at the end of each epoch
validation_data=(X_val_sequence_tensor, Y_val_sequence_tensor))
我做错了什么?
如果没有明确传递,则Python可以使用默认值,该值可能是
epochs
或其他意外值。明确传递None
epochs=epochs
也许问题是,在
def fit_model(model, X_train_sequence_tensor,Y_train_sequence_tensor, epochs, val_set, time_windows, scaler):
X_column_list = [item for item in val_set.columns.to_list() if item not in ['date', 'user', 'rank','rank_group', 'counts', 'target']]
X_val_set = val_set[X_column_list].round(2)
X_val_set[X_val_set.columns] = scaler.transform(X_val_set[X_val_set.columns] )
X_val_sequence = get_feature_array(X_val_set , X_column_list, time_windows)
X_val_sequence_tensor = tf.convert_to_tensor(X_val_sequence, dtype=tf.float32)
Y_column_list = ['target']
Y_val_set = val_set[Y_column_list].round(2)
Y_val_sequence = get_feature_array(Y_val_set , Y_column_list, time_windows)
Y_val_sequence_tensor = tf.convert_to_tensor(Y_val_sequence, dtype=tf.float32)
try:
history = model.fit(X_train_sequence_tensor,
Y_train_sequence_tensor,
epochs=epochs,
validation_data=(X_val_sequence_tensor, Y_val_sequence_tensor))
except Exception as e:
print(f"Training stopped due to an error: {e}")
return model, history
fitted_model, history = fit_model(model, X_train_sequence_tensor,Y_train_sequence_tensor, epochs=100, val_set=val_set, time_windows=90, scaler=scaler)
# Print Training History
print("Training Completed Successfully!")
函数内部,
fit_model
中的epochs
model.fit
解释为其他内容。尝试将其更改为:epochs
在此,明确指出该模型的
history = model.fit(X_train_sequence_tensor, Y_train_sequence_tensor, epochs=epochs,
validation_data=(X_val_sequence_tensor, Y_val_sequence_tensor))
参数等于您传递给函数的epochs
参数。