Вложения tensorfboard зависают с Computing PCA

Я пытаюсь отобразить свои вложения в tensorboard. Когда я открываю вкладку встраивания tensorboard, я получаю: «Вычисление PCA ...», и tensorboard бесконечно зависает.

До этого он загружает мой тензор формы 200x128. Он также находит файл метаданных.

Я пробовал это на версиях TF 0.12 и 1.1 с тем же результатом.

features = np.zeros(shape=(num_batches*batch_size, 128), dtype=float)
embedding_var = tf.Variable(features, name='feature_embedding')
config = projector.ProjectorConfig()
embedding = config.embeddings.add()
embedding.tensor_name = 'feature_embedding'
metadata_path = os.path.join(self.log_dir, 'metadata.tsv')
embedding.metadata_path = metadata_path

with tf.Session(config=self.config) as sess:
  tf.global_variables_initializer().run()
  restorer = tf.train.Saver()
  restorer.restore(sess, self.pretrained_model_path)

  with open(metadata_path, 'w') as f:

    for step in range(num_batches):
      batch_images, batch_labels = data.next()

        for label in batch_labels:
          f.write('%s\n' % label)

        feed_dict = {model.images: batch_images}
        features[step*batch_size : (step+1)*batch_size, :] = \ 
                    sess.run(model.features, feed_dict)

  sess.run(embedding_var.initializer)
  projector.visualize_embeddings(tf.summary.FileWriter(self.log_dir), config)

person etoropov    schedule 18.05.2017    source источник
comment
Может быть, сообщить об этом как об ошибке? (С более подробной информацией, например, о вашей ОС и т. д.) Этот сайт предназначен для вопросов и ответов.   -  person bobcat    schedule 18.05.2017
comment
Я не знаю, если я что-то пропустил   -  person etoropov    schedule 19.05.2017


Ответы (2)


Я не знаю, что было не так в коде выше, но я переписал его по-другому (ниже), и он работает. Разница в том, когда и как инициализируется embedding_var.

Я также сделал из этого суть для копирования и вставки кода.

# a numpy array for embeddings and a list for labels
features = np.zeros(shape=(num_batches*self.batch_size, 128), dtype=float)
labels   = []   


# compute embeddings batch by batch
with tf.Session(config=self.config) as sess:
  tf.global_variables_initializer().run()
  restorer = tf.train.Saver()
  restorer.restore(sess, self.pretrained_model)

  for step in range(num_batches):
    batch_images, batch_labels = data.next()

    labels += batch_labels

    feed_dict = {model.images: batch_images}                     
    features[step*self.batch_size : (step+1)*self.batch_size, :] = \
                sess.run(model.features, feed_dict)


# write labels
metadata_path = os.path.join(self.log_dir, 'metadata.tsv')
with open(metadata_path, 'w') as f:
  for label in labels:
    f.write('%s\n' % label)


# write embeddings
with tf.Session(config=self.config) as sess:

  config = projector.ProjectorConfig()
  embedding = config.embeddings.add()
  embedding.tensor_name = 'feature_embedding'
  embedding.metadata_path = metadata_path

  embedding_var = tf.Variable(features, name='feature_embedding')
  sess.run(embedding_var.initializer)
  projector.visualize_embeddings(tf.summary.FileWriter(self.log_dir), config)                  

  saver = tf.train.Saver({"feature_embedding": embedding_var})
  saver.save(sess, os.path.join(self.log_dir, 'model_features'))
person etoropov    schedule 19.05.2017

Это ошибка. Это исправлено в tensorflow 1.13.

person Hugh Perkins    schedule 17.04.2019