首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对于训练数据集、验证数据集和测试数据集,是否必须具有相同的类号?

对于训练数据集、验证数据集和测试数据集,是否必须具有相同的类号?
EN

Stack Overflow用户
提问于 2022-08-03 04:19:33
回答 1查看 76关注 0票数 -2

当我下载resnet模型的dataset时,数据文件显示了33个培训类和6个验证类。但是当我编译它时,它会报告类号是错误的。类似于以下代码:

代码语言:javascript
运行
复制
resnet_model = Sequential()
pretrained_model = tf.keras.applications.ResNet50(include_top=False, 
                                                  input_shape=(224,224,3),
                                                  pooling='avg', 
                                                  classes = 33, 
                                                  weights = 'imagenet')

for layer in pretrained_model.layers: 
    layer.trainable=False
resnet_model.add(pretrained_model)
resnet_model.add(Flatten())
#resnet_model.add(Dense(512,activation='relu'))
resnet_model.add(Dense(33,activation='softmax'))
resnet_model.compile(optimizer=Adam(learning_rate=0.001),loss='categorical_crossentropy',metrics=['accuracy'])
epochs = 3
history= resnet_model.fit(
        trains_ds,
        validation_data=val_ds,
        epochs=epochs)

错误显示:形状(无,33)和(无,6)不兼容。

是否必须有相同的培训数据集和验证数据集的类号?如果我有33个类用于培训,6个类用于验证,我需要为验证数据集再创建27个类图片。那我就可以装了,对吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-03 05:35:04

是的,你必须拥有相同的“类数”,或者更恰当地说,标签的一次热编码必须具有相同的形状。在这种情况下,(None, 33)

为了理解为什么,让我们稍微偏离一点-热编码。这是一个将分类变量(您的标签0, 1, 2, ..., 32)转换成另一种形式的过程,更适合于ML算法。

示例:为了简单起见,让我们假设您只有4个类。您的数据集可能有以下标签:0, 1, 2, 3。使用一次热编码,它被创建为除1以外的所有零的形状4的向量,这样它就可以对标签进行编码。在这种情况下:

代码语言:javascript
运行
复制
0 -> [1 0 0 0]
1 -> [0 1 0 0]
2 -> [0 0 1 0]
3 -> [0 0 0 1]

现在让我们回到你的案子。由于网络实质上无法处理不同的形状,所以网络会正确地产生错误。然而,也有一个逻辑的原因,这是不允许的。含糊不清如果我们编码一个标签,例如标签2在33个类或6个类上进行一次热编码,矢量就会发生变化。但是,网络如何能够匹配这两个向量呢?你怎么知道你指的是同一个班?

还有另一个需要考虑的方面,为什么要在一组减少的课程中验证您的培训?验证的目的是监视您的培训在不影响培训的一组不同图像上的性能。但是,如果您使用一组狭窄的类来训练类,那么最终您将只验证该子集,而完全忽略了其他部分。

所以,要回答这个问题,你可以用你目前的图像进行验证,修改一次热编码,使其与火车的形状相同,但这没有多大意义。建议引入来自所有类的图像。

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

https://stackoverflow.com/questions/73216253

复制
相关文章

相似问题

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