如何保存一个热编码器?
How to save one hot encoder?
我正在尝试从 keras 中保存一个热编码器,以便在不同的文本上再次使用它,但保持相同的编码。
这是我的代码:
df = pd.read_csv('dataset.csv ')
vocab_size = 200000
encoded_docs = [one_hot(d, vocab_size) for d in df.text]
如何保存此编码器并在以后再次使用它?
我在研究中发现 但 one_hot() 似乎是一个函数而不是一个对象(抱歉,如果这是完全错误的,我是 python 的新手) .
为了社区的利益,在此部分中提及答案(尽管它出现在评论部分中)。
要保存编码器,您可以使用以下代码:
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
来重现我们的结果(即使在多次执行后得到相同的结果) .
运行 终端中的以下代码,用于设置 HashSeed
:
前面的答案很棒,我找到了另一个需要 joblib 的可用选项
from joblib import dump, load
dump(clf, 'filename.joblib') # save the model
clf = load('filename.joblib') # load and reuse the model
我正在尝试从 keras 中保存一个热编码器,以便在不同的文本上再次使用它,但保持相同的编码。
这是我的代码:
df = pd.read_csv('dataset.csv ')
vocab_size = 200000
encoded_docs = [one_hot(d, vocab_size) for d in df.text]
如何保存此编码器并在以后再次使用它?
我在研究中发现
为了社区的利益,在此部分中提及答案(尽管它出现在评论部分中)。
要保存编码器,您可以使用以下代码:
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
来重现我们的结果(即使在多次执行后得到相同的结果) .
运行 终端中的以下代码,用于设置 HashSeed
:
前面的答案很棒,我找到了另一个需要 joblib 的可用选项
from joblib import dump, load
dump(clf, 'filename.joblib') # save the model
clf = load('filename.joblib') # load and reuse the model