0

我在 Keras (v2.4.3) 中实现了一个多类图像分类神经网络。我想在编译和安装后评估我的模型的性能。 在此处输入图像描述 然而,在训练之后,没有关于验证过程的信息。在此处输入图像描述所以我检查了历史键和历史,发现根本没有关于验证的信息。在此处输入图像描述 在此处输入图像描述

如何显示训练模型的验证(分类)准确性?任何回应将不胜感激!

4

1 回答 1

0

所以,运行一个小例子

import tensorflow as tf
import numpy as np
from tensorflow.keras.metrics import CategoricalAccuracy, AUC


X = np.random.rand(4, 4).astype(np.float32)

y = np.array([[0, 1, 2, 3],
              [1, 1, 2, 2],
              [1, 2, 3, 3],
              [0,2,1,2]])

model = tf.keras.Sequential()

model.add(tf.keras.layers.Dense(6, activation='relu', input_dim=4))
model.add(tf.keras.layers.Dense(4, activation='softmax'))

model.compile(loss = 'categorical_crossentropy', optimizer = 'adam',
              metrics = [CategoricalAccuracy(), AUC()])

history = model.fit(X, y, epochs=20, validation_split=0.2)

表明 :

Epoch 19/20
1/1 [==============================] - 0s 28ms/step - loss: 11.0286 - categorical_accuracy: 0.0000e+00 - auc_7: 0.9091 - val_loss: 7.1460 - val_categorical_accuracy: 1.0000 - val_auc_7: 0.6667
Epoch 20/20
1/1 [==============================] - 0s 49ms/step - loss: 11.0241 - categorical_accuracy: 0.0000e+00 - auc_7: 0.9091 - val_loss: 7.1411 - val_categorical_accuracy: 1.0000 - val_auc_7: 0.6667

如果我validation_split=0.2从适合中删除,那么它只显示训练信息:

Epoch 18/20
1/1 [==============================] - 0s 974us/step - loss: 9.0478 - categorical_accuracy: 0.0000e+00 - auc_8: 0.4821
Epoch 19/20
1/1 [==============================] - 0s 2ms/step - loss: 9.0495 - categorical_accuracy: 0.0000e+00 - auc_8: 0.4821
Epoch 20/20
1/1 [==============================] - 0s 1ms/step - loss: 9.0513 - categorical_accuracy: 0.0000e+00 - auc_8: 0.4821

所以,我想这与您的验证迭代器或/和验证步骤有关。

于 2020-12-07T08:45:49.617 回答