【问题标题】:How to reduce the error of tensorflow model?如何减少tensorflow模型的误差?
【发布时间】:2020-09-28 20:48:59
【问题描述】:

谁能建议如何改进模型?

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

数据既标准化又导出为正值

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

链接到我的 keras 模型和现成的 sklearn 模型的所有代码和结果:

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

【问题讨论】:

  • 您需要在问题中添加一些细节;没有关于实际数据、使用的错误术语、sklearn 代码或实施的训练/测试代码的信息。您还应该删除图像并替换为代码和输出。
  • 我想出了))我将附上完整代码的链接。我在哪里可以看到我在 Keras Tensor 流上的模型有多糟糕(((

标签: python tensorflow


【解决方案1】:
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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-16
    • 1970-01-01
    • 2021-04-14
    • 1970-01-01
    • 2013-11-26
    • 2011-01-22
    • 1970-01-01
    相关资源
    最近更新 更多