使用keras评估多任务学习的模型结果
我为keras的多任务分类设计了一个CNN,其中我有一个输入和两个不同的类输出 我以这种方式编译模型:使用keras评估多任务学习的模型结果,keras,Keras,我为keras的多任务分类设计了一个CNN,其中我有一个输入和两个不同的类输出 我以这种方式编译模型: model.compile(loss='categorical_crossentropy', optimizer=tf.keras.optimizers.Adam(lr=0.00002, decay=1e-6), metrics=['accuracy']) 我想知道通过本说明获得的结果的含义: preds = model.eval
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])
evaluate方法返回5个数字:
- 总损耗(由两个输出损耗之和得出)
- 输出1损耗
- 输出2损耗
- 输出1精度
- 输出2精度
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])
evaluate方法返回5个数字:
- 总损耗(由两个输出损耗之和得出)
- 输出1损耗
- 输出2损耗
- 输出1精度
- 输出2精度