2017-05-18 4 views
1

テンソルボードに埋め込みを表示しようとしています。テンソルボードの埋め込みタブを開くと、「コンピューティングPCA ...」とテンソルボードが無限にハングアップします。テンソルボード埋め込みが "Computing 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) 
+0

これはバグとして報告されることがありますか? (詳細はお使いのOSなどのように)このサイトはQ&Aのためのサイトです。 – MaxB

+0

何か不足しているかどうかわかりません – etoropov

答えて

0

私は上記のコードで間違っていたかわからないが、私は(下記)別の方法でそれを書き直し、それが動作します。違いは、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')) 
関連する問題