Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python UnboundLocalError:局部变量';批量输出';分配前参考_Python_Machine Learning_Keras - Fatal编程技术网

Python UnboundLocalError:局部变量';批量输出';分配前参考

Python UnboundLocalError:局部变量';批量输出';分配前参考,python,machine-learning,keras,Python,Machine Learning,Keras,我正在编写机器学习代码,使用Keras对前列腺癌的严重程度进行分级。运行后,会出现以下错误: --------------------------------------------------------------------------- UnboundLocalError Traceback (most recent call last) <ipython-input-14-0e08590512ec> in <module

我正在编写机器学习代码,使用Keras对前列腺癌的严重程度进行分级。运行后,会出现以下错误:

---------------------------------------------------------------------------
UnboundLocalError                         Traceback (most recent call last)
<ipython-input-14-0e08590512ec> in <module>
      8     for file in column:
      9         data = generate_tiles(file)
---> 10         prediction = model.predict(data)
     11         max_score = prediction.max()
     12 

/opt/conda/lib/python3.7/site-packages/tensorflow/python/keras/engine/training.py in _method_wrapper(self, *args, **kwargs)
     86       raise ValueError('{} is not supported in multi-worker mode.'.format(
     87           method.__name__))
---> 88     return method(self, *args, **kwargs)
     89 
     90   return tf_decorator.make_decorator(

/opt/conda/lib/python3.7/site-packages/tensorflow/python/keras/engine/training.py in predict(self, x, batch_size, verbose, steps, callbacks, max_queue_size, workers, use_multiprocessing)
   1283             callbacks.on_predict_batch_end(step, {'outputs': batch_outputs})
   1284       callbacks.on_predict_end()
-> 1285     all_outputs = nest.map_structure_up_to(batch_outputs, concat, outputs)
   1286     return tf_utils.to_numpy_or_python_type(all_outputs)
   1287 

UnboundLocalError: local variable 'batch_outputs' referenced before assignment
---------------------------------------------------------------------------
取消绑定LocalError回溯(最近一次调用上次)
在里面
8对于列中的文件:
9数据=生成块(文件)
--->10预测=模型预测(数据)
11 max_分数=预测值max()
12
/opt/conda/lib/python3.7/site-packages/tensorflow/python/keras/engine/training.py in_method_包装(self,*args,**kwargs)
86 raise VALUERROR(“{}在多工作模式下不受支持。”。格式(
87方法(名称)
--->88返回方法(self、*args、**kwargs)
89
90返回tf_decorator.make_decorator(
/predict中的opt/conda/lib/python3.7/site-packages/tensorflow/python/keras/engine/training.py(self、x、批处理大小、冗余、步骤、回调、最大队列大小、工人、使用多处理)
1283回调。在批处理结束时(步骤,{'outputs':批处理输出})
1284次回调。on_predict_end()
->1285 all_outputs=nest.map_structure_up_to(批处理输出、concat、输出)
1286将tf_utils.to_numpy_或_python_类型返回(所有_输出)
1287
UnboundLocalError:赋值前引用的局部变量“batch_outputs”

有人知道批处理输出也会引用什么吗?我的代码中没有这样的变量。

当您将空数组传递给Keras时,通常会引发此错误。请检查您传递的数组。

我怀疑您的
生成了\u tiles()
函数返回了一个空列表或类似的东西,这导致keras内部的一些循环执行零次,因此从未初始化循环后使用的某个变量。@user10055134我面临同样的问题。有什么解决方法吗?@Gauranga正如前面的评论所说,我的函数返回了一个空列表。我想我只是输入了一个if语句来检查它是否返回了一个空列表。这为我的案例修复了它,因为它没有那么重要,但是如果您的案例更复杂,您可能需要做一些其他的事情为什么它不只是声明您传递了一个空数组?@Avedis好问题:)