Python 使用PyTorch的多标签、多类图像分类器(ConvNet)
我正在尝试用PyTorch实现一个图像分类器(CNN/ConvNet),我想从csv文件中读取标签。我有4个不同的类,一个图像可能属于多个类 我已经通读了和,但没有一本涵盖我的具体情况。我已经成功地构建了Python 使用PyTorch的多标签、多类图像分类器(ConvNet),python,classification,pytorch,convolutional-neural-network,multilabel-classification,Python,Classification,Pytorch,Convolutional Neural Network,Multilabel Classification,我正在尝试用PyTorch实现一个图像分类器(CNN/ConvNet),我想从csv文件中读取标签。我有4个不同的类,一个图像可能属于多个类 我已经通读了和,但没有一本涵盖我的具体情况。我已经成功地构建了torch.utils.data.Dataset类的自定义函数,该函数仅适用于从二进制分类器的csv文件中读取标签 这是到目前为止我所拥有的torch.utils.data.Dataset类的代码(与上面链接的第三个教程略有修改): 具体而言,我正在尝试从具有以下结构的文件中读取标签: 我的具
torch.utils.data.Dataset
类的自定义函数,该函数仅适用于从二进制分类器的csv文件中读取标签
这是到目前为止我所拥有的torch.utils.data.Dataset类的代码(与上面链接的第三个教程略有修改):
具体而言,我正在尝试从具有以下结构的文件中读取标签:
我的具体问题是,我不知道如何在我的Dataset
类中实现这一点。我想我缺少了csv中标签的(手动)分配与PyTorch如何读取之间的联系,因为我对该框架相当陌生。
我非常感谢任何关于如何让这个工作的帮助,或者如果有实际的例子涵盖这一点,一个链接也将非常感谢 也许我遗漏了什么,但是如果您想将列1..N
(N=4
)转换为标签向量或形状(N,)
(例如,给定示例数据,标签(img1)=[0,0,0,1]
,标签(img3)=[1,0,1,0]
,…),为什么不:
将所有标签列读入self.label\u arr
:
self.label_arr = np.asarray(self.data_info.iloc[:, 1:]) # columns 1 to N
相应地返回\uuu getitem\uuuu()
中的标签(此处无更改):
为了训练分类器,您可以计算(N,)
预测和目标标签之间的交叉熵
self.label_arr = np.asarray(self.data_info.iloc[:, 1:]) # columns 1 to N
single_image_label = self.label_arr[index]