【问题标题】:Measuring performance for keras model being trained in batches测量批量训练的 keras 模型的性能
【发布时间】:2019-09-19 09:23:51
【问题描述】:

我有一个 keras 模型,我正在尝试使用大数据集块进行训练

for chunk in pd.read_csv(input_file, chunksize=chunk_size, usecols = FEATURE_COLUMNS, low_memory = False):

       (X_train, y_train, X_val, y_val,full_pipeline) = dataPrep.get_data(data=chunk, mean=mean, variance=variance)



       print("Clicks in Training Set =>  {} , in CV =>  {}".format(np.sum(y_train == 1),np.sum(y_val == 1)))
       print("SMS in Training Set =>  {} , in CV =>  {}".format(np.sum(y_train == 0),np.sum(y_val == 0)))

       preprocessor = full_pipeline
       model.fit(X_train, y_train, batch_size=batch_size, validation_data=(X_val, y_val), epochs=epochs, verbose=1)
       score = model.evaluate(X_val, y_val, verbose=0)

       print('Validation Metrics    :', score)

在整个数据集上训练后,有什么方法可以测量模型的 f1 分数吗?而不是每个块的性能

【问题讨论】:

    标签: python pandas validation keras deep-learning


    【解决方案1】:

    您好,在这里写下我的建议,因为我无法发表评论...

    如果我错了,请纠正我,但你可以在每个块之后得到 f1 分数,然后在训练完成后你可以得到收集的 f1 分数的平均值。

    或者,您也可以获取每个块的召回率和精度,然后在 f1 分数的最终公式中使用它们(Formular look here

    要了解如何实现 f1 分数、召回率和精度,您可以查看 here

    我希望这会有所帮助:)

    【讨论】:

    • 我不认为这是衡量性能的好方法,我试过了,但我对答案不满意
    • 很抱歉,这不是您要找的答案。我再次阅读了您的问题...如果您只想在整个模型训练完成后测量 f1 分数,您可以在循环外对验证数据集进行评估。这样你就可以得到整个模型的 f1 分数。
    猜你喜欢
    • 2018-12-06
    • 2021-05-22
    • 1970-01-01
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    • 2017-11-10
    • 2018-04-15
    • 1970-01-01
    相关资源
    最近更新 更多