如何减少tensorflow模型的误差?

2024-09-30 18:31:33 发布

您现在位置:Python中文网/ 问答频道 /正文

谁能建议如何改进模型

sklearn LinearRegression()中的常规模型预测的温度误差为1,而手动在tensorflow上构建的模型的误差不会低于5.5,无论激活函数、层数或年代如何

这些数据被标准化并导出为正值

def createModelG(inputShape, dropout, initW):
    model = Sequential()
    model.add(Dense(4096,
        kernel_regularizer=keras.regularizers.l2(0.001),
        activation = 'elu',
        kernel_initializer = initW,
        input_dim = inputShape
    )) 
    model.add(Dropout(dropout))

    #for i in range(3):
    #    model.add(Dense(512, activation = 'relu'))
    #    model.add(Dropout(dropout))

    model.add(Dense(1024,
        kernel_regularizer=keras.regularizers.l2(0.001),
        activation = 'elu'
    ))
    model.add(Dropout(dropout))
    model.add(Dense(1))
    model.compile(
        loss = 'mae',
        optimizer = tf.keras.optimizers.Adam(learning_rate = 0.0000005),
        metrics = ['mse', 'mae']
    )
    return model


startModelTest = crossValdation(createModelG, trainDataXS, 0.01, 'truncated_normal', 'VancouverT', PrintDot())
modelTest = startModelTest[1]
hist = startModelTest[2]
startModelTest[0]

    loss    mse mae val_loss    val_mse val_mae
0   22.6255 737.889 21.3214 7.32549 55.3201 6.02149
1   21.6446 677.313 20.3387 7.83092 64.0345 6.5251
2   21.1013 646.857 19.7952 7.00224 49.6842 5.69622
3   22.3446 712.008 21.0386 8.07596 68.7968 6.77008
4   24.2565 874.824 22.9531 7.71605 65.3973 6.41274
0   --- --- --- --- --- ---
0   22.3945

链接到my keras模型和ready sklearn模型的所有代码和结果:

https://www.kaggle.com/alihanurumov/weather-prediction-network


Tags: 模型addmodelvalsklearnactivationkerneldropout
1条回答
网友
1楼 · 发布于 2024-09-30 18:31:33
def createModelG(inputShape):
    model = Sequential()
    model.add(Dense(4096, input_dim = inputShape, 
                    kernel_initializer = initializers.glorot_uniform(seed = 1), 
                    kernel_regularizer = keras.regularizers.l2(0.01), activation = "relu")) 
    model.add(Dense(2048, 
                    kernel_initializer = initializers.glorot_uniform(seed = 1), activation = "relu"))
    model.add(Dense(2048, 
                    kernel_initializer = initializers.glorot_uniform(seed = 1), activation = "relu"))
    model.add(Dense(1024, 
                    kernel_initializer = initializers.glorot_uniform(seed = 1), activation = "relu"))
    model.add(Dense(1024, 
                    kernel_initializer = initializers.glorot_uniform(seed = 1), activation = "relu"))
    model.add(layers.Dropout(0.05))
    model.add(Dense(1))
    optimizer = tf.keras.optimizers.Adam(learning_rate = 0.000001)
    model.compile(loss = 'mse', optimizer = optimizer, metrics = ["mse", "mae"])
    return model

相关问题 更多 >