如何解决TypeError:keras预测中参数错误的__call __()

时间:2019-08-14 11:37:24

标签: python keras

我试图自己从git bun更改存储库,发现参数数量有问题,

我正在谈论的代码部分在: https://github.com/aSafarpoor/keras_cnn/blob/master/src/predict.py 我用它的参数运行python Forecast.py。

但是会出错:

Traceback (most recent call last):
  File "predict.py", line 153, in <module>
    main()
  File "predict.py", line 117, in main
    v = network_eval.predict(specs)
  File "/home/mas/anaconda3/envs/weild/lib/python2.7/site-packages/keras/engine/training.py", line 1166, in predict
    f = self.predict_function()
TypeError: __call__() takes exactly 2 arguments (1 given)

这意味着 keras 预测函数需要更多参数,但这是不正常的,

请注意,输入是真实形状的 numpy 数组。

代码中的相关部分是:

 for c, ID in enumerate(unique_list):
        if c % 50 == 0: print('Finish extracting features for {}/{}th wav.'.format(c, total_length))
        specs = ut.load_data(ID, dim_w=args.wdim,dim_h=args.hdim,win_length=params['win_length'], sr=params['sampling_rate'],
                             hop_length=params['hop_length'], n_fft=params['nfft'],
                             spec_len=args.frame_num, mode='eval')
        # specs = np.expand_dims(np.expand_dims(specs, 0), -1)
        specs=np.expand_dims(specs,0)
        v = network_eval.predict(specs)####error is here ####
        feats += [v]

那么第二个参数应该是什么?或者应该改变什么?

1 个答案:

答案 0 :(得分:0)

我认为您的Keras版本已修改,因为keras官方代码(here)中的同一行没有括号来调用函数。

请确保仅使用Keras官方发行版,而不修改其源代码,否则可能会引入我们无法调试的错误和错误。