Python 如何改为sigmoid学习多标签分类

Python 如何改为sigmoid学习多标签分类,python,machine-learning,softmax,activation-function,sigmoid,Python,Machine Learning,Softmax,Activation Function,Sigmoid,我正在尝试使用'inception resnet v2.py'进行多标签分类 我用了乙状结肠,但效果不好 你知道在哪里换车吗 “train\u image\u classifier.py”已更改为sigmoid,但效果与使用softmax一样好 Car [0.99] 4 wheel drive [0.03] color red [0.009] 我是否必须从“net”文件夹中的“inception resnet v2.py”更改它 如果把一个红色和四轮驱动汽车的图像,这将是很好的,如果它出来像

我正在尝试使用
'inception resnet v2.py'
进行多标签分类

我用了乙状结肠,但效果不好

你知道在哪里换车吗

“train\u image\u classifier.py”
已更改为sigmoid,但效果与使用softmax一样好

Car [0.99]
4 wheel drive [0.03]
color red [0.009]
我是否必须从“net”文件夹中的
“inception resnet v2.py”
更改它

如果把一个红色和四轮驱动汽车的图像,这将是很好的,如果它出来像这样,但它不是

Car [0.99]
4 wheel drive [0.99]
color red [0.99]
事实上,每个人都猜对了,但结果却像是在使用softmax

Car [0.99]
4 wheel drive [0.03]
color red [0.009]

根据“多标签”的类型,有一些可能的选择

如果“多标签”的可能重叠部分是不同相互独立的标签集(颜色、形状等)的组合,则分别为这些标签集创建softmax输出层将是一件好事


如果不幸无法分割标签,则可能需要检查并更改损失函数:对于softmax,它通常是交叉熵,这对sigmoid不起作用。

它被更改为sigmaid,因为它不是相互独立的,但结果与softmax相同。我能知道我必须修改哪一部分吗?@AZDDKKS 1。根据你的例子,“不相互独立”并不意味着它不能被划分为不同的子集,你能给我们完整的标签列表吗?2.我只是粗略地看了一下代码,是的,输出层的定义似乎在第475行,仅仅改变损耗函数是不够的。我只是照着这个例子。文件夹标签结构通过“down\u load\u and\u convert.py”更改为tfrecord,例如~/car\u photos/red\u colors/photos1.jpg~/car\u photos/red\u colors/photos2.jpg~/car_photos/4轮驱动/photos3.jpg~/car_photos/4轮驱动/photos4.jpg~/car_photos/后轮驱动/photos5.jpg~/car_photos/后轮驱动/photos6.jpg 2。我不仅修复了损失,我还将输出层更改为sigmaid,但它仍然像SoftMaxi,我不是“inception v2”。我使用的是“inception resnet v2”。我以前也遇到过类似的问题,我的解决方案是找到包含n个标签的最小元素标签集,然后用一个输出层同时训练n个预测器。每个预测器只预测一个标签,所有预测标签的组合就是结果。或者你可以试试分类链。