TensorFlow: Comment s'assurer que les Tenseurs sont dans le même graphique

Je suis en train de commencer avec TensorFlow en python, la construction d'un simple feed-forward NN. J'ai une classe qui détient le réseau des poids (les variables sont mises à jour lors de train, et sont supposées rester constantes pour l'exécution) et un autre script pour former le réseau, qui obtient les données sur la formation, les sépare, les lots et les trains du réseau dans les lots.
Lorsque j'essaie de former le réseau, j'obtiens un message d'erreur indiquant que le tenseur de données n'est pas dans le même graphique que le NN tenseurs:

ValueError: Tenseur("espace Réservé:0", la forme=(10, 5), dtype=float32) doit être sur le même graphique que l'Tenseur("windows/embedding/Cast:0", la forme=(100232, 50), dtype=float32).

Les parties pertinentes dans la formation de script sont:

def placeholder_inputs(batch_size, ner):
  windows_placeholder = tf.placeholder(tf.float32, shape=(batch_size, ner.windowsize))
  labels_placeholder = tf.placeholder(tf.int32, shape=(batch_size))
  return windows_placeholder, labels_placeholder

with tf.Session() as sess:
  windows_placeholder, labels_placeholder = placeholder_inputs(batch_size, ner)
  logits = ner.inference(windows_placeholder)

Et pertinentes dans le réseau de la classe sont:

class WindowNER(object):
def __init__(self, wv, windowsize=3, dims=[None, 100,5], reg=0.01):
self.reg=reg
self.windowsize=windowsize
self.vocab_size = wv.shape[0]
self.embedding_dim = wv.shape[1]
with tf.name_scope("embedding"):
self.L = tf.cast(tf.Variable(wv, trainable=True, name="L"), tf.float32)
with tf.name_scope('hidden1'):
self.W = tf.Variable(tf.truncated_normal([windowsize * self.embedding_dim, dims[1]],
stddev=1.0 / math.sqrt(float(windowsize*self.embedding_dim))),
name='weights')
self.b1 = tf.Variable(tf.zeros([dims[1]]), name='biases')
with tf.name_scope('output'):
self.U = tf.Variable(tf.truncated_normal([dims[1], dims[2]], stddev = 1.0 / math.sqrt(float(dims[1]))), name='weights')
self.b2 = tf.Variable(tf.zeros(dims[2], name='biases'))
def inference(self, windows):
with tf.name_scope("embedding"):
embedded_words = tf.reshape(tf.nn.embedding_lookup(self.L, windows), [windows.get_shape()[0], self.windowsize * self.embedding_dim])
with tf.name_scope("hidden1"):
h = tf.nn.tanh(tf.matmul(embedded_words, self.W) + self.b1)
with tf.name_scope('output'):
t = tf.matmul(h, self.U) + self.b2

Pourquoi il y a deux graphiques en premier lieu, et comment puis-je m'assurer que les données de l'espace réservé tenseurs sont dans le même graphique que la NN?

Merci!!

OriginalL'auteur user616254 | 2016-10-27