Python 使用fmin_l_bfgs_b()函数时获取TypeError

Python 使用fmin_l_bfgs_b()函数时获取TypeError,python,numpy,deep-learning,scipy,Python,Numpy,Deep Learning,Scipy,我正在使用fmin_l_bfgs_b函数,同时进行神经类型转换,并不断获得 TypeError: 'numpy.float32' object is not callable 错误块的详细信息如下: TypeError Traceback (most recent call last) <ipython-input-10-4699dceebbd9> in <module>() ----> 1 gene

我正在使用
fmin_l_bfgs_b
函数,同时进行神经类型转换,并不断获得

TypeError: 'numpy.float32' object is not callable
错误块的详细信息如下:

TypeError                                 Traceback (most recent call last)
<ipython-input-10-4699dceebbd9> in <module>()
----> 1 generate_art('/content/nst_images/5.jpg', '/content/nst_images/a.jpg',1, img_height=400)

4 frames
<ipython-input-9-67cbbed20548> in generate_art(content_image_path, style_image_path, iterations, img_height)
     38   for i in range(iterations):
     39 
---> 40     x, min_val, info = fmin_l_bfgs_b(evaluator.loss(x,img_height,img_width,fetch_loss_and_grads),x, fprime=evaluator.grads, maxfun=20)
     41     img = x.copy().reshape((img_height, img_width, 3))
     42     img = deprocess_image(img)

/usr/local/lib/python3.6/dist-packages/scipy/optimize/lbfgsb.py in fmin_l_bfgs_b(func, x0, fprime, args, approx_grad, bounds, m, factr, pgtol, epsilon, iprint, maxfun, maxiter, disp, callback, maxls)
    197 
    198     res = _minimize_lbfgsb(fun, x0, args=args, jac=jac, bounds=bounds,
--> 199                            **opts)
    200     d = {'grad': res['jac'],
    201          'task': res['message'],

/usr/local/lib/python3.6/dist-packages/scipy/optimize/lbfgsb.py in _minimize_lbfgsb(fun, x0, args, jac, bounds, disp, maxcor, ftol, gtol, eps, maxfun, maxiter, iprint, callback, maxls, **unknown_options)
    343             # until the completion of the current minimization iteration.
    344             # Overwrite f and g:
--> 345             f, g = func_and_grad(x)
    346         elif task_str.startswith(b'NEW_X'):
    347             # new iteration

/usr/local/lib/python3.6/dist-packages/scipy/optimize/lbfgsb.py in func_and_grad(x)
    293     else:
    294         def func_and_grad(x):
--> 295             f = fun(x, *args)
    296             g = jac(x, *args)
    297             return f, g

/usr/local/lib/python3.6/dist-packages/scipy/optimize/optimize.py in function_wrapper(*wrapper_args)
    325     def function_wrapper(*wrapper_args):
    326         ncalls[0] += 1
--> 327         return function(*(wrapper_args + args))
    328 
    329     return ncalls, function_wrapper

TypeError: 'numpy.float32' object is not callable
TypeError回溯(最近一次调用)
在()
---->1生成图片('/content/nst_images/5.jpg','/content/nst_images/a.jpg',1,img_height=400)
4帧
在生成艺术中(内容图像路径、样式图像路径、迭代、图像高度)
38对于范围内的i(迭代):
39
--->40 x,最小值,信息=fmin\u l\u bfgs\u b(评估器损失(x,img\u高度,img\u宽度,提取损失和梯度),x,fprime=evaluator.grads,maxfun=20)
41 img=x.copy().重塑((img_高度,img_宽度,3))
42 img=图像去处理(img)
/fmin_l_bfgs_b中的usr/local/lib/python3.6/dist-packages/scipy/optimize/lbfgsb.py(func、x0、fpinite、args、近似梯度、边界、m、factr、pgtol、epsilon、iprint、maxfun、maxiter、disp、callback、maxls)
197
198 res=_minimize_lbfgsb(fun,x0,args=args,jac=jac,bounds=bounds,
-->199**选择)
200d={'grad':res['jac'],
201“任务”:res[“消息”],
/usr/local/lib/python3.6/dist-packages/scipy/optimize/lbfgsb.py in_minimize_lbfgsb(fun、x0、args、jac、bounds、disp、maxcor、ftol、gtol、eps、maxfun、maxiter、iprint、回调、maxls、**未知选项)
343#直到当前最小化迭代完成。
344#覆盖f和g:
-->345 f,g=func_和_梯度(x)
346 elif任务开始(b'NEW_X'):
347#新迭代
/函数和梯度中的usr/local/lib/python3.6/dist-packages/scipy/optimize/lbfgsb.py(x)
293其他:
294定义函数和梯度(x):
-->295 f=fun(x,*args)
296 g=jac(x,*args)
297返回f,g
/函数_wrapper(*wrapper_args)中的usr/local/lib/python3.6/dist-packages/scipy/optimize/optimize.py
325 def函数包装器(*包装器参数):
326 nCall[0]+=1
-->327返回函数(*(包装器参数+参数))
328
329返回NCALL,函数包装器
TypeError:“numpy.float32”对象不可调用

关于如何解决这个问题有什么建议吗?谢谢!

这是一个愚蠢的错误。对于fmin\u l\u bfgs\u b,loss函数的参数必须分别作为args=()

什么类型的
计算器传递。loss
我会说:使用
打印()
打印(类型(…)
检查变量中的内容。并检查变量的使用顺序是否正确。也许您将数字放在函数名的适当位置,它会尝试将此数字用作函数-即。
1()