【问题标题】:tensorfboard embeddings hangs with "Computing PCA"tensorfboard 嵌入挂起“计算 PCA”
【发布时间】:2017-05-18 18:01:20
【问题描述】:

我正在尝试在 tensorboard 中显示我的嵌入。当我打开张量板的嵌入选项卡时,我得到:“正在计算 PCA ...”,张量板无限挂起。

在此之前它会加载我的形状为 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)

【问题讨论】:

  • 也许将其报告为错误? (包含更多详细信息,例如您的操作系统等)此站点用于问答。
  • 我不知道我是否遗漏了什么

标签: tensorflow tensorboard


【解决方案1】:

我不知道上面的代码出了什么问题,但我用不同的方式(下面)重写了它,它可以工作。区别在于embedding_var 的初始化时间和方式。

我也以此为基础制作了a gist to copy-paste code from

# 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'))

【讨论】:

    【解决方案2】:

    这是一个错误。它已在 tensorflow 1.13 中修复

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-09
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-02
      • 2016-07-19
      相关资源
      最近更新 更多