"NameError: name 'np' 未定义"时尝试运行名为 PspNet 的 Keras 分段模型



事情如下:安装完所有的包和依赖项之后。我运行了以下代码:

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:UsersrodguAppDataLocalContinuumanaconda3envstensorflow_envlibsite-packageskeras_segmentationmodelspspnet.py", line 91, in vgg_pspnet
model =  _pspnet( n_classes , get_vgg_encoder ,  input_height=input_height, input_width=input_width  )
File "C:UsersrodguAppDataLocalContinuumanaconda3envstensorflow_envlibsite-packageskeras_segmentationmodelspspnet.py", line 63, in _pspnet
pooled = pool_block(  o , p  )
File "C:UsersrodguAppDataLocalContinuumanaconda3envstensorflow_envlibsite-packageskeras_segmentationmodelspspnet.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

这太疯狂了,因为我肯定安装了numpy。我在里面运行了同样的代码和print(np.version.version(,得到了:1.17.3(这也意味着除了Keras函数之外,numpy在任何地方都可以工作(。我重新安装了numpy,但仍然一无所获。我被困在这里好几天了。

  • 我使用的是Python 3.7.5和Windows 10
  • 此外,这个问题的答案也于事无补

非常感谢!

多亏了Aditya Shankar,我成功了。您必须降级您的python,然后降级您的tensorflow,才能使用keras分段包(至少,据我所知(。(此外,请确保安装setup.py文件中列出的任何其他依赖项(

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

最新更新