【发布时间】:2021-11-20 05:22:10
【问题描述】:
我有一个基本的分类问题; 2 个分类 0 或 1 的类。我已经使用 Keras VGG16 训练了我的模型,但是如何计算正确标签的数量?还是标签 0 下所有图像的数量?
假设我的模型应该区分猫和狗,如何计算模型预测的验证集中有多少正确标记的猫?我确实有准确性,但我需要访问计数。
这是我的模型:
#base_mode= VGG16()
model = tf.keras.models.Sequential()
#model.add(base_model)
model.add(tf.keras.layers.Convolution2D(16,4,3, input_shape= (32,32,3),activation = 'relu'))
model.add(tf.keras.layers.MaxPooling2D(pool_size = (2,2)))
model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dropout(0.2))
model.add(tf.keras.layers.Dense(32, activation = 'relu'))
model.add(tf.keras.layers.Dense(1, activation='sigmoid'))
model.compile(optimizer="Adam", loss="binary_crossentropy" , metrics=['accuracy'])
epochs = 50
history = model.fit(x=train_ds, y=train_lb , epochs=epochs, validation_data= (test_ds, test_lb) )
train_lb 和 test_lb 具有训练/测试数据集的对应标签,它是一个包含 0 或 1 的数组。例如,train_ds[0] 的标签将是 train_lb[0]
【问题讨论】:
-
如果不知道您的
train_lb和test_lb的详细信息,就无法回答这个问题;您在此处发布的模型结构在很大程度上与您的要求无关。 -
train_lb和test_lb具有训练/测试数据集的对应标签,它是一个包含 0 或 1 的数组。例如,train_ds[0]的标签将是train_lb[0]跨度> -
我明白了,这不是我评论的内容;我所说的是 - 如果您对如何从数据中准确获取标签有疑问,请将您的帖子重点放在 数据 上,而不是(不相关的)模型架构上。
-
我的标签没有任何问题,模型运行良好,准确率达到 93%。我的问题是关于训练这个模型本身和准确性报告之后的问题。我想计算模型的实际输出。我已经知道输入,但我不知道丢失了什么。在我的测试数据集中,我有 100 个标签 0 的数据,如何知道我的模型预测了多少标签 0?
-
正如我所暗示的,您的 exact 问题非常不清楚。您帖子中的模型预测代码在哪里?您是否在查看预测标签或首先获得预测本身时遇到问题?在这两种情况下,显示模型结构都是无关紧要的(第三次......)。
标签: python tensorflow machine-learning computer-vision classification