天天看點

報錯ImportError:cannot import name 'fetch_openml' from 'sklearn.datasets'及問題解決方案

對多層感覺機權重在MINIST資料集上的可視化實作實驗中,遇到報錯。

首先,代碼如下:

import matplotlib.pyplot as plt

from sklearn.datasets import fetch_openml

from sklearn.neural_network import MLPClassifier

print(__doc__)

X,y=fetch_openml('mnist_784',version=1,return_X_y=True)

X=X/255.

X_train,X_test=X[:60000],X[60000:]

y_train,y_test=y[:60000],y[60000:]

mlp=MLPClassifier(hidden_layer_sizes=(50,),max_iter=10,alpha=1e-4,solver='sgd',verbose=10,tol=1e-4,random_state=1,learning_rate_init=.1)

mlp.fit(X_train,y_train)

print("Training set score:%f"% mlp.score(X_train,y_train))

print("Test set score:%f"% mlp.score(X_test,y_test))

fig,axes=plt.subplots(4,4)

vmin,vmax=mlp.coefs_[0].min(),mlp.corfs_[0].max()

for coef,ax in zip(mlp.coefs_[0].T,axes.rave()):

    ax.matshow(coef.reshape(28,28),cmap=plt.cm.gray,vmin=.5*vmin,vmax=.5*vmax)

    ax.set_xticks(())

    ax.set_yticks(())

plt.show()

報錯ImportError:cannot import name 'fetch_openml' from 'sklearn.datasets',一般對于這種ImportError,需要更新對應的第三方庫(spyder也同步更新),更新後不再報錯。