machine-learning - 如何在 keras 中使用 categorical_hinge 损失以便在最后一层使用 SVM 进行训练?
问题描述
我想使用 SVM 训练 CNN 在最后一层进行分类。我知道 categorical_hinge 是最好的损失函数。我有 6 个类要分类。我的模型如下图所示:
model = Sequential()
model.add(Conv2D(50, 3, 3, activation = 'relu', input_shape = train_data.shape[1:]))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(50, 3, 3, activation = 'relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(50, 3, 3, activation = 'relu'))
model.add(Flatten())
model.add(Dense(400, activation = 'relu'))
model.add(Dropout(0.5))
model.add(Dense(128, activation = 'relu'))
model.add(Dropout(0.5))
model.add(Dense(1, activation = 'sigmoid'))
网络、数据处理或损失函数有问题吗?
如图所示,模型在某个点之后没有学到任何东西 我应该怎么做?
解决方案
你的模型只有一个输出神经元,这不可能适用于 6 个类。你的模型的输出应该有 6 个神经元。此外,您的模型的输出应该没有激活函数,以便生成分类铰链可以使用的 logits。
请注意,分类铰链是最近(2-3 周前)添加的,所以它很新,可能没有多少人测试过。
推荐阅读
- r - 我将如何改变 ggplot 图例符号的形状?
- javascript - socket.io 管理员/用户的唯一颜色
- javascript - HLS.js 获取视频片段信息
- javascript - Price.map 不是函数
- concurrency - V-lang:如何每秒发送 +2500 个 HTTP 请求?
- reactjs - 如何在 React js 中使用数组将数组推送到对象中?
- javascript - 嵌入对象以显示 PDF 显示为不可见
- python - 无法导入类,即使快速修复找到它
- javascript - 修复 JavaScript LoadMore 按钮以每页加载 5 个项目 - Django
- python - 使用自生成键将嵌套列表转换为字典