Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何为tf.estimator的输入_fn提供额外的目标参数_Python 3.x_Tensorflow_Keras_Deep Learning - Fatal编程技术网

Python 3.x 如何为tf.estimator的输入_fn提供额外的目标参数

Python 3.x 如何为tf.estimator的输入_fn提供额外的目标参数,python-3.x,tensorflow,keras,deep-learning,Python 3.x,Tensorflow,Keras,Deep Learning,如您所知,为了利用tf.estimator,需要实现模型函数,构建一个生成成批(特征、标签)对的管道,因此签名应如下所示: model_fn(features, labels, mode, params, config): 这些特征和标签应该从输入返回。我们假设features->X和labels->y,我在这里遇到了一个问题,因为我有两种类型的标签 为了将目标和标签作为单独的参数提供,而不仅仅是一个标签参数,有什么替代方案 注意:我尝试将目标和标签连接起来,然后在需要的地方对它们进行切片,但

如您所知,为了利用tf.estimator,需要实现模型函数,构建一个生成成批(特征、标签)对的管道,因此签名应如下所示:

model_fn(features, labels, mode, params, config):
这些特征和标签应该从输入返回。我们假设features->X和labels->y,我在这里遇到了一个问题,因为我有两种类型的标签

为了将目标和标签作为单独的参数提供,而不仅仅是一个标签参数,有什么替代方案

注意:我尝试将目标和标签连接起来,然后在需要的地方对它们进行切片,但这在模型的执行过程中产生了一个额外的问题。所以我想知道你们还有没有更好的主意


多谢各位

在您的
输入中,您只需返回一个字典,而不是作为标签的张量。也就是说,您的输入函数很可能返回元组
(特性、标签)
上的迭代器。
特征
标签
都可以是单个张量或
dict
。这句话应该从字符串映射到张量

您可以将数据集准备为一个返回三个元素的数据集
(功能、目标、标签)
,然后包括一个映射以将目标打包到dict中(可能有更好的方法,但这是可行的):


现在,如果其中一个元素是dict(比如,
labels
),那么
model\u fn
的相应输入也将是dict。然后,您只需在
model\u fn

中使用
标签[“targets”]
标签[“labels”]
,谢谢@xdurch0,让我试试看,如果有什么异常情况发生,我会在这里更新。
Features = X : [None, 2048]
Labels = targets: [None, 2048]
         labels: [None, 1] 
data = ...  # prepare dataset of 3-tuples

def pack_in_dict(features, targets, labels):
    return features, {"targets": targets, "labels": labels}

data = data.map(pack_in_dict)