1

我的模型基于以下教程:

https://github.com/torch/tutorials/tree/master/2_supervised

在最后阶段,神经网络用于从 CNN 中提取的特征。我想在最后一层使用 SVM。我怎样才能将它添加到我现有的模型中?

在一些论文中已经表明,作为 CNN 的最后一层,SVM 似乎比神经网络运行得更好,因此我想尝试一下以提高模型的准确性。支持向量机也可以用于神经网络缺乏的一类分类。我最终需要一个类分类器,因此需要在 CNN 中添加一个支持向量机。

请帮助

4

1 回答 1

2

编辑:我的旧答案完全是垃圾,因为您不能将(线性)SVM 编码为完整的模块。相反,您可以将 SVM 视为

在输出节点上具有线性激活并通过铰链损失训练的 1 层 NN

(请参阅接受的答案的评论。)

这意味着在 Torch 中,您可以模拟一个(线性)SVM,例如

linearSVM = nn.Sequential()
linearSVM:add(nn.Linear(ninputs, 1))
criterion = nn.MarginCriterion()

请参阅Torch7 谷歌代码邮件列表中的以下问题...

于 2015-06-24T22:30:58.560 回答