Tensorflow会导致scikit-learn出错

问题描述 投票:0回答:1

当我在导入tensorflow之前导入scikit-learn时,我没有任何问题。运行此代码块会产生1.7766212763101197e-12的输出。

import numpy as np
np.random.seed(123)
import numpy.random as rand
from sklearn.decomposition import PCA
import tensorflow as tf

X = rand.randn(100,15)
X = X - X.mean(axis=0)
mod = PCA()
w = mod.fit_transform(X)
h = mod.components_
print(np.sum(np.abs(X-np.dot(w,h))))

但是,如果我在导入scikit之前导入tensorflow-学习我的代码不再起作用。当我运行这个代码块

import tensorflow as tf
import numpy as np
np.random.seed(123)
import numpy.random as rand
from sklearn.decomposition import PCA

X = rand.randn(100,15)
X = X - X.mean(axis=0)
mod = PCA()
w = mod.fit_transform(X)
h = mod.components_
print(np.sum(np.abs(X-np.dot(w,h))))

我得到130091393261440.25的输出。

这是为什么?我的软件包版本是:

numpy - 1.13.1

sklearn - 0.19.0

tensorflow - 1.3.0

python-3.x tensorflow scikit-learn
1个回答
0
投票

导入顺序不应该影响输出,因为python模块是自包含的,除非是依赖项。

我无法重现您的错误,并为两个代码块获得1.7951539777252834e-12的输出。

这是一个有趣的问题,我很想知道其他人是否可以为您看到此问题提供更好的回复。

© www.soinside.com 2019 - 2024. All rights reserved.