gpt4 book ai didi

python - 打印每个簇的图像

转载 作者:行者123 更新时间:2023-11-30 09:15:20 26 4
gpt4 key购买 nike

我使用sklearn KMeans来形成图像簇,但在打印每个簇的图像时遇到困难。

  1. 我有一个维度为 (10000, 100, 100, 3) 的 np 数组序列
  2. 然后我将图像展平,以便每一行呈现一个图像。列车尺寸:(10000, 30000)
  3. 我应用了 KMeans。

    from scipy import ndimage

    from sklearn.cluster import KMeans

    kmeans = KMeans(n_clusters=10, random_state=0)

    clusters = kmeans.fit_predict(train)

    centers = kmeans.cluster_centers_

之后我想打印每个簇的图像,

最佳答案

对于十个集群,您将获得十个集群中心。您现在可以打印它们,或者可以将它们可视化 - 我认为这就是您想要做的。

import numpy as np
import matplotlib.pyplot as plt

#fake centers
centers = np.random.random((10,100,100,3))

#print centers
for ci in centers:
print(ci)

#visualize centers:
for ci in centers:
plt.imshow(ci)
plt.show()

编辑:我知道您不仅希望可视化中心,还希望可视化每个集群的其他成员。

您可以对单个随机成员执行以下操作:

from scipy import ndimage
from sklearn.cluster import KMeans
import numpy as np
import matplotlib.pyplot as plt
import random

#PARAMS
n_clusters=10

#fake train data
original_train = np.random.random((100, 100, 100, 3)) #100 images of each 100 px,py and RGB

n,x,y,c = original_train.shape

flat_train = original_train.reshape((n,x*y*c))

kmeans = KMeans(n_clusters, random_state=0)

clusters = kmeans.fit_predict(flat_train)

centers = kmeans.cluster_centers_

#visualize centers:
for ci in centers:
plt.imshow(ci.reshape(x,y,c))
plt.show()

#visualize other members
for cluster in np.arange(n_clusters):

cluster_member_indices = np.where(clusters == cluster)[0]
print("There are %s members in cluster %s" % (len(cluster_member_indices), cluster))

#pick a random member
random_member = random.choice(cluster_member_indices)
plt.imshow(original_train[random_member,:,:,:])
plt.show()

关于python - 打印每个簇的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57455874/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com