2017-01-15 20 views
9

keras có khả năng xuất một số dữ liệu đào tạo của nó ở định dạng comaptible tensorboard bằng cách sử dụng keras.callbacks.TensorBoardCó thể trực quan hóa các đoạn nhúng keras trong tensorboard không?

Tuy nhiên, nó không hỗ trợ embedding visualisation trong bảng dẫn.

Có cách nào khác không?

+0

Tôi thích một giải pháp hiện có (như bên thứ 3 hoặc thứ tôi đã bỏ lỡ trong tài liệu meta) nhưng việc triển khai nó là một tùy chọn –

Trả lời

8

Tìm thấy một giải pháp:

import os 

import keras 
import tensorflow 

ROOT_DIR = '/tmp/tfboard' 

os.makedirs(ROOT_DIR, exist_ok=True) 


OUTPUT_MODEL_FILE_NAME = os.path.join(ROOT_DIR,'tf.ckpt') 

# get the keras model 
model = get_model() 
# get the tensor name from the embedding layer 
tensor_name = next(filter(lambda x: x.name == 'embedding', model.layers)).W.name 

# the vocabulary 
metadata_file_name = os.path.join(ROOT_DIR,tensor_name) 

embedding_df = get_embedding() 
embedding_df.to_csv(metadata_file_name, header=False, columns=[]) 

saver = tensorflow.train.Saver() 
saver.save(keras.backend.get_session(), OUTPUT_MODEL_FILE_NAME) 

summary_writer = tensorflow.train.SummaryWriter(ROOT_DIR) 

config = tensorflow.contrib.tensorboard.plugins.projector.ProjectorConfig() 
embedding = config.embeddings.add() 
embedding.tensor_name = tensor_name 
embedding.metadata_path = metadata_file_name 
tensorflow.contrib.tensorboard.plugins.projector.visualize_embeddings(summary_writer, config) 
+2

bạn có thể giải thích cách bạn xây dựng embedding_df không? – hjarraya

+0

thiếu thông tin trong câu trả lời này. Bạn có thể giải thích ở đâu '' 'get_model()' '' và '' 'get_embedding()' '' xuất phát từ? –

+0

những chức năng này sẽ là các hàm trả về mô hình keras của bạn và nhúng dưới dạng một khung dữ liệu –

Các vấn đề liên quan