theano 报错 module 'configparser' has no attribute 'ConfigParser' 用的是Win10 Anaconda3 python3.6
from sklearn.datasets import load_boston
import theano.tensor as T
import numpy as np
import matplotlib.pyplot as plt
import theano
class Layer(object):
def __init__(self,inputs,in_size,out_size,activation_function=None):
self.W = theano.shared(np.random.normal(0,1,(in_size,out_size)))
self.b = theano.shared(np.zeros((out_size,)) + 0.1)
self.Wx_plus_b = T.dot(inputs, self.W) + self.b
self.activation_function = activation_function
if activation_function is None:
self.outputs = self.Wx_plus_b
else:
self.outputs = self.activation_function(self.Wx_plus_b)
def minmax_normalization(data):
xs_max = np.max(data, axis=0)
xs_min = np.min(data, axis=0)
xs = (1-0)*(data - xs_min)/(xs_max - xs_min) + 0
return xs
np.random.seed(100)
x_dataset = load_boston()
x_data = x_dataset.data
# minmax normalization, rescale the inputs
x_data = minmax_normalization(x_data)
y_data = x_dataset.target[:,np.newaxis]
#cross validation, train test data split
x_train, y_train = x_data[:400], y_data[:400]
x_test, y_test = x_data[400:], y_data[400:]
x = T.dmatrix('x')
y = T.dmatrix('y')
l1 = Layer(x, 13, 50, T.tanh)
l2 = Layer(l1.outputs, 50, 1, None)
#compute cost
cost = T.mean(T.square(l2.outputs - y))
#cost = T.mean(T.square(l2.outputs - y)) + 0.1*((l1.W**2).sum() + (l2.W**2).sum()) #l2 regulization
#cost = T.mean(T.square(l2.outputs - y)) + 0.1*(abs(l1.W).sum() + abs(l2.W).sum()) #l1 regulization
gW1, gb1, gW2, gb2 = T.grad(cost, [l1.W,l1.b,l2.W,l2.b]) #gradient descend
learning_rate = 0.01
train = theano.function(inputs=[x,y], updates=[(l1.W,l1.W-learning_rate*gW1),
(l1.b,l1.b-learning_rate*gb1), (l2.W,l2.W-learning_rate*gW2), (l2.b,l2.b-learning_rate*gb2)])
compute_cost = theano.function(inputs=[x,y], outputs=cost)
#record cost
train_err_list = []
test_err_list = []
learning_time = []
for i in range(1000):
if 1%10 == 0:
#record cost
train_err_list.append(compute_cost(x_train,y_train))
test_err_list.append(compute_cost(x_test,y_test))
learning_time.append(i)
#plot cost history
plt.plot(learning_time, train_err_list, 'r-')
plt.plot(learning_time, test_err_list,'b--')
plt.show()
#作者 morvan莫凡
https://morvanzhou.github.io
报错了:
Traceback (most recent call last):
File "C:/Users/Elena/PycharmProjects/theano/regularization.py", line 1, in
from sklearn.datasets import load_boston
File "C:\Users\Elena\Anaconda3\lib\site-packages\sklearn\datasets__init__.py", line 22, in
from .twenty_newsgroups import fetch_20newsgroups
File "C:\Users\Elena\Anaconda3\lib\site-packages\sklearn\datasets\twenty_newsgroups.py", line 44, in
from ..feature_extraction.text import CountVectorizer
File "C:\Users\Elena\Anaconda3\lib\site-packages\sklearn\feature_extraction__init__.py", line 10, in
from . import text
File "C:\Users\Elena\Anaconda3\lib\site-packages\sklearn\feature_extraction\text.py", line 28, in
from ..preprocessing import normalize
File "C:\Users\Elena\Anaconda3\lib\site-packages\sklearn\preprocessing__init__.py", line 6, in
from ._function_transformer import FunctionTransformer
File "C:\Users\Elena\Anaconda3\lib\site-packages\sklearn\preprocessing_function_transformer.py", line 5, in
from ..utils.testing import assert_allclose_dense_sparse
File "C:\Users\Elena\Anaconda3\lib\site-packages\sklearn\utils\testing.py", line 61, in
from nose.tools import raises as nose_raises
File "C:\Users\Elena\Anaconda3\lib\site-packages\nose\_init__.py", line 1, in
from nose.core import collector, main, run, run_exit, runmodule
File "C:\Users\Elena\Anaconda3\lib\site-packages\nose\core.py", line 11, in
from nose.config import Config, all_config_files
File "C:\Users\Elena\Anaconda3\lib\site-packages\nose\config.py", line 6, in
import configparser
File "C:\Users\Elena\Anaconda3\Lib\site-packages\theano\configparser.py", line 15, in
import theano
File "C:\Users\Elena\Anaconda3\lib\site-packages\theano__init__.py", line 88, in
from theano.configdefaults import config
File "C:\Users\Elena\Anaconda3\lib\site-packages\theano\configdefaults.py", line 17, in
from theano.configparser import (AddConfigVar, BoolParam, ConfigParam, EnumStr,
File "C:\Users\Elena\Anaconda3\lib\site-packages\theano\configparser.py", line 77, in
theano_cfg = (configparser.ConfigParser if PY3
AttributeError: module 'configparser' has no attribute 'ConfigParser'
把theano里的configparser.py文件里的ConfigParser改成了configparser还是不行
换了模块import configparsor也不行。。。