在Keras序列模型中添加Conv2D时获取属性错误

在Keras序列模型中添加Conv2D时获取属性错误,keras,keras-layer,Keras,Keras Layer,输入:100x100图像,带3个通道 32个卷积滤波器,每个尺寸为3x3 获取以下错误: from keras.models import Sequential from keras.layers import Dense, Dropout, Flatten from keras.layers import Conv2D, MaxPooling2D from keras.optimizers import SGD model = Sequential() model.add(Conv2D(32

输入:100x100图像,带3个通道 32个卷积滤波器,每个尺寸为3x3 获取以下错误:

from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten
from keras.layers import Conv2D, MaxPooling2D
from keras.optimizers import SGD

model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(100, 100,3)))
AttributeError回溯(最近一次调用)
在()
7#输入:100x100张图像,带有3个通道->(100100,3)张量。
8#这适用于32个卷积滤波器,每个尺寸为3x3。
---->9模型。添加(Conv2D(32,(3,3),activation='relu',input_shape=(100100,3)))
/添加中的usr/local/lib/python2.7/dist-packages/keras/models.pyc(self,layer)
420#并创建连接当前层的节点
421#到我们刚刚创建的输入层。
-->422层(x)
423
424如果len(层入站节点)!=1:
/usr/local/lib/python2.7/dist-packages/keras/engine/topology.pyc in___调用(self,input,**kwargs)
552
553#实际调用层,收集输出、掩码和形状。
-->554输出=自调用(输入,**kwargs)
555输出屏蔽=自计算屏蔽(输入,前一个屏蔽)
556
/调用中的usr/local/lib/python2.7/dist-packages/keras/layers/convolutional.pyc(self,输入)
162填充=自填充,
163数据_格式=self.data_格式,
-->164扩张率=自身扩张率)
165如果self.rank==3:
166个输出=K.conv3d(
/conv2d中的usr/local/lib/python2.7/dist-packages/keras/backend/tensorflow_backend.pyc(x、内核、步幅、填充、数据格式、膨胀率)
2854 x=_预处理_conv2d_输入(x,数据格式)
2855填充=_预处理_填充(填充)
->2856 x=tf.nn.卷积(
2857输入=x,
2858过滤器=内核,
AttributeError:“模块”对象没有属性“卷积”

有人能帮助解决这个问题吗?这是因为新发行版keras 2.0吗?

将TensorFlow升级到TensorFlow 1.0keras 2.0的先决条件。 尽管在Keras官方网站上没有提及

只需升级到Tensorflow 1.0即可解决上述问题


要升级Tensorflow,请执行以下操作。

您升级Tensorflow了吗?安装了什么keras版本和tf版本?keras版本:2.0.2,Tensorflow版本:0.11.0。Tensorflow 1.0是keras 2.0的先决条件吗?@NassimBen在升级到Tensorflow 1.0后尝试过。工作正常。
AttributeError                            Traceback (most recent call last)
<ipython-input-1-8045ebb1a70a> in <module>()
      7 # input: 100x100 images with 3 channels -> (100, 100, 3) tensors.
      8 # this applies 32 convolution filters of size 3x3 each.
----> 9 model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(100, 100, 3)))

/usr/local/lib/python2.7/dist-packages/keras/models.pyc in add(self, layer)
    420                 # and create the node connecting the current layer
    421                 # to the input layer we just created.
--> 422                 layer(x)
    423 
    424             if len(layer.inbound_nodes) != 1:

/usr/local/lib/python2.7/dist-packages/keras/engine/topology.pyc in __call__(self, inputs, **kwargs)
    552 
    553             # Actually call the layer, collecting output(s), mask(s), and shape(s).
--> 554             output = self.call(inputs, **kwargs)
    555             output_mask = self.compute_mask(inputs, previous_mask)
    556 

/usr/local/lib/python2.7/dist-packages/keras/layers/convolutional.pyc in call(self, inputs)
    162                 padding=self.padding,
    163                 data_format=self.data_format,
--> 164                 dilation_rate=self.dilation_rate)
    165         if self.rank == 3:
    166             outputs = K.conv3d(

/usr/local/lib/python2.7/dist-packages/keras/backend/tensorflow_backend.pyc in conv2d(x, kernel, strides, padding, data_format, dilation_rate)
   2854     x = _preprocess_conv2d_input(x, data_format)
   2855     padding = _preprocess_padding(padding)
-> 2856     x = tf.nn.convolution(
   2857         input=x,
   2858         filter=kernel,

AttributeError: 'module' object has no attribute 'convolution'