尝试使用 openTSNE 是因为它能够将嵌入转换为现有的嵌入空间。
我正在尝试保存适合/训练过的嵌入对象,以便以后可以使用它,但总是在酸洗时出错。
这是我想要实现的示例,我总是得到 PermissionError: WinError 32 The process cannot access the file because it is being used by another process: ...\AppData\Local\Temp\tmp703si9k_\tmp.ann'
X = np.load("X.npy")
X_test = np.load("x_test.npy")
affinities = openTSNE.affinity.PerplexityBasedNN(
X,
perplexity=500,
n_jobs=32,
random_state=0,
)
init = openTSNE.initialization.pca(X, random_state=42)
tsne = openTSNE.TSNE(
exaggeration=None,
n_jobs=16,
verbose=True,
)
embeddings = tsne.fit(affinities=affinities, initialization=init)
pickle.dump(embeddings,open("embeddings.sav","wb"))
global_embeddings = pickle.load(open("embeddings.sav","rb"))
test_embeddings = global_embeddings.transform(x_test)
还是我做错了什么?我也在尝试将我的嵌入保存为 numpy 数组并使用 numpy 数组作为 embeddigns 重新初始化 openTSNE.TSNEEmbedding 类对象,但是我将需要一个相似对象以及我也无法腌制的对象。问题是什么?或者什么是解决这个问题的最佳解决方案?