使用epoch编号动态命名.tsv文件创建

我在Keras中创建了一个自定义回调,用于在每个epoch结束时获取嵌入向量。它确实将向量保存到.tsv文件中,但由于文件名在每个epoch不更新,导致每次都重写第一个文件。因此,训练结束时,我只能得到最后一个epoch的向量。我需要一种方法在.tsv文件名中添加epoch编号,但我不知道如何实现。

代码如下:

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等等。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注