keras CNN的损失和价值损失

keras CNN的损失和价值损失,keras,conv-neural-network,loss-function,Keras,Conv Neural Network,Loss Function,我有一个160类160k图像的数据集,我试图用CNN对它们进行分类。对20个时代的120k图像进行训练,我从loss~4.9和val_loss~4.6开始,经过20个时代后,这两种图像分别提高到3.3和3.2左右。我真的试图阅读Keras的文档并理解这意味着什么,但我做不到,所以我想问是否有人能在我的模型背景下向我解释这对我的模型意味着什么。我的意思是损失分数代表什么?它对模型说了什么 num_classes = 154 batch_size = 64 input_shape = (50,50,

我有一个160类160k图像的数据集,我试图用CNN对它们进行分类。对20个时代的120k图像进行训练,我从loss~4.9和val_loss~4.6开始,经过20个时代后,这两种图像分别提高到3.3和3.2左右。我真的试图阅读Keras的文档并理解这意味着什么,但我做不到,所以我想问是否有人能在我的模型背景下向我解释这对我的模型意味着什么。我的意思是损失分数代表什么?它对模型说了什么

num_classes = 154
batch_size = 64
input_shape = (50,50,3)
epochs = 20

X, y = load_data()

# input image dimensions
img_rows, img_cols = 50, 50

x_train = x_train.astype('float32')
x_test = x_test.astype('float32')
x_train /= 255
x_test /= 255

# convert class vectors to binary class matrices
y_train = keras.utils.to_categorical(y_train, num_classes)
y_test = keras.utils.to_categorical(y_test, num_classes)

model = Sequential()
model.add(Conv2D(64, kernel_size=(5, 5),
                 activation='relu',
                 padding = 'same',
                 input_shape=input_shape))
model.add(Conv2D(128, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(3, 3)))
model.add(Dropout(0.20))
model.add(Conv2D(128, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(num_classes, activation='softmax'))

model.compile(loss=keras.losses.categorical_crossentropy,
              optimizer=keras.optimizers.Adadelta(),
              metrics=['accuracy'])

首先,我认为在CNN上在线观看一些教程会有所帮助。基本上,你希望你的损失随着训练时期的延长而减少,这就是你在案例中观察到的情况。通常,我们会观察这两种损失在整个训练期间是如何演变的。观察序列和验证损失是如何变化的,有助于我们了解模型是否过度拟合。您可以查看链接以获取基本解释,以检测过度装配

理想情况下,您希望通过迭代减少培训和测试损失。它是对模型在分类中所犯错误的一种度量,随着准确度的提高,您预计损失会减少