所以我试图训练一个简单的循环网络来检测输入信号中的“突发”。下图显示了 RNN 的输入信号(蓝色)和期望(分类)输出,以红色显示。
因此,每当检测到突发时,网络的输出应从 1 切换到 0,并保持与该输出相同。用于训练 RNN 的输入序列之间唯一发生变化的是爆发发生的时间步长。
按照https://github.com/MorvanZhou/PyTorch-Tutorial/blob/master/tutorial-contents/403_RNN_regressor.py上的教程,我无法学习 RNN。学习到的 RNN 始终以“无记忆”方式运行,即不使用记忆进行预测,如以下示例行为所示:
绿线显示了网络的预测输出。在这个例子中我做错了什么以至于无法正确学习网络?网络任务是不是很简单?
我正在使用:
torch.nn.CrossEntropyLoss 作为损失函数
用于学习的 Adam 优化器
具有 16 个内部/隐藏节点和 2 个输出节点的 RNN。他们使用 torch.RNN 类的默认激活函数。
相关分类