Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pytorch 使用CNN/ResNet在每次迭代的所有课程上进行培训/预测-输入数据的串联+;匈牙利算法_Pytorch_Cnn_Mnist_Resnet - Fatal编程技术网

Pytorch 使用CNN/ResNet在每次迭代的所有课程上进行培训/预测-输入数据的串联+;匈牙利算法

Pytorch 使用CNN/ResNet在每次迭代的所有课程上进行培训/预测-输入数据的串联+;匈牙利算法,pytorch,cnn,mnist,resnet,Pytorch,Cnn,Mnist,Resnet,因此,我有一个简单的pytorch示例,介绍如何培训ResNet CNN从以下链接学习MNIST标签: 它工作得很好,但我想稍微修改一下,这样它可以做两件事。首先,它不是预测数字,而是为我正在进行的项目预测动物的形状/颜色。这已经很好地工作了,我对此很满意 第二,我想对训练(可能还有层)进行黑客攻击,以便一次在多个图像上并行地进行预测。在MNIST示例中,基本上预测(或输出)是针对一个由我一次连接10位数字的图像。为清晰起见,每个10图像输入的数字0-9每个仅出现一次。这里的关键是,10位数字

因此,我有一个简单的pytorch示例,介绍如何培训ResNet CNN从以下链接学习MNIST标签:

它工作得很好,但我想稍微修改一下,这样它可以做两件事。首先,它不是预测数字,而是为我正在进行的项目预测动物的形状/颜色。这已经很好地工作了,我对此很满意

第二,我想对训练(可能还有层)进行黑客攻击,以便一次在多个图像上并行地进行预测。在MNIST示例中,基本上预测(或输出)是针对一个由我一次连接10位数字的图像。为清晰起见,每个10图像输入的数字0-9每个仅出现一次。这里的关键是,10位数字中的每一位都从CNN/ResNet获得一个唯一的类/标签,并且每个类都被精确地分配一次。高置信度的数字将阻止其他低置信度的数字使用该标签(匈牙利算法类型的方法)

因此,在我的用例中,我想对连接的图像(而不是单个图像)进行训练,如下面的图A所示,并强制分类器学习预测每个连接图像的最佳唯一标签,并一次完成所有操作。这种方法应该比单一图像分类更有效——它对我的动物分类特别有用,因为否则CNN有时可以为多个动物返回相同的ID,这在我的应用程序中是不可能的

我已经可以在下面的图B中进行系列预测。事实上,从每个预测的可信度来看,我能够实现一种类似匈牙利算法的预测后方法,在每批4只动物中分配最佳(最自信)的唯一ID。但这并不总是奏效,我想知道ResNet是否也能尝试学习贪婪的匈牙利作业

特别是,不清楚实现一个简单地要求增加数据输入和训练集中的标签是否会自动完成,因为我不知道如何惩罚或拒绝为每组图像返回两次相同的标签。因此,现在我可以生成如下训练数据集:

print (train_loader.dataset.data.shape)
print (train_loader.dataset.targets.shape)
torch.Size([60000, 28, 28])
torch.Size([60000])
我想我希望目标是[60000,10]。每个输入图像是[1,28,28,10]?但我不确定正确的方法是什么

有什么建议或可用的链接吗

我想这是一种特殊类型的训练,但我忘了名字