我在.tsv中做了这个自定义回调,以获得每个纪元末尾的嵌入向量。它应该将向量保存在一个.tsv上,但由于名称不会在每个纪元上更新,所以它会导致重写第一个文件。因此,在训练结束时,我只获得了最后一个纪元的向量。我需要一种方法来在Keras文件名上添加纪元编号,但我不知道怎么做。
代码:
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', 'w', encoding='utf-8')
vec = model.layers[0].get_weights()[0]
out_v.write('\t'.join([str(x) for x in vec]) + "\n")
out_v.close()任何建议都将不胜感激。非常感谢!
发布于 2020-08-28 12:58:06
您可以通过更改以下命令来完成此操作:
out_v = io.open('vecs_{}.tsv'.format(epoch), 'w', encoding='utf-8')文件名将为vec_1.tsv、vec_2.tsv等。
https://stackoverflow.com/questions/63621142
复制相似问题