我为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个元素,我想第一和第二是第一和第二类的损失,第三似乎是两个损失之间的差,而最后两个是精度。这是对的吗?我找不到多任务分类的输出说明
答案 0 :(得分:0)
在这个虚拟示例中,我为您提供了一个多输出模型并尝试进行评估
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个数字: