Python 训练神经网络会给出多重精度,然后数量开始减少,精度停滞
我试着训练我的模型,当模型训练时,多个精度被打印出来,然后随着训练在同一时期的进展被删除 我在新时代看到3个ETA,而它应该只有1个 而且训练的准确度也没有提高。我已经尝试了15个阶段,甚至训练的准确度也保持不变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'),
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个时期内以更高的学习率培训相同的架构。如果仍然没有发现差异,请尝试上面提到的方法。很多次,它们不会合并。有问题吗?不,没问题。在后端,它正在被合并,但控制台并没有被清除,这很好。