Tensorflow RNN 模型形状不兼容错误

时间:2021-06-17 12:44:22

标签: python tensorflow keras

我正在尝试针对一些文本数据训练 RNN 分类器。

事实:

  • 我一直在尝试使用 https://www.tensorflow.org/text/tutorials/text_classification_rnn 作为示例,但是该示例使用的是通过 tensorflow_dataset 包下载的数据,而我拥有自己的数据集。
  • 我输入了文本张量 (X) 和单热编码数组 (Y)。
  • 我偏离了示例,将损失更改为 Categorical Cross Entropy,并将最终的 Dense 层设置为具有 softmax 的激活和 32 的维度。32 是每个单热编码行的长度。我想这就是我想要的最终输出。
  • 出现错误:SELECT * FROM table1, table2 LEFT JOIN other_table ON other_table.id = table2.id AND other_table.otherId = table1.otherId

问题:

为什么我会在这个模型的任何地方得到 1 的形状?有没有我遗漏的地方?

day_slot = Day_slot.order(id: :asc).
   where(["day_id IN (?) AND slot_id IN (?) AND #{zone} = ?", @day, @slots, true]).all

1 个答案:

答案 0 :(得分:1)

问题肯定出在数据集中:(None, 32) 是模型输出的形状,而 (None, 1) 是提供的 y_indexes 变量的形状。

也许您实际上并没有对标签进行单热编码,在这种情况下,只需执行或使用 SparseCategoricalCrossentropy() 作为损失函数。