出于某些奇怪的原因,我必须使用与feedstuff相同的标签多次运行tensorflow(图形和会话)(但使用不同的变量初始化程序) .

错误在第二次运行开始时结束,说我必须使用dtype int64为占位符张量'label'提供一个值 . 我知道当我忘记在会话或feedstuff dtype不匹配中提供数据时经常会出现此错误 . 但我相信它是由图形的“重建”引起的,因为我在会话中确认了所有内容,并且在第一次运行期间没有出现任何问题 .

为防止变量名冲突,我将resuse开关设置为tf.AUTO_REUSE . 并在我再次运行整个代码时将它们初始化为我想要的内容 . 但是,在重用图形时,我不知道tf.placeholder有什么相似之处,我不确定类似碰撞引起的错误是否与tf.get_variable的名称相同 .

我需要多次运行它们的图形和会话的基本结构如下:

y_ = tf.placeholder(tf.int64, [None], name='labels'

with tf.variable_scope('var', reuse=tf.AUTO_REUSE):
  get_variables(), define_operations(), build_graph()

with tf.Session() as sess:
  process_something() # nothing to do with feeding
  for i in range(n_steps):
     _,_,_ = sess.run([a,b,c], 
                      feed_dict = {y_: shape_dtype_matched_data} # this line is where the report error happened.   
    # these feedstuff is identical both in the FOR loop and in the other run of the whole code.

我知道一个可能的解决方案是在每个运行时使用tf.reset_default_graph(),但我只是想知道我的代码有什么问题 . 关于我的目标的任何建议(如第一段所述)将不胜感激!