我正在尝试将类权重添加为模型的超参数,但是要计算权重,我需要读取输入数据,这发生在 input_fn 内部,然后传递给estimator.fit()
. 的输出input_fn
只有特征,标签应该具有相同的形状 num_examples * num_features。我的问题 - 有没有办法将数据从 input_fn 传播到 model_fn 的超参数图?或者作为替代方案-也许有一个用于 input_fn 数据集的包装器,它允许对少数/欠采样的多数以及批处理进行过采样-在这种情况下,我不需要任何参数来传播。
问问题
1398 次
1 回答
1
特征和标签都可以是张量字典(不仅仅是一个张量)。张量可以是您想要的任何形状,尽管通常是 num_examples * ...
如果您不使用任何预定义的估计器,最简单的方法是添加另一个具有计算权重所需的特征,计算模型中的权重然后使用它们(乘以损失或将其作为参数传递) .
您还可以访问 input_fn 中的超参数,以便您可以在那里计算权重并将其添加为单独的列。
如果您使用罐装估算器,请检查文档。我看到他们中的大多数都支持 weight_column_name。在这种情况下,只需将其命名为您在特征字典中用于权重值的名称。
或者,如果所有其他方法都失败了,您可以在将数据提供给 tensorflow 之前按照您想要的方式对数据进行采样。
于 2018-01-26T16:04:04.087 回答