我最近从 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线程上似乎没有相关问题。
试试这个:
from keras.layers.convolutional import Conv2D
新 keras 的导入发生了变化。您确定您使用的不是 keras >= 2 吗?
注意:
包含tensorflow 2.0 keras。您现在可以使用以下命令导入图层:
from tensorflow.keras.layers import Conv2D
以下对于CNN(卷积神经网络)非常重要的包被重新组织成不同的包
from keras.layers.convolutional import Conv2D
from keras.layers import Dense
from keras.layers.convolutional import MaxPooling2D
from keras.layers import Flatten
每当您收到导入错误时,请始终在 google 中搜索包的名称及其关联的库,例如 google“Keras Convolution2D”。它将引导您访问 keras 文档。这很容易泄露导入路径。
对于 Keras 1.2.0(从 print(keras.__version__) 开始,floydhub 上的当前版本)将这些导入用于 Conv2D(您使用的)和 Conv2DTranspose(在 Keras 示例中使用):
from keras.layers import Convolution2D as Conv2D
from keras.layers.convolutional import Deconv2D as Conv2DTranspose
可能已经晚了,但对于那些使用 IntelliJ IDEA 进行 python 编程的人来说仍然很有用。 如果您想使用 Tensorflow 2.x 的 Conv2D,请首先在 IDE 中下载 TensorFlow 包并导入 Conv2D,如下所示:
from tensorflow.python.keras.layers import Conv2D