【问题标题】:Exporting embeddings per epoch in Keras在 Keras 中每个 epoch 导出嵌入
【发布时间】:2020-12-09 01:07:21
【问题描述】:

我正在尝试在每个时期访问 Keras 中嵌入层的输出(n 维向量)。似乎没有针对此的特定回调。我已经尝试过 Tensorboard 回调,因为它提供了一个选项来记录每个时期的嵌入,但是当我找到日志文件时,我无法读取它们。它们可能是只能由 Tensorboard 访问以用于可视化目的的文件。我需要将嵌入向量保存为以后可以在 keras 外部使用的格式,例如 TSV 文件。有没有办法做到这一点?

非常感谢!

【问题讨论】:

    标签: vector keras callback embedding word-embedding


    【解决方案1】:

    好的,所以我想出了如何做到这一点,在 Nazmul Hasan 非常需要的帮助下,如何格式化要随每个时期更新的名称。本质上我创建了一个自定义回调:

    import io
    
    encoder = info.features['text'].encoder
    
    class CustomCallback(keras.callbacks.Callback):
        def on_epoch_end(self, epoch, logs=None):
            out_v = io.open('vecs_{}.tsv'.format(epoch), 'w', encoding='utf-8')
            vec = model.layers[0].get_weights()[0] # skip 0, it's padding.
            out_v.write('\t'.join([str(x) for x in vec]) + "\n")
            out_v.close()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-16
      • 2018-03-17
      • 2018-10-12
      • 1970-01-01
      • 2019-05-10
      • 1970-01-01
      • 2018-12-04
      相关资源
      最近更新 更多