首页 > 解决方案 > ValueError:传递的张量应该具有等于当前图的图属性

问题描述

这可能与这个问题有关。症状相同,但根本原因可能不同。

self.estimator = tf.estimator.DNNRegressor(
    feature_columns=feature_columns,
    hidden_units=[16,32,16,8],
    loss_reduction=tf.losses.Reduction.MEAN,
    optimizer=tf.train.AdamOptimizer()
)

...

def train_input_fn(self):
  self.train_features, self.train_labels = self.train_iter.get_next()
  return self.train_features, self.train_labels

...

def perform_training(self):
  self.batch_size = 32
  dataset = tf.data.Dataset.from_tensor_slices((dict(self.train_features), self.train_labels))
  self.train_dataset = dataset.repeat().batch(self.batch_size)
  self.train_iter = self.train_dataset.make_one_shot_iterator()
  print("train_iter: {}".format(self.train_iter))
  self.estimator.train( self.train_input_fn, steps=self.num_epochs )

错误发生在 self.estimator.train 调用中:

ValueError: Passed Tensor("dnn/head/weighted_loss/value:0", shape=(), dtype=float32) should have graph attribute that is equal to current graph <tensorflow.python.framework.ops.Graph object at 0x7feb79598b38>.

的结构与self.train_features一致feature_columns。你能告诉我在这里做错了什么吗?

谢谢,迈克尔

标签: tensorflowiterator

解决方案


推荐阅读