用于创建 .tsv 文件的带有纪元编号的动态名称格式
Dynamic name formatting with epoch number for .tsv file creation
我在 Keras 中做了这个自定义回调,用于在每个纪元结束时获取嵌入向量。它应该将向量保存在它所做的 .tsv 上,但由于名称不会在每个时期更新,因此会导致重写第一个文件。所以在训练结束时,我只得到了最后一个时期的向量。
我需要一种在 .tsv 文件名上添加纪元编号的方法,但我不知道该怎么做。
代码:
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()
如有任何建议,我们将不胜感激。非常感谢!
您可以通过以下方式做到这一点:
out_v = io.open('vecs_{}.tsv'.format(epoch), 'w', encoding='utf-8')
文件名将是 vec_1.tsv、vec_2.tsv 等等。
我在 Keras 中做了这个自定义回调,用于在每个纪元结束时获取嵌入向量。它应该将向量保存在它所做的 .tsv 上,但由于名称不会在每个时期更新,因此会导致重写第一个文件。所以在训练结束时,我只得到了最后一个时期的向量。 我需要一种在 .tsv 文件名上添加纪元编号的方法,但我不知道该怎么做。
代码:
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()
如有任何建议,我们将不胜感激。非常感谢!
您可以通过以下方式做到这一点:
out_v = io.open('vecs_{}.tsv'.format(epoch), 'w', encoding='utf-8')
文件名将是 vec_1.tsv、vec_2.tsv 等等。