keras - 无法导入名称 Conv2D

新手上路,请多包涵

我最近从 https://github.com/floydhub/dl-docker 运行了深度学习 docker,在试用教程时,在导入 keras 层模块时收到错误。

 from __future__ import print_function
import keras
from keras.datasets import cifar10
from keras.preprocessing.image import ImageDataGenerator
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, Flatten
from keras.layers import Conv2D, MaxPooling2D

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-13-3a12c6f32fcf> in <module>()
      5 from keras.models import Sequential
      6 from keras.layers import Dense, Dropout, Activation, Flatten
----> 7 from keras.layers import Conv2D, MaxPooling2D

ImportError: cannot import name Conv2D

我在 ipython 笔记本上运行 ubuntu 14.04,python 版本 2.7.6,在 docker 上运行以下版本的深度学习库。

 ARG THEANO_VERSION=rel-0.8.2
ARG TENSORFLOW_VERSION=0.12.1
ARG TENSORFLOW_ARCH=cpu
ARG KERAS_VERSION=1.2.0
ARG LASAGNE_VERSION=v0.1
ARG TORCH_VERSION=latest
ARG CAFFE_VERSION=master

我不确定问题是否出在版本上,因为 github 线程上似乎没有相关问题。

原文由 Kong 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

试试这个: from keras.layers.convolutional import Conv2D

新的 keras 改变了导入。您确定您没有使用 keras >= 2 吗?


笔记:

包含 tensorflow 2.0 keras。您现在可以导入图层:

 from tensorflow.keras.layers import Conv2D

原文由 Wilmar van Ommeren 发布,翻译遵循 CC BY-SA 4.0 许可协议

以下对 CNN(卷积神经网络)非常重要的包被重组为不同的包

from keras.layers.convolutional import Conv2D
from keras.layers import Dense
from keras.layers.convolutional import MaxPooling2D
from keras.layers import Flatten

每当您遇到导入错误时,请始终用谷歌搜索包的名称及其关联的库,例如谷歌“Keras Convolution2D”。它将引导您访问 keras 文档。这很容易泄露导入路径。

原文由 pushd93 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题