【问题标题】:Training neural network gives multiple accuracies and then the number starts decreasing and accuracy is stagnant训练神经网络给出多种准确度,然后数量开始减少,准确度停滞不前
【发布时间】:2020-06-22 22:46:44
【问题描述】:

我试图训练我的模型,在模型训练时,会打印多个准确度,然后随着同一时期的训练进行而删除。

我在新纪元中看到了 3 个 ETA,而它应该只有 1 个。

而且训练精度没有提高。我已经尝试了 15 个 epoch,甚至训练精度保持不变。

model = tf.keras.models.Sequential([tf.keras.layers.Conv2D(64,kernel_size = (3,3), input_shape=(X_train.shape[1:]),activation = 'relu'),
                                tf.keras.layers.Conv2D(64,kernel_size = (3,3),activation = 'relu'),
                              tf.keras.layers.MaxPooling2D(pool_size = (2,2), strides = (2,2)),
                              tf.keras.layers.Dropout(0.2),
                              
                                                      
                              tf.keras.layers.Conv2D(64,kernel_size = (3,3),activation = 'relu'),
                              tf.keras.layers.Conv2D(64,kernel_size = (3,3),activation = 'relu'),
                              tf.keras.layers.MaxPooling2D(pool_size = (2,2), strides = (2,2)),
                              tf.keras.layers.Dropout(0.2),
                               
                              tf.keras.layers.Conv2D(128,kernel_size = (3,3),activation = 'relu'),
                              tf.keras.layers.Conv2D(128,kernel_size = (3,3),activation = 'relu'),
                              tf.keras.layers.MaxPooling2D(pool_size = (2,2), strides = (2,2)),
                                
                                tf.keras.layers.Flatten(),
                               
                               tf.keras.layers.Dense(8*128, activation = 'relu'),
                               tf.keras.layers.Dropout(0.2),
                                tf.keras.layers.Dense(8*128, activation = 'relu'),
                               tf.keras.layers.Dropout(0.2),
                               tf.keras.layers.Dense(7, activation = 'softmax')])

model.compile( optimizer = 'SGD', loss = tf.keras.losses.categorical_crossentropy, metrics = ['accuracy'])

model.fit(X_train, y_train, epochs = 2, verbose = 1, shuffle = True, batch_size = 64, validation_split=0.05)

【问题讨论】:

    标签: python tensorflow machine-learning keras neural-network


    【解决方案1】:

    我。您会看到多重准确性,因为正在处理多个批次。所有这些都在以后合并。别担心。这是一个正常的过程。但如果你还想了解更多,可以看看 tensorflow 多处理和反向传播。

    二。这取决于您的数据。为了提高准确性,您可以尝试以下操作:

    1. 预处理您的数据。

    2. 尝试使用增强

    3. 也许您的数据需要更复杂的架构。尝试添加更多层。我会先尝试删除 dropout 层。

    还请尝试以更高的学习率训练相同的架构 15-20 个 epoch。如果您仍然看不出有什么不同,请尝试上述方法。

    【讨论】:

    • 很多时候他们不合并。有问题吗?
    • 不,这不是问题。在后端,它正在被合并,但控制台没有被清除,这很好。
    猜你喜欢
    • 1970-01-01
    • 2017-11-12
    • 1970-01-01
    • 2017-07-05
    • 2020-08-11
    • 2019-08-07
    • 2018-06-11
    • 2019-04-27
    • 2018-06-08
    相关资源
    最近更新 更多