gpt4 book ai didi

python - 如何根据 DCGAN 论文在扁平表示向量之上训练 L2-SVM 分类器

转载 作者:行者123 更新时间:2023-11-30 09:05:04 25 4
gpt4 key购买 nike

原文DCGAN paper ,在 Imagenet 上进行训练后,GAN 通过用作特征提取器来对 CIFAR-10 进行分类进行部分评估。

来自论文:

To evaluate the quality of the representations learned by DCGANs for supervised tasks, we train on Imagenet-1k and then use the discriminator’s convolutional features from all layers, maxpooling each layers representation to produce a 4 × 4 spatial grid. These features are then flattened and concatenated to form a 28672 dimensional vector and a regularized linear L2-SVM classifier is trained on top of them.

我尝试使用 PyTorch 复制此操作来训练 official PyTorch DCGAN然后使用 scikit-learn 使用其 linear SVC 进行分类,但发现论文的措辞令人困惑,并且不知道从这里该去哪里。我已经能够对每一层进行最大池化,然后将它们连接起来,但我对如何进行 CIFAR-10 的分类感到困惑。

例如sklearn,你使用model.fit(x,y)根据给定的训练数据拟合模型,然后model.predict([X])预测 X 中样本的类标签。在 model.fit(x,y) , x是(2D)特征(例如图像)和 y是标签。但感觉就像他们在上面的引用中说的那样 28672维向量x 。但这是一个一维向量,他们用它来分类 CIFAR-10,它有 50k 图像,并且 50000 > 28672。我是否遗漏了一些明显的东西?

我是否使用例如model.fitx是 CIFAR-10 图像(例如使用 torchvision.datasets.cifar10 )(尽管如何将 50k Tensors 的 RGB 图像制作成 2D 数组是另一个故事)和 y作为它们的标签,然后以某种方式使用 28672 维向量进行预测?

如果这太明显了,我们深表歉意;不幸的是,这就是他们在论文中所说的全部内容,而且似乎没有人复制它(至少在 GitHub 等上)。任何帮助将不胜感激!

最佳答案

DCGAN 将为每个图像提供 28672 维向量。因此,对于完整的 CIFAR10 数据集,DCGAN 的输出形状将为 (50000,28672)

您必须将此作为 sklearn SVM x 的输入,正如您提到的,它采用 2D 数据。

关于python - 如何根据 DCGAN 论文在扁平表示向量之上训练 L2-SVM 分类器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54091864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com