我想制作一个加权指标,并在Keras训练数据时打印出来。然而,我找不到任何有效的例子来说明如何做到这一点
运行时:
metrics = [MyClass.MyWeightedMetric]
model.compile(optimizer=RMSprop,loss="mean_squared_error",metrics=metrics)
在哪里
class MyClass:
@staticmethod
def MyWeightedMetric(y_true,y_pred,sample_weight=None):
print(sample_weight)
#do stuff that doesn't even use sample_weight for now
然后它一直都不打印。如果我将编译行更改为
model.compile(optimizer=RMSprop,loss="mean_squared_error",weighted_metrics=metrics)
然后我得到了错误:
(0) Invalid argument: Can not squeeze dim[0], expected a dimension of 1, got 16384
调用model.fit()时。我不清楚我做错了什么或者应该做什么。我尝试创建一个子类,如本例中的https://www.tensorflow.org/api_docs/python/tf/keras/metrics/Metric,但它带来了我无法解决的一组错误
在keras中是否有一个加权度量的工作示例,我可以在模型编译阶段提供?我发现了许多未加权用法的例子,但目前似乎不可能找到工作加权度量的例子。无论如何,我使用的是Tensorflow 2.0
当您在训练期间将
weighted_metrics
传递给model.compile
时,模型需要一个样本权重列向量来计算加权度量。在你的例子中,看起来你通过了展平张量。形状应为(16384,1)而不是(16384)。进一步资料 https://www.tensorflow.org/guide/keras/train_and_evaluate#using_a_validation_dataset相关问题 更多 >
编程相关推荐