我在 tensorflow 中有一个 1 层 LSTM 模型,并且我的 GPU 的温度读数在训练阶段变得相当高。始终在 80 C 和 90 C 之间变化。我的 GPU 是 24/7 冷藏室中的水冷 gtx 1080“超级时钟”版本。该模型有效,但这个温度让我担心。我想知道这是否正常和安全。
我正在用标记化的 reddit 评论训练 LSTM 的下一个单词预测问题。我从 wildml.com 的不同教程中得到了这个想法。以下是有关它的一些详细信息:
- TensorFlow 1.2.1、Cuda tk 8.0、Cudnn 6.0、Nvidia 驱动程序 375.66
- 我的训练数据包含 20 万条 reddit 评论。
- 我的字典由 8000 个单词组成,这意味着每个预测有 8000 个分类
- 我使用 GLOVE 预训练的 100 维维基百科词嵌入
- 我没有使用占位符来提供我的输入。这一切都由 TFRecordfiles 阅读器完成,它将示例输入到 100k 容量的随机洗牌队列
- 从随机洗牌队列,它进入一个填充 FIFO 队列,在那里我生成了 20 个零填充小批量
- 20 个大小的小批量进入一个 tf.dynamic_rnn(),其中 LSTM 单元的隐藏维度为 150
- 我使用 tf.sign() 掩盖损失并使用 Adam 优化器最小化结果
我注意到当我提高小批量大小时温度会升高很多。1 号小批量(单个示例),读数在 72-75 摄氏度之间。对于 10 号小批量,它立即达到 78 摄氏度并保持在 78-84 摄氏度的范围内。对于 20 号小批量,84 -88 C. 30 小批量,87-92 C。
如果我将隐藏维度提高到 200、250、300 等,同时保持小批量大小固定,我也会得到类似的温度升高。
我也训练了相同的模型,但只使用占位符提供数据,即不使用 TFRecord、队列和小批量。它保持在 65 C 左右,但显然远未优化和理想地使用占位符来喂网。
我真的很感谢你的帮助,说实话,我有点绝望。
- - - - - - - - -编辑 - - - - - - - - - - -
事实证明,我的 BIOS 上已将水冷却器泵配置为根据 CPU 温度而变化……显然 GPU 温度不会影响它,这就是发生的事情。它以 50% 的容量运行。好吧,我已经将它调整为始终保持 100%,现在相同的模型以大约 100 的最高温度运行。83 C. 仍然不完美,但有很大的改进。我想由于我的模型的复杂性 + 我的 GPU 的 1.8 GHz 时钟非常高,我无能为力。