作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用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/
我是一名优秀的程序员,十分优秀!