【发布时间】:2019-01-07 06:33:18
【问题描述】:
我是机器学习的新手,所以在回答之前请记住这一点。 我在尝试使用 CNTK 和 ResNet 模型在工作台中训练神经网络时遇到了挑战。 我遵循了 azure 提供的本教程 [1]https://docs.microsoft.com/en-us/azure/machine-learning/desktop-workbench/scenario-image-classification-using-cntk
我的第一个数据集是 ImageNet 的一个子集,由 900 张图像组成,有 4 个不同类别的汽车、公共汽车、货车和卡车。之后,我使用了下面链接中提供的数据集的一个子集。 [2]http://podoce.dinf.usherbrooke.ca/challenge/dataset/
我使用了数据集的 9000 张图像,将其平均分为四个不同的类别,与 ImageNet 相同,然后开始训练我的网络。
我使用的分类器是具有以下配置的 DNN 分类器:
rf_pretrainedModelFilename = "ResNet_50.model"
rf_inputResoluton = 224
rf_dropoutRate = 0.5
rf_mbSize = 10
rf_maxEpochs = 30
rf_maxTrainImages = float('inf')
rf_lrPerMb = [0.01] * 10 + [0.001] * 10 + [0.0001]
rf_momentumPerMb = 0.9
rf_l2RegWeight = 0.0005
rf_boFreezeWeights = False
rf_boBalanceTrainingSet = False images
训练模型后,我得到了 96.80% 的总体准确率,所有类别的准确率 > 92%。一切都很好,但是当我测试其他各种测试图像时,我的置信度得分是最高的 12.9895。我得到一个像这样返回的 JSON 对象: 图片分类为“巴士”,置信度得分为 12.9895。
{\"score\": \"12.9895\", \"Id2Labels\": \"{0: 'Bus', 1: 'Truck', 2: '
Car', 3: 'Van'}\", \"label\": \"Bus\", \"executionTimeMs\": \"128.749\",
\"allScores\": \"[ 12.98949814 3.51014233 -6.96435881 -6.89878178]\"}"
- 值 12.9895 必须意味着图像是公共汽车的 12.9895% 可能性,对吗?为什么它不作为 0 和 1 之间的值返回?如果我错了,请纠正我,因为我确实对机器学习中用于同一事物的各种术语感到困惑。
- 为什么会有负值,我以为激活函数会处理负值?
- 我应该包含更大的数据集还是更好的图像质量来提高我的分数?
- 对于如何提高我的分数还有其他建议吗?
提到的两个数据集上的得分都较低(来自 ImageNet 和 MIO 的子集)。 衷心感谢您抽出宝贵时间回答这些问题。
【问题讨论】:
标签: python azure azure-machine-learning-studio cntk