在使用Keras书籍(F. Chollet著,第6章)中的GRU架构训练Jena天气数据集后,我在理解预测阶段时遇到了困难:
最后一层是没有激活函数的Dense层,输出如预期般是一串数字:维度为行数X 1。我猜这些应该是预测结果,但看起来像是所有14个参数的概率。为什么只对14个参数中的一个进行预测?
问题在于输入是行数X列数(14个参数),而预测输出无法重塑为14列的数组——就像天气数据集所包含的那样。
在Jena天气时间序列问题中,预测结果不应该与输入具有相同数量的列吗?
如果预测是针对所有14个参数,并且它们通过一个单元的Dense层进行了处理——那么这些预测的“流”应该能够重新塑形为行数X列数?
回答:
请参考生成器函数的定义:
samples[j] = data[indices]targets[j] = data[rows[j] + delay][1]
目标是数据中的第二列,应该是'”T (degC)”‘。所以这个模型预测的是摄氏度的温度。
关于最后一层Dense层,它没有激活函数。因此,它只是作为一个简单的线性回归模型工作。输出只是前一层输出的总结,乘以层权重。