You need to enable JavaScript to run this app. Coursera深度学习专项LSTM音乐生成模型维度不匹配报错如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Coursera深度学习专项LSTM音乐生成模型维度不匹配报错如何解决

问题原因及修复方案

你代码里的问题集中在循环生成预测值的部分,共3处错误,按优先级排序如下:

  • 最后一维维度不匹配的直接原因是tf.one_hot的深度参数设置错误:你写死了depth=78,但根据报错信息LSTM要求输入最后一维是90,直接把这里改成depth=n_values即可,n_values是代码开头已经定义好的输入特征维度,值为90。
  • 输入第一维变成90是因为tf.argmax没有指定运算维度:out的形状是(batch_size, 90),默认tf.argmax会沿第0维(batch维)取最大值,返回形状为(90,)的张量,直接导致后续维度全部错位。修改为x = tf.math.argmax(out, axis=-1),沿最后一维(类别维)取最大值,返回形状为(batch_size,)符合预期。
  • 隐藏层输出逻辑错误:LSTMCell调用后返回的是(当前步输出, (新隐藏状态, 新细胞状态)),你当前的返回值拆分方式以及给densor传入_的写法是错误的,正确写法如下:
# Step 2.A 正确拆分返回值
a, (_, c) = LSTM_cell(x, initial_state=[a, c])
# Step 2.B 将LSTM的输出传给全连接层
out = densor(a)

修改完以上3处后维度错误即可解决。

内容的提问来源于stack exchange,提问作者Naman Garg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 17:15:02