首页 > 解决方案 > TensorFlow & Keras AttributeError:该层从未被调用,因此没有定义的输入形状

问题描述

我创建了一个图层并将其命名为:

import tensorflow as tf
from tensorflow import keras

dense = keras.layers.Dense(10)
X = tf.constant([[1, 2, 3], [4, 5, 6]])
dense(X)

然后我尝试获取它的输入形状:

dense.input_shape

但我得到这个错误:

AttributeError: The layer has never been called and thus has no defined input shape.

有人可以解释这个错误以及如何解决它吗?在我看来,所述错误是完全错误的。我显然已经调用了图层。并且图层已经建好(比如我看到那个dense.weights不是空的)。

TensorFlow 版本 2.5.0。

标签: pythontensorflowkeras

解决方案


尝试将其放入顺序模型(以获取.predict()方法)并传递一个 numpy 数组:

dense = tf.keras.models.Sequential()
dense.add(tf.keras.layers.Dense(10))
X =np.array([[1, 2, 3], [4, 5, 6]],dtype=np.float32)
print(dense.predict(X))

推荐阅读