Machine learning Keras,自定义图像数据集,带百分比的二进制结果

Machine learning Keras,自定义图像数据集,带百分比的二进制结果,machine-learning,tensorflow,keras,Machine Learning,Tensorflow,Keras,我有两大组图片。每个图像都有一个附加百分比。我用这些图像训练了一个模型,它返回一个二进制结果,0或1。我想返回机器对0或1的确定程度的百分比 举个例子,假设它们是猫的图像。我还有一个关于“猫”有多大的百分比(100%非常大,0%非常小)。我想让模特告诉我“这是一只78%大的猫” 我当前的数据集基于两个文件夹(大猫和小猫)。第一个数字是图像的数字(例如,1到1000)。第二个数字是猫有多大的百分比: ../big_cats cat1_78.png cat2_97.png c

我有两大组图片。每个图像都有一个附加百分比。我用这些图像训练了一个模型,它返回一个二进制结果,0或1。我想返回机器对0或1的确定程度的百分比

举个例子,假设它们是猫的图像。我还有一个关于“猫”有多大的百分比(100%非常大,0%非常小)。我想让模特告诉我“这是一只78%大的猫”

我当前的数据集基于两个文件夹(大猫和小猫)。第一个数字是图像的数字(例如,1到1000)。第二个数字是猫有多大的百分比:

../big_cats
    cat1_78.png
    cat2_97.png
    cat3_67.png
    ...
../small_cats
    cat1_12.png
    cat2_9.png
    cat3_24.png
    ...
所以现在我不使用百分比,我得到0或1(大或小),但我的目标是模型用它告诉我“这是一只67%的大猫”,其中50%是中型猫,100%是最大的猫,0%是最小的猫

我试过使用
softmax
categorical\u cassentry
,但这只是告诉我们在猫大或小的位置(如果我理解正确的话)二元决策的估计精度

我的问题是:如何准备数据集以获得该结果?如何创建数据序列和验证以读取图像名称中的该百分比?有什么教程我可以遵循吗?我需要使用
Keras+Tensorflow

您应该为输出预测层使用稠密(1)或(2)和softmax函数,因为您想知道图片是否为cat(两类)。这意味着您需要将标签重塑为(num_pic,2),其中第一列指示图片是否为猫,第二列指示图片是否为猫;或者(num_pic,1)仅表示它是否是一只猫


这样,两个(或一个)输出神经元中的每一个都将是一个介于0和1之间的数字,可以用作概率。

非常感谢您的回答。我现在使用的是
softmax
categorical\u cassentry
x=densite(2,activation='softmax',name='predictions')(x)my\u model=model(input=input,output=x)my\u model.compile(optimizer='sgd',loss='categorical\u crossentropy',metrics=['acity']))
我将在完成模型培训并获得一些有价值的反馈后进行更新。再次感谢您。您好@yilun zhang,据我所知,您的答案在某种程度上是正确的,但对于我的申请来说,这不是正确的答案。我如何根据同一班级的学生的素质做出预测?不管它是不是猫,但它有多大,100%非常大,0%非常小,我有10000张猫的照片,每一个百分比?对不起,如果我的问题不够清楚,它已经帮助我理解了很多东西。@Aramuss在这种情况下,这是一个完全不同的机器学习问题。对于这一个,您将需要正确的标签(图像中猫的大小)来训练一种回归模型,以便预测猫的大小。这不再是一个分类问题了。我已经更新了这个问题,希望有更清晰的例子。是的,你是对的,看起来不再是分类问题了。你能告诉我搜索什么,或者有人做类似的事情吗?我在研究中找不到任何东西。再次感谢您的帮助@aramusss基本上,为了将其视为回归问题,需要更改softmax函数和损失函数。您可以搜索“keras回归”,您可以通过以下示例了解任务。