【问题标题】:How to improve a simple Keras model如何改进一个简单的 Keras 模型
【发布时间】:2020-10-28 08:52:40
【问题描述】:

我开始使用 Keras 和那些模型,但我认为我还没有掌握所有这些。我摆弄了很多东西,但只会让情况变得更糟。我的目标是达到高于 91% 的准确度(91% 的准确度是该模型的输出)。 这是代码:

import numpy as np
import tensorflow as tf
input_size = 10
output_size = 2

hidden_layer_size = 500


model = tf.keras.Sequential([

tf.keras.layers.Dense(hidden_layer_size, activation='relu'), 
tf.keras.layers.Dense(hidden_layer_size, activation='relu'), 


tf.keras.layers.Dense(output_size, activation='softmax') # output layer
])






 model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])




 batch_size = 50


 max_epochs = 100



 early_stopping = tf.keras.callbacks.EarlyStopping(patience=5)



 model.fit(train_inputs, 
      train_targets, 
      batch_size=batch_size, 
      epochs=max_epochs,
      
      
      callbacks=[early_stopping],
      validation_data=(validation_inputs, validation_targets), 
      verbose = 2 
      )  

我不知道我是否在这里格式化了这个,我刚刚创建了这个帐户,我是这方面的初学者。

【问题讨论】:

    标签: python python-3.x tensorflow keras tensorflow2.0


    【解决方案1】:

    任何人都无法帮助您获得更高的准确性,因为它完全取决于数据和您尝试建模的问题。仅显示代码是不够的。

    我建议您先使用model.summary() 查看模型中可训练参数的层数和数量,以供您参考。我还建议您花一些时间在 Keras 文档上。

    https://github.com/fchollet/deep-learning-with-python-notebooks
    

    当您构建用于训练特定数据的 NN 架构时,可能会发生两件事 -

    1. 可能欠拟合 - 意味着模型不够复杂,无法学习数据中的模式。在这种情况下,通过增加层数和每层的大小来增加可训练参数的数量。
    2. 它可以过拟合 - 这是一个更好的方案。这意味着该模型非常复杂,以至于它在训练数据上过度拟合并且无法在测试数据上泛化。在这种情况下,您可以减少训练参数的数量和/或在密集层之间使用 dropout 层。

    【讨论】:

      猜你喜欢
      • 2017-10-30
      • 1970-01-01
      • 2020-01-22
      • 1970-01-01
      • 2018-06-21
      • 1970-01-01
      • 2021-02-04
      • 1970-01-01
      • 2023-03-08
      相关资源
      最近更新 更多