如何保存一个热编码器?

时间:2019-10-01 13:19:45

标签: python pandas tensorflow keras one-hot-encoding

我试图从keras中保存一个热编码器,以便在不同的文本上再次使用它,但保持相同的编码。

这是我的代码:

df = pd.read_csv('dataset.csv ')
vocab_size = 200000
encoded_docs = [one_hot(d, vocab_size) for d in df.text]

如何保存此编码器并在以后再次使用?

我在研究中发现this,但one_hot()似乎是一个函数而不是一个对象(很抱歉,如果这是完全错误的,我对python还是很陌生的。)

2 个答案:

答案 0 :(得分:2)

为了社区的利益,在本节中提及答案(尽管它在“评论”部分中)。

要保存编码器,可以使用以下代码:

import pickle
with open("encoder", "wb") as f: 
    pickle.dump(one_hot, f)

然后要加载保存的编码器,请使用以下代码:

encoder = pickle.load(f) 
encoded_docs =[encoder(d, vocab_size) for d in df.text]

由于函数from.keras.preprocessing.text import one_hot使用hash()来生成准唯一编码,因此我们需要使用HashSeed来再现我们的结果(即使多次执行也会得到相同的结果)。 / p>

在终端中运行以下代码,以设置HashSeed

enter image description here

答案 1 :(得分:0)

上一个答案很棒,我找到了另一个需要joblib的可用选项

PDFViewAdapter