具有tensorflow的多标签

具有tensorflow的多标签,tensorflow,Tensorflow,我试图修改这段代码(参见下面的GitHub链接),这样我就可以使用自己的数据并使用同一组特性预测多个标签 当我一次使用一个标签时,它就起作用了。然而,当我试图创建一个包含多个标签的张量时,我遇到了问题。有什么建议吗 我修改的标签和输入如下所示: LABELS = ["Label1", "Label2", "Label3"] def input_fn(data_set): feature_cols = {k: tf.constant(len(data_set), shape=[data_s

我试图修改这段代码(参见下面的GitHub链接),这样我就可以使用自己的数据并使用同一组特性预测多个标签

当我一次使用一个标签时,它就起作用了。然而,当我试图创建一个包含多个标签的张量时,我遇到了问题。有什么建议吗

我修改的标签和输入如下所示:

LABELS = ["Label1", "Label2", "Label3"]

def input_fn(data_set):
  feature_cols = {k: tf.constant(len(data_set), shape=[data_set[k].size, 1]) for k in FEATURES}
  labels_data = []
  for i in range(0, len(data_set)):
    temp = []
    for label in LABELS:
        temp.append(data_set[label].values[i])
    labels_data.append(temp)
  labels = tf.constant(labels_data, shape=[len(data_set), len(LABELS)])
  return feature_cols, labels 
这是我收到的错误消息的结尾:

  File "/usr/lib/python2.7/site-packages/tensorflow/contrib/learn/python/learn/estimators/dnn.py", line 175, in _dnn_model_fn
return head.head_ops(features, labels, mode, _train_op_fn, logits)
  File "/usr/lib/python2.7/site-packages/tensorflow/contrib/learn/python/learn/estimators/head.py", line 403, in head_ops
head_name=self.head_name)
  File "/usr/lib/python2.7/site-packages/tensorflow/contrib/learn/python/learn/estimators/head.py", line 1358, in _training_loss
loss_fn(logits, labels),
  File "/usr/lib/python2.7/site-packages/tensorflow/contrib/learn/python/learn/estimators/head.py", line 330, in _mean_squared_loss
logits.get_shape().assert_is_compatible_with(labels.get_shape())
  File "/usr/lib/python2.7/site-packages/tensorflow/python/framework/tensor_shape.py", line 735, in assert_is_compatible_with
raise ValueError("Shapes %s and %s are incompatible" % (self, other))
ValueError: Shapes (118, 1) and (118, 3) are incompatible
从中,似乎必须将类(标签)的数量指定为3:

n_classes值可能应该设置为2而不是3,请查看哪个值起作用,您必须更改此参数:

label_dimension: Dimension of the label for multilabels. Defaults to 1.
因此,这应该是可行的:

regressor = tf.contrib.learn.DNNRegressor(feature_columns=feature_cols,
                                        label_dimension=3,
                                        hidden_units=[10, 10],
                                        model_dir="/tmp/boston_model")

完全重复答案
regressor = tf.contrib.learn.DNNRegressor(feature_columns=feature_cols,
                                        label_dimension=3,
                                        hidden_units=[10, 10],
                                        model_dir="/tmp/boston_model")