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