Auto Keras中ImageClassifier类中的fit()函数没有';我跑得不好

Auto Keras中ImageClassifier类中的fit()函数没有';我跑得不好,keras,mnist,auto-keras,Keras,Mnist,Auto Keras,我尝试在演示中运行,但失败,代码如下所示: from keras.datasets import mnist from autokeras.classifier import ImageClassifier (x_train, y_train), (x_test, y_test) = mnist.load_data() x_train = x_train.reshape(x_train.shape + (1,)) x_test = x_test.reshape(x_test.shape + (

我尝试在演示中运行,但失败,代码如下所示:

from keras.datasets import mnist
from autokeras.classifier import ImageClassifier

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train.reshape(x_train.shape + (1,))
x_test = x_test.reshape(x_test.shape + (1,))

clf = ImageClassifier(verbose=True)
clf.fit(x_train, y_train, time_limit=12 * 60 * 60)
clf.final_fit(x_train, y_train, x_test, y_test, retrain=True)
y = clf.evaluate(x_test, y_test)
print(y)
```
```
Initializing search.
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-23-077a1b1d90e1> in <module>()
      1 clf = ImageClassifier(verbose=True)
----> 2 clf.fit(x_train, y_train, time_limit=12 * 60 * 60)
      3 clf.final_fit(x_train, y_train, x_test, y_test, retrain=True)
      4 y = clf.evaluate(x_test, y_test)
      5 print(y)

/Users/victor/virtualenvlist/mydlp2/lib/python2.7/site-packages/autokeras/classifier.pyc in fit(self, x_train, y_train, time_limit)
    210         start_time = time.time()
    211         while time.time() - start_time <= time_limit:
--> 212             run_searcher_once(x_train, y_train, x_test, y_test, self.path)
    213             if len(self.load_searcher().history) >= constant.MAX_MODEL_NUM:
    214                 break

/Users/victor/virtualenvlist/mydlp2/lib/python2.7/site-packages/autokeras/classifier.pyc in run_searcher_once(x_train, y_train, x_test, y_test, path)
     41         backend.set_session(sess)
     42     searcher = pickle_from_file(os.path.join(path, 'searcher'))
---> 43     searcher.search(x_train, y_train, x_test, y_test)
     44 
     45 

/Users/victor/virtualenvlist/mydlp2/lib/python2.7/site-packages/autokeras/search.pyc in search(self, x_train, y_train, x_test, y_test)
    156     def search(self, x_train, y_train, x_test, y_test):
    157         if not self.history:
--> 158             self.init_search()
    159 
    160         # Start the new process for training.

/Users/victor/virtualenvlist/mydlp2/lib/python2.7/site-packages/autokeras/search.pyc in init_search(self)
    142             print('Initializing search.')
    143         graph = DefaultClassifierGenerator(self.n_classes,
--> 144                                            self.input_shape).generate(self.default_model_len,
    145                                                                       self.default_model_width)
    146         model_id = self.model_count

/Users/victor/virtualenvlist/mydlp2/lib/python2.7/site-packages/autokeras/generator.pyc in __init__(self, n_classes, input_shape)
     34 class DefaultClassifierGenerator(ClassifierGenerator):
     35     def __init__(self, n_classes, input_shape):
---> 36         super().__init__(n_classes, input_shape)
     37 
     38     def generate(self, model_len=constant.MODEL_LEN, model_width=constant.MODEL_WIDTH):

