从fi加载后CNTK/TF-LSTM模型性能下降

2024-04-19 21:58:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用CNTK和TF在一个虚拟数据集上实现char-LSTM分类模型,两个模型在一个完美的数据集上都达到了100%的准确率(我现在不担心过度拟合)。你知道吗

然而,一旦训练完成,模型被保存到一个文件中并恢复,模型似乎忘记了训练,在同一个数据集上的性能很差。你知道吗

我比较了训练后和恢复后LSTMs和稠密层的权重和偏差,它们非常匹配。我觉得还有一些东西需要恢复(可能是LSTM状态?)使模型重新准确运行。你知道吗

恢复后的LSTM模型是否需要以某种方式“启动”,然后才能再次满负荷运行?你知道吗

代码和数据集可用here。你知道吗


Tags: 文件数据模型tf分类性能权重集上
1条回答
网友
1楼 · 发布于 2024-04-19 21:58:17

此问题与保存/加载LSTM无关。你知道吗

在Python中,将集合转换为列表时,结果不会排序,并且不同于运行:

In [1]: list(set(['t', 'h', 'i', 's', ' ', 'i', 's', ' ', 'a', ' ', 's', 'p', 'a', 'm']))
Out[1]: ['s', 'a', 'm', 't', 'h', 'p', 'i', ' ']

In [1]: list(set(['t', 'h', 'i', 's', ' ', 'i', 's', ' ', 'a', ' ', 's', 'p', 'a', 'm']))
Out[1]: [' ', 'h', 'a', 't', 'm', 'i', 'p', 's']

因此,在您的代码中,不同的字符在向量中的位置会因运行而异,因此性能只是随机的。你知道吗

只需将all_chars = list(set(all_chars))更改为all_chars = sorted(set(all_chars))就可以解决这个问题(我只验证了CNTK脚本)。你知道吗

相关问题 更多 >