keras中不同培训课程的验证精度不同
我在Mnist上训练了一个keras模型,保持训练和模型超参数相同。培训和验证数据完全相同。在不同的训练课程中,我得到了五种不同的准确度——0.71、0.62、0.59、0.52、0.46。该模型每次从零开始训练8个时代 代码如下:keras中不同培训课程的验证精度不同,keras,neural-network,hyperparameters,Keras,Neural Network,Hyperparameters,我在Mnist上训练了一个keras模型,保持训练和模型超参数相同。培训和验证数据完全相同。在不同的训练课程中,我得到了五种不同的准确度——0.71、0.62、0.59、0.52、0.46。该模型每次从零开始训练8个时代 代码如下: def train(): model = Sequential() model.add(Dense(32, input_dim=784)) model.add(Dense(10, activation="softmax")) mode
def train():
model = Sequential()
model.add(Dense(32, input_dim=784))
model.add(Dense(10, activation="softmax"))
model.compile(loss='categorical_crossentropy',
optimizer='adam',
metrics=['accuracy'])
model.fit(x_train, y_train, batch_size=32, epochs=8, verbose=0)
results = model.evaluate(x_test, y_test, verbose=0)
print(results[1])
for i in range(5):
print(i)
train()
结果:
0
2019-01-23 13:26:54.475110: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
0.7192
1
0.6223
2
0.5976
3
0.5223
4
0.4624
这可能只是因为模型的权重每次都是随机生成的。假设,我训练了两个具有相同数据和超参数的模型。由于它们最初具有不同的权重,因此它们的损失和精度会有所不同。但是,经过一定数量的时间之后,它们都会收敛到一个相同的点,在这个点上,两个模型的精度和损失似乎相等。这一点可能是损失的最小值,因为数据是相同的。否则,这可能是两个模型获得相同收敛路径的点 在你的例子中,也许更多的历代训练会给所有模型带来相同的损失和准确性 看见