Python 为什么在拟合和预测模型时,密集层输入_形状存在差异?
我正在学习TF并尝试实现以下代码Python 为什么在拟合和预测模型时,密集层输入_形状存在差异?,python,tensorflow,keras,neural-network,Python,Tensorflow,Keras,Neural Network,我正在学习TF并尝试实现以下代码 window_size = 4 layer = tf.keras.layers.Dense(1, input_shape=(window_size,)) model = tf.keras.models.Sequential([layer]) model.compile(...) model.fit(dataset,epochs=100,verbose=0) 所以在稠密()层中,我的输入形状是(4,) 那为什么会这样呢 model.predict(np.arr
window_size = 4
layer = tf.keras.layers.Dense(1, input_shape=(window_size,))
model = tf.keras.models.Sequential([layer])
model.compile(...)
model.fit(dataset,epochs=100,verbose=0)
所以在稠密()层中,我的输入形状是(4,)
那为什么会这样呢
model.predict(np.array([4,5,3,2]))
不工作?
和model.predict(np.array([4,5,3,2])[None])
这有效吗?
如果提到的输入_形状是(4),那么在预测为什么需要(1,4)时
谢谢
表示采样前的特征数量input\u shape
- 我们使用小批量梯度下降训练,所以我们发送了一批 每次培训的样本(用批次大小表示)。从此 批次可能因机器规格和数据集而异, 我们没有在模型中使用修复它。更重要的是,模型架构确实如此 不取决于样本数量,而是取决于样本数量 每个样本的输入特征数
将不起作用,因为您预测的是每个特征的4个样本,但您的model.predict(np.array([4,5,3,2]))
每个样本有4个特征input\u shape
- 您可以对大小为
的数据进行预测,其中nx4
是样本数,每个样本具有n
特征4
100 x 4
,即4个特征中的每一个都有100个样本,并且您正在使用keras的fit
方法,您将批量大小设置为8。在内部,fit
方法将一次传递8个样本。预测也是如此。如果您只有一个样品,请以shape1 X 4
的形式发送。谢谢。请再问一个后续问题。我的数据集有两列,一列用于输入要素(X),一列用于标签(Y)。我将整个数据集传递给fit()模型,其中没有提到什么是X,什么是Y。模型是如何解释的?@Neo你做错了。在fit
内部,第一个参数是featuresX
,第二个参数是labelY
。检查文档我的方法也正确:根据文档:“如果x是dataset、generator或keras.utils.Sequence实例,则不应指定y(因为目标将从x获得)。”谢谢