当我在导入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模块是自包含的,除非是依赖项。
我无法重现您的错误,并为两个代码块获得1.7951539777252834e-12的输出。
这是一个有趣的问题,我很想知道其他人是否可以为您看到此问题提供更好的回复。