【问题标题】:Incompatible shapes: [30,5] vs. [5,1] [[node huber_loss/Sub ..........]]不兼容的形状:[30,5] vs. [5,1] [[node huber_loss/Sub ..........]]
【发布时间】:2022-01-11 20:31:39
【问题描述】:

我有一个想要训练的简单神经网络。 它应该能够通过窗口策略进行预测。

但是,第一个纪元提示我以下错误: 不兼容的形状:[30,5] 与 [5,1] [[节点 huber_loss/Sub

我已经尝试使用“嵌入”层来定义输出的维度,如另一篇关于堆栈溢出的帖子中所述。 没有成功。

这是我从免费 MOOC 中重复使用的代码:

def window_dataset(series, window_size, batch_size=32,
                   shuffle_buffer=1000):
    dataset = tf.data.Dataset.from_tensor_slices(series)
    dataset = dataset.window(window_size + 1, shift=1, drop_remainder=True)
    dataset = dataset.flat_map(lambda window: window.batch(window_size + 1))

    dataset = dataset.map(lambda window: (window[:-1], window[-1]))
    
    dataset = dataset.batch(batch_size) #.prefetch(1)
    
    return dataset


keras.backend.clear_session()
tf.random.set_seed(42)
np.random.seed(42)

window_size = 30
train_set = window_dataset(x_train, window_size)
valid_set = window_dataset(x_valid, window_size)


model = keras.models.Sequential([
    keras.layers.Dense(5, input_shape=([window_size,5]))
])                                                 

optimiseur = keras.optimizers.SGD(learning_rate=1e-5, momentum=0.9)

model.compile(loss=keras.losses.Huber(), optimizer=optimiseur, metrics=["mae"])

model.fit(train_set, epochs=100, validation_data=valid_set)

这是train_setvalid_set中元素的形状:

x, y = train_set

x= tf.Tensor(..., shape=(32, 30, 5), dtype=int64)  
y= tf.Tensor(..., shape=(32, 5), dtype=int64)

如果有人可以,请帮助解决这个问题,我会很高兴! 提前致谢。

【问题讨论】:

    标签: python tensorflow keras dimension


    【解决方案1】:

    我终于找到了问题:

    以下代码已更改

     dataset = dataset.map(lambda window: (window[:-1], window[-1]))
    

    进入

    dataset = dataset.map(lambda window: (window[:-1], tf.reshape(window[-1], [1,5])))
    

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    • 2019-10-20
    • 2022-01-03
    相关资源
    最近更新 更多