我的模型基于以下教程:
https://github.com/torch/tutorials/tree/master/2_supervised
对于最后阶段,神经网络用于从CNN提取的特征。我想在最后一层使用SVM。如何将其添加到现有模型中?
在一些论文中已经证明,SVM似乎比神经网络更好地作为CNN的最后一层,因此我想尝试它们以提高模型的准确性。此外,SVM可用于神经网络缺乏的一类分类。我最终需要一个类分类器,因此需要向CNN添加SVM。
请帮助
答案 0 :(得分:2)
编辑: 自cannot code a (linear) SVM as a complete module以来,我的旧答案完全是垃圾。相反,您可以将SVM视为
1层NN,在输出节点上具有线性激活,并通过铰链损耗进行训练
(参见接受的答案的评论。)
这意味着在Torch中,您可以使用
之类的东西模拟(线性)SVMlinearSVM = nn.Sequential()
linearSVM:add(nn.Linear(ninputs, 1))
criterion = nn.MarginCriterion()
中的以下问题