Python &引用;名称错误:名称';np';“未定义”;当尝试运行一个名为PspNet的Keras细分模型时
事情如下:在安装所有包和依赖项之后。我已经运行了以下代码:Python &引用;名称错误:名称';np';“未定义”;当尝试运行一个名为PspNet的Keras细分模型时,python,python-3.x,numpy,keras,image-segmentation,Python,Python 3.x,Numpy,Keras,Image Segmentation,事情如下:在安装所有包和依赖项之后。我已经运行了以下代码: import numpy as np from sys import exit from sys import argv,exit from keras import optimizers from keras import backend as K import keras_segmentation 一切都很好。但是,后来我跑了: model = keras_segmentation.models.pspnet.vgg_pspnet
import numpy as np
from sys import exit
from sys import argv,exit
from keras import optimizers
from keras import backend as K
import keras_segmentation
一切都很好。但是,后来我跑了:
model = keras_segmentation.models.pspnet.vgg_pspnet(n_classes = 4)
得到了这个错误:
2019-11-13 19:01:15.403630: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
Traceback (most recent call last):
File "semantic_sg.py", line 27, in <module>
model = keras_segmentation.models.pspnet.vgg_pspnet(n_classes = 4)
File "C:\Users\rodgu\AppData\Local\Continuum\anaconda3\envs\tensorflow_env\lib\site-packages\keras_segmentation\models\pspnet.py", line 91, in vgg_pspnet
model = _pspnet( n_classes , get_vgg_encoder , input_height=input_height, input_width=input_width )
File "C:\Users\rodgu\AppData\Local\Continuum\anaconda3\envs\tensorflow_env\lib\site-packages\keras_segmentation\models\pspnet.py", line 63, in _pspnet
pooled = pool_block( o , p )
File "C:\Users\rodgu\AppData\Local\Continuum\anaconda3\envs\tensorflow_env\lib\site-packages\keras_segmentation\models\pspnet.py", line 34, in pool_block
pool_size = strides = [int(np.round( float(h) / pool_factor)), int(np.round( float(w )/ pool_factor))]
NameError: name 'np' is not defined
2019-11-13 19:01:15.403630:I tensorflow/core/platform/cpu\u feature\u guard.cc:142]您的cpu支持该tensorflow二进制文件未编译为使用的指令:AVX2
回溯(最近一次呼叫最后一次):
文件“semantic_sg.py”,第27行,在
model=keras_segmentation.models.pspnet.vgg_pspnet(n_classes=4)
文件“C:\Users\rodgu\AppData\Local\Continuum\anaconda3\envs\tensorflow\u env\lib\site packages\keras\u segmentation\models\pspnet.py”,第91行,在vgg\u pspnet中
模型=\u pspnet(n\u类,get\u vgg\u编码器,输入高度=输入高度,输入宽度=输入宽度)
文件“C:\Users\rodgu\AppData\Local\Continuum\anaconda3\envs\tensorflow\u env\lib\site packages\keras\u segmentation\models\pspnet.py”,第63行,在\u pspnet中
pooled=池块(o,p)
文件“C:\Users\rodgu\AppData\Local\Continuum\anaconda3\envs\tensorflow\u env\lib\site packages\keras\u segmentation\models\pspnet.py”,第34行,池块中
池大小=步幅=[int(np.round(float(h)/池系数)),int(np.round(float(w)/池系数))]
NameError:未定义名称“np”
这太疯狂了,因为我肯定安装了numpy。我运行了相同的代码,在其中打印了一个(np.version.version),得到:1.17.3
(这也意味着numpy在任何地方都可以工作,除了Keras函数)。我重新安装了numpy,但还是什么都没有。我被困在这里好几天了
- 我正在使用Python 3.7.5和Windows 10
- 而且,这也没有帮助
非常感谢 多亏了Aditya Shankar,我成功了。为了使用keras分段包,您必须先降级python,然后再降级tensorflow(至少,据我所知)。(另外,请确保安装setup.py文件中列出的任何其他依赖项)
尝试更新keras_分段,或者尝试使用virtualenv,并使用较低版本的python(即3.6),看看是否有效
conda create -n lower_env pip python=3.6
conda activate lower_env
pip install --ignore-installed --upgrade tensorflow
conda install -c anaconda keras
pip install tensorflow==1.4
conda install -c conda-forge shapely
pip install imgaug>=0.2.9