Tensorflow错误:"Tensor必须与Tensor相同的图表..."

Qul*_*ulu 8 python python-2.7 tensorflow

我试图使用Tensorflow(版本0.9.0)以与初学者教程非常相似的方式训练一个简单的二元逻辑回归分类器,并且在拟合模型时遇到以下错误:

ValueError: Tensor("centered_bias_weight:0", shape=(1,), dtype=float32_ref) must be from the same graph as Tensor("linear_14/BiasAdd:0", shape=(?, 1), dtype=float32).
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

import tempfile
import tensorflow as tf
import pandas as pd

# Customized training data parsing
train_data = read_train_data()
feature_names = get_feature_names(train_data)
labels = get_labels(train_data)

# Construct dataframe from training data features
x_train = pd.DataFrame(train_data , columns=feature_names)
x_train["label"] = labels

y_train = tf.constant(labels)

# Create SparseColumn for each feature (assume all feature values are integers and either 0 or 1)
feature_cols = [ tf.contrib.layers.sparse_column_with_integerized_feature(f,2) for f in feature_names ]

# Create SparseTensor for each feature based on data
categorical_cols = { f: tf.SparseTensor(indices=[[i,0] for i in range(x_train[f].size)],
               values=x_train[f].values,
               shape=[x_train[f].size,1]) for f in feature_names }

# Initialize logistic regression model
model_dir = tempfile.mkdtemp()
model = tf.contrib.learn.LinearClassifier(feature_columns=feature_cols, model_dir=model_dir)

def eval_input_fun():
    return categorical_cols, y_train

# Fit the model - similarly to the tutorial
model.fit(input_fn=eval_input_fun, steps=200)
Run Code Online (Sandbox Code Playgroud)

我觉得我错过了一些关键的东西......可能是教程中假设但没有明确提到的东西?

此外,每次调用fit()时,我都会收到以下警告:

WARNING:tensorflow:create_partitioned_variables is deprecated.  Use tf.get_variable with a partitioner set, or tf.get_partitioned_variable_list, instead.
Run Code Online (Sandbox Code Playgroud)

syg*_*ygi 7

当您执行model.fitLinearClassifier创建一个单独的tf.Graph基于包含在你的行动eval_input_fun功能.但是,创建这个图的过程中,LinearClassifier没有访问的定义categorical_colsy_train你保存全局.

解决方案:移动所有Ops定义(及其依赖项) eval_input_fun