tensorflow - 无法从 tensorboard 运行 tsne 以获取少量样本?
问题描述
我正在构建要查看的嵌入向量tensorboard
(使用TSNE
2D/3D 算法)
我的代码看起来:
logdir = os.path.join("./logs/fit/l", datetime.datetime.now().strftime("%Y%m%d-%H%M%S"))
w = tf.summary.create_file_writer(logdir)
projector_distances = train_distances.reshape(train_distances.shape[0], -1)
weights = tf.Variable(projector_distances, name="latent_test_3")
checkpoint = tf.train.Checkpoint(latent_test=weights)
checkpoint.save(os.path.join(logdir, "embedding.ckpt"))
with open(os.path.join(logdir, 'tags.tsv'), "w") as f:
for tag in y_test:
f.write("{}\n".format(tag))
from tensorboard.plugins import projector
config = projector.ProjectorConfig()
embedding = config.embeddings.add()
embedding.tensor_name = "latent_test/.ATTRIBUTES/VARIABLE_VALUE"
embedding.metadata_path = 'tags.tsv'
projector.visualize_embeddings(logdir, config)
在tensorboard
我可以查看的结果PCA
,但TSNE
或UMAP
不工作(什么都没有发生并且按钮被禁用):
更多信息:
train_distances: (938, 14, 14, 8)
projector_distances: (938, 1568)
我可以tsne
从代码运行算法(对于相同的数据):
from sklearn.manifold import TSNE
model = TSNE(n_components=2, random_state=0)
y = model.fit_transform(projector_distances)
如果我使用更大的数据集(超过 1568 个样本(即样本数 >= 特征数),我可以从 tensorboard 查看结果。
- 怎么了 ?
- 为什么我可以
tsne
(从代码)运行小数据集,而我不能tsne
从运行tensorboard
?
解决方案
推荐阅读
- python-3.x - plt.imshow() 中图像数据的尺寸无效
- react-native - 如何将视图与顶部和底部以及左右对齐?
- laravel - 在 Kubernetes 上使用 NGINX 会尝试使用私有 IP 而不是域加载资产
- python - Keras:如何加载具有两个输出和自定义损失函数的模型?
- wordpress - 托管在 Google Cloud Server 上的 Woocommerce Rest API
- wso2esb - 是否有从 WSO2 ESB / WSO2 EI 中的 gmail 下载附件的解决方案?
- typescript - 如何轻松迭代接口属性
- shell - 仅将 shell 脚本函数的值返回到另一个 shell 脚本
- c++ - 有没有机会用 SIMD 加速循环代码?
- r - 在R中将一列拆分为两个值