Python 训练神经网络会给出多重精度,然后数量开始减少,精度停滞

Python 训练神经网络会给出多重精度,然后数量开始减少,精度停滞,python,tensorflow,machine-learning,keras,neural-network,Python,Tensorflow,Machine Learning,Keras,Neural Network,我试着训练我的模型,当模型训练时,多个精度被打印出来,然后随着训练在同一时期的进展被删除 我在新时代看到3个ETA,而它应该只有1个 而且训练的准确度也没有提高。我已经尝试了15个阶段,甚至训练的准确度也保持不变 model = tf.keras.models.Sequential([tf.keras.layers.Conv2D(64,kernel_size = (3,3), input_shape=(X_train.shape[1:]),activation = 'relu'),

我试着训练我的模型,当模型训练时,多个精度被打印出来,然后随着训练在同一时期的进展被删除

我在新时代看到3个ETA,而它应该只有1个

而且训练的准确度也没有提高。我已经尝试了15个阶段,甚至训练的准确度也保持不变

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)

一,。由于正在处理多个批次,您将看到多个精度。所有这些都将在稍后合并。别担心。这是一个正常的过程。但是,如果您还想了解更多,请查看tensorflow多重处理和反向传播

二,。这取决于你的数据。要提高精度,您可以尝试以下操作:

  • 预处理您的数据

  • 尝试使用增广

  • 也许您的数据需要更复杂的体系结构。尝试再添加几层。我会先尝试删除掉图层


  • 还请尝试在15-20个时期内以更高的学习率培训相同的架构。如果仍然没有发现差异,请尝试上面提到的方法。

    很多次,它们不会合并。有问题吗?不,没问题。在后端,它正在被合并,但控制台并没有被清除,这很好。