keras - 如何在 Keras 中实现多类多标签分类
问题描述
假设我有一些输入输出,如下所示:
input1 : [0 1 1 1 0 ... 1]
output1 : [1 2 2 3 ... 3 3 1 2 2]
...
输入始终为 0 或 1,输出始终为1 或 2 或 3
如何在 keras 中创建适合这些输入输出的神经网络?
checkpoint_path = 'p-multilable.h5'
checkpoint = keras.callbacks.ModelCheckpoint(filepath=checkpoint_path, mode='max', monitor='acc', verbose=0, save_best_only=True)
model = keras.models.Sequential([
keras.layers.Dense(1000,activation='relu', input_shape=X_train.shape[1:]),
keras.layers.Dense(300,),
keras.layers.Dense(300,),
keras.layers.Dense(53)])
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['acc'])
model.fit(X_train, y_train, batch_size=100, epochs=1000, validation_data=(x_val, y_val), callbacks=[checkpoint])
我尝试将输出标准化为0 0.5 1但没有帮助。
我尝试了各种损失函数
我尝试定义自定义损失函数
我尝试了许多网络架构
在大多数情况下,它的 acc 约为 0.09
理论上它只不过是二元集,应该不难,但我找不到正确的方法
解决方案
对于您的最后一个分类层,您应该softmax
激活它。此激活用于分类。不过,它可能需要您对输出进行一次热编码。
推荐阅读
- mongodb - 获取“信号 15(终止),将在当前 cmd 结束后终止”和 Mongodb 关闭?配置中没有提到分叉条件
- c# - 初始化组件();在 C# 中的所有用户控制文件中返回 0 引用
- jointjs - 导出的 png/svg/jpeg 文件中不显示纸张背景图像
- python - 在 Python 程序中访问主机文件
- asp.net - ASP.NET 通过代码或 CLI 从 ADFS 获取 JWT 令牌
- image-processing - 找到与已知 Homography 的平面平行的平面的 Homography
- javascript - Google Apps 脚本 | 仅将大小为 12 的字符串添加到列表中
- oracle - ORA-12505,TNS:监听器当前不知道连接描述符中给出的 SID,错误
- wordpress - 自定义字段套件未显示在自定义帖子类型中
- c# - 如何使用 Automapper 或 LINQ 将一个具有嵌套列表的对象映射到对象列表?