类型错误:“InputLayer”类型的对象没有 len()

Jos*_*ona 2 python neural-network keras tensorflow

我想从另一个 CNN 构建一个 CNN 来提取图像的特征向量。这个想法只是取第一个 CNN 的前 13 层,并用这些层构建第二层。

我正在使用带有 GPU 的 Google Colab Notebook

from keras.models import Model

layer_input_f_nmist = model_f_mnist.input
layer_outputs = [layer.output for layer in model_f_mnist.layers[:13]] 

model_mnist_featured = Model(inputs = layer_input_f_nmist, outputs = layer_outputs)

featured_f_mnist_train = model_mnist_featured.predict(X_f_mnist_train)
Run Code Online (Sandbox Code Playgroud)
TypeError                                 Traceback (most recent call last)

<ipython-input-74-ceb627fe9c83> in <module>()
      4 layer_outputs = [layer.output for layer in model_f_mnist.layers[:13]]
      5 
----> 6 model_mnist_featured = Model(inputs = layer_input_f_nmist, outputs = layer_outputs)
      7 
      8 featured_f_mnist_train = model_mnist_featured.predict(X_f_mnist_train)

4 frames

/usr/local/lib/python3.6/dist-packages/keras/engine/network.py in build_map(tensor, finished_nodes, nodes_in_progress, layer, node_index, tensor_index)
   1400 
   1401         # Propagate to all previous tensors connected to this node.
-> 1402         for i in range(len(node.inbound_layers)):
   1403             x = node.input_tensors[i]
   1404             layer = node.inbound_layers[i]

TypeError: object of type 'InputLayer' has no len()
Run Code Online (Sandbox Code Playgroud)

小智 7

我曾经也有过一样的问题。我曾经tf.keras.layers在 google colab 中实现模型。keras.layers 的输出和输入与 的输出和输入不匹配tf.keras.layers。我没有看模特的背景。当我使用tf.keras.models.Model( inputs = classifier.input, outputs = layer_outputs) 而不是 Model( inputs = classifier.input, outputs = layer_outputs)时,问题就解决了。我建议在使用google colab 时使用tf.keras.*属性而不是keras.*