'Dense'类型的对象没有len()

时间:2019-08-21 06:47:08

标签: python tensorflow keras conv-neural-network

我尝试创建CNN模型,但总是收到此错误消息。

  

错误:()---->中的TypeError Traceback(最近一次调用为最新)---- 1个模型= simple_conv_model()5帧/usr/local/lib/python3.6/dist-packages/keras/engine/network。 py in build_map(张量,finished_nodes,nodes_in_progress,图层,node_index,tensor_index)1345 1346#传播到连接到该节点的所有先前张量。 -> 1347 for i in range(len(node.inbound_layers)):1348 x = node.input_tensors [i] 1349 layer = node.inbound_layers [i] TypeError:“密集”类型的对象没有len()

这是模型:

Activities

5 个答案:

答案 0 :(得分:0)

您可能错误地将input_layer用作所有三个Conv2D层的输入,而您很可能打算编写如下内容:

model = layers.Conv2D(16,3,...)(input_layer) # this is correct
# ...
model = layers.Conv2D(32, 3, ...)(model)  # pass `model` here as input
# ...
model = layers.Conv2D(64, 3, ...)(model)  # pass `model` here as input

答案 1 :(得分:0)

我之前也遇到过这个问题,因为我是从tensorflow.python.keras导入库的。只需更改为使用keras即可

答案 2 :(得分:0)

即使使用要素层和功能性API建立简单的网络,我也使用相同的错误。在@patacharapon的对面,

我替换了

import keras

此处的keras版本为2.3.1

from tensorflow import keras

此处的keras版本为2.3.0-tf

答案 3 :(得分:0)

我将 keras.models 替换为 tensorflow.keras.models,它对我有用。

之前:

from keras.models import Model

更换后:

from tensorflow.keras.models import Model

答案 4 :(得分:-1)

此处提供了正确的解决方案:https://www.programmersought.com/article/14464784093/ 即从 tenorflow.keras.models 而不是 keras.models 导入模型