python keras www.example.com函数打印的准确度是否model.fit与验证集或训练集相关?

ohfgkhjo  于 2022-12-17  发布在  Python
关注(0)|答案(4)|浏览(170)

我正在使用tf.Keras训练CNN模型,我将训练集分为训练集和验证集,我想可视化验证集的准确性。
下面是代码,请告诉我打印的准确性是否与训练集或验证集有关?

model.compile(optimizer=opt, loss='categorical_crossentropy', metrics=['accuracy'])
model.fit( x= X_train.reshape(X_train.shape[0],280,252,1),
           y= train_Y_one_hot,           
           epochs=20,
           batch_size=64,
           validation_data=(X_val.reshape(X_val.shape[0],280,252,1),val_Y_one_hot),
           verbose=1)

输出:在103658个样本上进行训练,在25915个样本上进行确认时间点1/20 28288/103658 [=======〉...................] - ETA:40:01 -损失:0.5309 -准确度:0.9063

0s7z1bwu

0s7z1bwu1#

如果您想将精度可视化为图,您可以获得每个历元的验证精度和损耗列表,如下所示(我只运行了5个历元,因此每个val_accuracyval_loss都有5个值)

model.fit(x_train, y_train, epochs=5,validation_data=(x_test,y_test))
model.evaluate(x_test, y_test)

# access validation accuracy for each epoch
acc = model.history.history['val_accuracy']
print(acc) # [0.9573, 0.9696, 0.9754, 0.9762, 0.9784]

# access validation loss for each epoch
loss_val = model.history.history['val_loss']
print(loss_val) # [0.13892182569280268, 0.10223265058882534, 0.08262962606661022, 0.08026109958332964, 0.07378015918848105]
ewm0tg9j

ewm0tg9j2#

这是训练损失和准确性。你会得到的结果验证集在结束的历元。

vlju58qv

vlju58qv3#

模型的准确性完全取决于训练数据、对训练数据进行的预处理以及分类器的类型和参数。

0lvr5msh

0lvr5msh4#

访问培训准确度和验证准确度

accuracy = model.history.history["accuracy"]
val_accuracy = model.history.history["val_accuracy"]

访问培训损失和验证损失

loss = model.history.history["loss"]
val_loss = model.history.history["val_loss"]

绘制训练精度和验证精度

plt.plot(accuracy, label="accuracy")
plt.plot(val_accuracy, label="validation accuracy")
plt.ylabel("Accuracy")
plt.xlabel("Epoch")
plt.legend()
plt.show()

绘制培训损失和验证损失

plt.plot(loss, label="loss")
plt.plot(val_loss, label="validation loss")
plt.ylabel("Loss")
plt.xlabel("Epoch")
plt.legend()
plt.show()

相关问题