You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义fit_model函数训练模型时仅运行1个epoch即停止,无法完成指定的100轮训练

自定义fit_model函数训练模型时仅运行1个epoch即停止,无法完成指定的100轮训练

你遇到的问题核心是Keras的model.fit参数传递方式错误,导致epochs参数没有被正确识别,进而只执行了默认的1轮训练。

问题根源分析

先看你fit_model函数里调用model.fit的代码:

history = model.fit(X_train_sequence_tensor,Y_train_sequence_tensor, epochs, 
                    validation_data=(X_val_sequence_tensor, Y_val_sequence_tensor))

Keras的model.fit方法签名中,前三个位置参数是x、y、batch_size,而epochs是需要通过关键字参数指定的(默认值为1)。你这里把epochs作为第三个位置参数传入,相当于把你设置的100当成了batch_size,而训练轮数epochs用了默认值1,所以模型只跑1个epoch就停止了。

而你单独执行代码时,明确写了epochs=200(关键字参数),Keras能正确识别训练轮数,因此可以正常跑完所有epoch。

解决方案

修改fit_model函数中model.fit的调用,将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)

                    
    history = model.fit(X_train_sequence_tensor, Y_train_sequence_tensor, 
                        epochs=epochs,  # 修正为关键字参数传递
                        validation_data=(X_val_sequence_tensor, Y_val_sequence_tensor))
    return model, history

修改后再调用fit_model函数,传入的epochs=100就会被正确识别,模型就能完整跑完100个epoch了。

备注:内容来源于stack exchange,提问作者Carlo Allocca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 11:00:29