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

基于PyGAD遗传算法训练的Keras模型如何实现新样本预测

PyGAD训练Keras回归模型后的独立推理实现方法

按照以下步骤操作即可,全程不需要将待预测样本混入训练集,不会造成数据泄露:

  • 提取最优解对应的模型权重
    训练流程全部结束后,不需要重新训练或修改训练逻辑,直接从PyGAD训练实例中取出搜索到的最优权重向量,整形为Keras模型匹配的权重矩阵后加载到模型中即可:
    import numpy as np
    # 注意替换成你自己代码里的实例名:ga_instance是你跑完训练的PyGAD对象,keras_model是你构建的初始Keras回归模型
    best_weights_vector, best_fit, _ = ga_instance.best_solution()
    # 自动将一维权重向量转换为模型各层对应的权重形状,不需要手动计算每层维度
    keras_model.set_weights(
        ga_instance.model_weights_as_matrix(
            model=keras_model,
            weights_vector=best_weights_vector
        )
    )
    
  • 切换模型为推理状态
    权重加载完成后,关闭模型的训练属性,避免Dropout、批量归一化层在推理时使用训练逻辑计算,这一步不会改动任何权重:
    keras_model.trainable = False
    
  • 传入新样本执行预测
    你准备的待预测输入numpy.array([[0.9, 0.7, 0.85]])形状为(1,3),完全匹配模型要求的3维输入格式,直接调用预测接口即可得到结果:
    new_input = np.array([[0.9, 0.7, 0.85]])
    prediction = keras_model.predict(new_input, verbose=0)
    print(prediction)
    

避坑提示:不要在推理前重新执行模型fit()训练、不要将待预测样本拼接进训练数据集、不要复用训练阶段的适应度计算函数做预测——适应度函数是训练过程中给遗传算法迭代打分用的,推理仅需要加载最优权重的模型做前向传播即可,待预测样本全程不参与权重更新,不存在数据泄露问题。

内容的提问来源于stack exchange,提问作者ah bon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 18:57:26