2

目前,我正在使用 tf1.15 (DNNLinearCombinedClassifier) 中的宽深分类器,并定义了以下函数来向标签添加随机噪声:

def add_random_noise(labels):
    labels = tf.dtypes.cast(labels, tf.float32)
    rnd_noise = tf.random.uniform(tf.shape(labels))
    return tf.add(labels, tf.math.multiply_no_nan(0.05, rnd_noise))

然后将此函数应用于使用目标列的数据集,map并且仅应用于目标列。但是,当我训练我的模型时,它会生成以下输出:

(0) Invalid argument: assertion failed: [Labels must <= n_classes - 1] [Condition x <= y did not hold element-wise:] [x (head/labels:0) = ] [[0.00486446638][0.0133116841][0.0143840136]...] [y (head/assert_range/Const:0) = ] [1]

据我了解,DNNLinearCombinedClassifier正在计算目标中唯一值的数量,并由于 n_classes 和唯一值数量之间的差异而产生错误。我查看了 的文档DNNLinearCombinedEstimator,但它使用 MSE 作为损失,我肯定想使用交叉熵来训练我的模型,因为它在DNNLinearCombinedClassifier. 我想问你是否有一种方法可以使用带有这个扰动标签列和交叉熵的宽和深分类器作为我的训练损失函数。

4

0 回答 0