gpt4 book ai didi

machine-learning - sklearn 聚类输出是否因机器而异?

转载 作者:行者123 更新时间:2023-11-30 09:16:14 24 4
gpt4 key购买 nike

我正在使用sklearn AffinityPropagation聚类算法。我的 4 核计算机上的聚类算法的输出与典型服务器计算机上生成的输出不同。有人可以建议任何方法,以便我可以在两个系统上获得相似的输出。

我在两台机器上使用相似的特征向量。

我的机器上的输出是 cluster0:[1,2,3],cluster1:[4,5,6] 但在服务器上是 cluster0:[1,2] cluster1:[3,4],cluster2:[5 ]

from keras.applications.xception import Xception
from keras.preprocessing import image
from keras.applications.xception import preprocess_input
from keras.models import Model
from sklearn.cluster import AffinityPropagation
import cv2
import glob
base_model = Xception(weights = model_path)
base_model=Model(inputs=base_model.input,outputs=base_model.get_layer('avg_pool').output)
files = glob.glob("*.jpg")
image_vector = []
for f in files:
image = cv2.imread(f)
temp_vector = base_model.predict(image)
image_vector.append(temp_vector)

import numpy as np
image_vector = np.asarray(image_vector)
clustering = AffinityPropagation()
clustering.fit(image_vector)



套餐:-scikit学习0.20.3sklearn 0.0 tensorflow 1.12.0喀拉斯2.2.4opencv-python

机器 1:- 4 核 8GB RAM机器 2:- 7 核 16GB RAM

最佳答案

运行不确定的算法时,不同机器上的结果可能会有所不同。

如果您希望能够跨机器重现此类算法的结果,我建议您修复 numpy 的随机种子和 Python 的随机种子。

Python 随机种子可以通过使用:random.seed(42)(或任何其他整数)来修复

Numpy 随机种子可以通过以下方式修复:np.random.seed(12345)(或任何其他整数)

sklearn 和 Keras 使用 numpy 随机数生成器,因此第二个选项本身就可以解决您的问题。

此答案假设两个系统上的所有库版本都相同。

关于machine-learning - sklearn 聚类输出是否因机器而异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55537355/

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