首页 > 解决方案 > 训练神经网络给出多种准确度,然后数量开始减少,准确度停滞不前

问题描述

我正在尝试训练我的模型,并且在模型正在训练时,会打印多个准确度,然后随着同一时期的训练进行而被删除。在此处输入图像描述

我在新时代看到了 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)

标签: pythontensorflowmachine-learningkerasneural-network

解决方案


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

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

  1. 预处理您的数据。

  2. 尝试使用增强

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

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


推荐阅读