我正在研究在Keras实施的ML模型。对于这个模型,我写了一个自定义损失函数,其中损失是其他3个变量(a_cost, b_cost, c_cost)
的性能总和。损失函数有效,但我想稍微调整一下,为此我想看看这3个其他变量的行为。如何记录这些标量以便它们可以在TensorBoard中显示?
def custom_cost(y_true, y_pred):
# compute a_cost, b_cost, c_cost
cost = a_cost + b_cost + c_cost
return cost
# ..build model...
model.compile(loss=custom_cost, optimizer=optimizers.Adam())
tensorboard = callbacks.TensorBoard(log_dir="./logs", write_graph=True)
tensorboard.set_model(model)
model.fit_generator(generator=custom_generator, epochs=100, steps_per_epoch=180, callbacks=[tensorboard], verbose=True)
答案 0 :(得分:1)
在计算b_cost
,c_cost
和def a_cost(y_true, y_pred):
# compute a_cost
...
return a_cost
def b_cost(y_true, y_pred):
# compute b_cost
...
return b_cost
def c_cost(y_true, y_pred):
# compute c_cost
...
return c_cost
时,您可以定义三个单独的函数来分别计算它们。让:
metrics
现在这很简单,只需将这三个函数添加为model.compile(..., metrics=[a_cost, b_cost, c_cost])
:
nextTodoId