keras - 使用 keras 评估多任务学习的模型结果
问题描述
我为 keras 中的多任务分类设计了一个 CNN,其中我有一个输入和两个不同类别的输出。
我以这种方式编译模型:
model.compile(loss='categorical_crossentropy',
optimizer=tf.keras.optimizers.Adam(lr=0.00002, decay=1e-6),
metrics=['accuracy'])
我想知道使用此指令获得的结果的含义是什么:
preds = model.evaluate(x=X_test, y=[Y1_test, Y2_test])
我得到了 5 个元素,我想第一个和第二个是第一和第二类的损失,第三个似乎是两个损失之间的差异,最后两个可能是准确度。这是对的吗?我没有找到多任务分类输出的解释
解决方案
在这个虚拟示例中,我为您提供了一个多输出模型并尝试进行评估
X = np.random.uniform(0,1, (1000,10))
y1 = np.random.randint(0,2, 1000)
y2 = np.random.randint(0,2, 1000)
inp = Input((10))
x = Dense(32, activation='relu')(inp)
out1 = Dense(2, activation='softmax')(x)
out2 = Dense(2, activation='softmax')(x)
m = Model(inp, [out1,out2])
m.compile(loss='sparse_categorical_crossentropy',
optimizer='adam',
metrics=['accuracy'])
m.fit(X, [y1,y2], epochs=10, verbose=2)
m.evaluate(X, [y1,y2])
评估方法返回 5 个数字:
- 总损失(由两个输出损失的总和给出)
- 输出1损失
- 输出2损失
- 输出1精度
- 输出2精度
推荐阅读
- api - 如何从 Platform of Trust 获取 Sandbox 环境中当前登录用户的 ID?
- sql - 带有 OUTPUT 的存储过程 - 必须声明标量变量
- xcode - 即使在 Xcode 上更改开发区域后,我的 mac 应用程序也不会更改其语言
- python - 如何在列表中找到相似的数字并为列表中存在的每个数字设置一个值?
- r - 使用 geom_rec 的 ggplot 中的矩形颜色
- javascript - .push() 和 .reduce() 如何在这里协同工作?(斐波那契)
- docker - 使用私有注册表中的映像部署 pod 时发生 CrashLoopBackOff
- javascript - 使用 MaterialUI 输入组件时如何将光标放在文本的开头并将焦点移动到开头
- java - 何在 Vertx 中禁用 TLS 1.3,它在与 MmongoDB 客户端连接时产生问题
- reactjs - 反应 useRef typescript child forwardedRef 类型