TypeError: super() takes at least 1 argument (0 given)
```
错误消息如下所示:

from keras.datasets import mnist
from autokeras.classifier import ImageClassifier

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train.reshape(x_train.shape + (1,))
x_test = x_test.reshape(x_test.shape + (1,))

clf = ImageClassifier(verbose=True)
clf.fit(x_train, y_train, time_limit=12 * 60 * 60)
clf.final_fit(x_train, y_train, x_test, y_test, retrain=True)
y = clf.evaluate(x_test, y_test)
print(y)
```
```
Initializing search.
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-23-077a1b1d90e1> in <module>()
      1 clf = ImageClassifier(verbose=True)
----> 2 clf.fit(x_train, y_train, time_limit=12 * 60 * 60)
      3 clf.final_fit(x_train, y_train, x_test, y_test, retrain=True)
      4 y = clf.evaluate(x_test, y_test)
      5 print(y)

/Users/victor/virtualenvlist/mydlp2/lib/python2.7/site-packages/autokeras/classifier.pyc in fit(self, x_train, y_train, time_limit)
    210         start_time = time.time()
    211         while time.time() - start_time <= time_limit:
--> 212             run_searcher_once(x_train, y_train, x_test, y_test, self.path)
    213             if len(self.load_searcher().history) >= constant.MAX_MODEL_NUM:
    214                 break

/Users/victor/virtualenvlist/mydlp2/lib/python2.7/site-packages/autokeras/classifier.pyc in run_searcher_once(x_train, y_train, x_test, y_test, path)
     41         backend.set_session(sess)
     42     searcher = pickle_from_file(os.path.join(path, 'searcher'))
---> 43     searcher.search(x_train, y_train, x_test, y_test)
     44 
     45 

/Users/victor/virtualenvlist/mydlp2/lib/python2.7/site-packages/autokeras/search.pyc in search(self, x_train, y_train, x_test, y_test)
    156     def search(self, x_train, y_train, x_test, y_test):
    157         if not self.history:
--> 158             self.init_search()
    159 
    160         # Start the new process for training.

/Users/victor/virtualenvlist/mydlp2/lib/python2.7/site-packages/autokeras/search.pyc in init_search(self)
    142             print('Initializing search.')
    143         graph = DefaultClassifierGenerator(self.n_classes,
--> 144                                            self.input_shape).generate(self.default_model_len,
    145                                                                       self.default_model_width)
    146         model_id = self.model_count

/Users/victor/virtualenvlist/mydlp2/lib/python2.7/site-packages/autokeras/generator.pyc in __init__(self, n_classes, input_shape)
     34 class DefaultClassifierGenerator(ClassifierGenerator):
     35     def __init__(self, n_classes, input_shape):
---> 36         super().__init__(n_classes, input_shape)
     37 
     38     def generate(self, model_len=constant.MODEL_LEN, model_width=constant.MODEL_WIDTH):

TypeError: super() takes at least 1 argument (0 given)
```
```
正在初始化搜索。
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在()
1 clf=图像分类器(详细=真)
---->2级配合(x列,y列,时限=12*60*60)
3 clf.最终拟合(x_序列、y_序列、x_测试、y_测试、再培训=真)
4 y=clf.评估(x_检验,y_检验)
5打印(y)
/Users/victor/virtualenvlist/mydlp2/lib/python2.7/site-packages/autokeras/classifier.pyc合适(self、x_列、y_列、时限)
210开始时间=时间。时间()
211 while time.time()-start_time 212运行_searcher_一次(x_train,y_train,x_test,y_test,self.path)
213如果len(self.load\u searcher().history)>=constant.MAX\u MODEL\u NUM:
214休息
/Users/victor/virtualenvlist/mydlp2/lib/python2.7/site-packages/autokeras/classifier.pyc在run\u searcher\u中运行一次(x\u-train、y\u-train、x\u-test、y\u-test、path)
41.设置会话(sess)
42 searcher=pickle\u from_文件(os.path.join(path,'searcher'))
--->43搜索者。搜索(x_列,y_列,x_测试,y_测试)
44
45
/搜索中的Users/victor/virtualenvlist/mydlp2/lib/python2.7/site-packages/autokeras/search.pyc(self、x_-train、y_-train、x_-test、y_-test)
156 def搜索(自我、x_序列、y_序列、x_测试、y_测试):
157如果不是自我记录:
-->158 self.init_search()
159
160#开始新的培训流程。
/init_search(self)中的Users/victor/virtualenvlist/mydlp2/lib/python2.7/site-packages/autokeras/search.pyc
142打印('正在初始化搜索')
143图形=DefaultClassifierGenerator(self.n_类,
-->144 self.input\u shape).生成(self.default\u model\u len,
145.默认值(模型宽度)
146型号标识=自我型号计数
/Users/victor/virtualenvlist/mydlp2/lib/python2.7/site-packages/autokeras/generator.pyc in_uu____________(self,n_类,输入_形状)
34类DefaultClassifierGenerator(ClassifierGenerator):
35定义初始化(自、n类、输入形状):
--->36 super()
37
38 def生成(自,模型长度=常数。模型长度,模型宽度=常数。模型宽度):
TypeError:super()至少接受1个参数(给定0个)
```
从日志中,我认为类
ImageClassifier
中的
fit()
函数出错了。它在ImageClassifier中的init函数运行不正常

有人可能会遇到这个问题并解决它。如果可以,请分享


感谢您的改进。

您应该使用Python 3.6运行代码。在Python 2.7中运行时,使用不带类继承参数的
super()

class Employee(object): 

    def __init__(self, wage):
        self.wage = wage

class Developer(Employee):
    # inherits from Employee
    def __init__(self, wage):
        super().__init__(wage)

test = Developer(1000)
返回:

TypeError: super() takes at least 1 argument (0 given)
另请参见自动keras:

装置 Auto Keras的安装与其他python包相同。值得注意的是,目前我们只支持Python 3.6


这就是我在Python3.6上编写并工作良好的内容:

import autokeras as ak
import keras

from keras.datasets import mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train.reshape(x_train.shape + (1,))
x_test = x_test.reshape(x_test.shape + (1,))

clf = ak.ImageClassifier(verbose=True)
clf.fit(x_train, y_train)

但是在使用Python3.6.6时还有一个错误,当我调用
clf.fit(x\u-train,y\u-train)
函数时,错误消息显示为
轴与数组不匹配。看看回溯,这是另一个问题。上面的错误消息
轴与数组不匹配
意味着我必须用code
x\u train=x\u train.restrape(x\u train.shape+(1,)
对其进行整形。但现在它运行正常了。再次感谢。很高兴听到这个消息!