首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >keras CNN的Loss & val_loss

keras CNN的Loss & val_loss
EN

Stack Overflow用户
提问于 2018-02-10 06:05:15
回答 1查看 1.1K关注 0票数 0

我有一个包含160个类别的160k图像的数据集,我正在尝试使用CNN对它们进行分类。在120k图像上进行20个时期的训练,开始时损失约4.9,val_loss约为4.6,经过20个时期后,损失分别提高到3.3和3.2。我真的试图阅读Keras的文档,并理解这意味着什么,但我不能,所以我问是否有人可以在我的模型的上下文中向我解释这对我的模型意味着什么。我的意思是损失分数代表了什么?它对这个模型说了什么?

代码语言:javascript
复制
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'])
EN

回答 1

Stack Overflow用户

发布于 2018-02-10 11:24:50

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

理想情况下,你会希望你的训练和测试损失都随着迭代而减少。它是模型在分类中犯下的错误的度量(随着准确率的增加,您预计损失将会减少)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48714786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档