Python 2.7 ValueError:张量必须来自与张量相同的图形

Python 2.7 ValueError:张量必须来自与张量相同的图形,python-2.7,tensorflow,Python 2.7,Tensorflow,我试图在tensorflow中创建一个图形,但遇到以下错误: ValueError:张量(转换_0/输出/输出:0),形状=(), dtype=float32)必须来自与相同的图形 张量(“变量/总输出:0”,shape=(),dtype=float32\u ref) 代码如下: import tensorflow as tf # Explicitly create a Graph object graph =tf.Graph() with graph.as_default(): w

我试图在tensorflow中创建一个图形,但遇到以下错误:

ValueError:张量(转换_0/输出/输出:0),形状=(), dtype=float32)必须来自与相同的图形 张量(“变量/总输出:0”,shape=(),dtype=float32\u ref)

代码如下:

import tensorflow as tf
# Explicitly create a Graph object
graph =tf.Graph() 
with graph.as_default():

    with tf.name_scope("variables"):
    # Variable to keep track of how many times the graph has been run
    global_step = tf.Variable(0, dtype=tf.int32, trainable=False, name="global_step")

    # Variable that keeps track of the sum of all output values over time:
    total_output = tf.Variable(0.0, dtype=tf.float32, trainable=False, name="total_output")

   # Primary transformation Operations
   with tf.name_scope("transformation"):

       # Separate input layer
       with tf.name_scope("input"):
       # Create input placeholder- takes in a Vector
       a = tf.placeholder(tf.float32, shape=[None],name="input_placeholder_a")

       # Separate middle layer
       with tf.name_scope("intermediate_layer"):
        b = tf.reduce_prod(a, name="product_b")
        c = tf.reduce_sum(a, name="sum_c")

       # Separate output layer
       with tf.name_scope("output"):
        output = tf.add(b, c, name="output")

   with tf.name_scope("update"):
       # Increments the total_output Variable by the latest output
    update_total = total_output.assign_add(output)

      # Increments the above `global_step` Variable, should be run whenever     #the graph is run
    increment_step = global_step.assign_add(1)

# Summary Operations
with tf.name_scope("summaries"):
    avg = tf.div(update_total, tf.cast(increment_step, tf.float32), name="average")

    # Creates summaries for output node
    tf.scalar_summary(b'Output', output, name="output_summary")
    tf.scalar_summary(b'Sum of outputs over time', update_total, name="total_summary")
    tf.scalar_summary(b'Average of outputs over time', avg, name="average_summary")

# Global Variables and Operations
with tf.name_scope("global_ops"):
    # Initialization Op
 init = tf.initialize_all_variables()
    # Merge all summaries into one Operation
    merged_summaries = tf.merge_all_summaries()

# Start a Session, using the explicitly created Graph
sess = tf.Session(graph=graph)

# Open a SummaryWriter to save summaries
writer = tf.train.SummaryWriter('./improved_graph', graph)

# Initialize Variables
sess.run(init)


def run_graph(input_tensor):
"""
Helper function; runs the graph with given input tensor and saves summaries
"""
feed_dict = {a: input_tensor}
_, step, summary = sess.run([output, increment_step, merged_summaries],
                              feed_dict=feed_dict)
writer.add_summary(summary, global_step=step)
# Run the graph with various inputs
run_graph([2,8])
run_graph([3,1,3,3])
run_graph([8])
run_graph([1,2,3])
run_graph([11,4])
run_graph([4,1])
run_graph([7,3,1])
run_graph([6,3])
run_graph([0,2])
run_graph([4,5,6])

# Write the summaries to disk
writer.flush()

# Close the SummaryWriter
writer.close()

# Close the session
sess.close()
您是否尝试过:

1) 改变

用于:

2) 以及删除:

sess = tf.Session(graph=graph)
我遇到了相同的错误,这些更改解决了它。

您尝试过:

1) 改变

用于:

2) 以及删除:

sess = tf.Session(graph=graph)

我遇到了相同的错误,这些更改解决了它。

试试这个,删除shape=[None]

a = tf.placeholder(tf.float32, name="input_placeholder_a")

试试这个,删除shape=[None]

a = tf.placeholder(tf.float32, name="input_placeholder_a")