【问题标题】:Running tensorflow on top of Keras with CPU on Windows 10在 Windows 10 上使用 CPU 在 Keras 之上运行 tensorflow
【发布时间】:2017-12-14 10:35:06
【问题描述】:

我已经在 Windows 10 上安装了 Tensorflow 和 Keras,并安装了 Anaconda。我使用的是 Intel i7 处理器。训练 CSV 文件的 4000 个数据样本需要 40 分钟,我正在尝试对这些数据执行 LSTM RNN 预测分析。

这是使用 CPU 的预期编译时间吗?我们可以使用 cpu 或切换到 GPU 来提高速度吗?

【问题讨论】:

  • 数据文件有多大?你能发布你的代码吗?
  • 它的 139kb 和我按照下面的 url machinelearningmastery.com/… 采用了相同的技术
  • LSTM 因其训练时间慢而臭名昭著,并且根据您的特定 LSTM 结构,它们往往会涉及很多元素,因此图形编译也可能需要一些时间(不过,对于任何真正的训练,训练时间将比图形编译要长得多)。是的,在 GPU 上进行训练会让事情变得更快。您可能还可以采取一些措施使其在 CPU 上更快。
  • 如果您必须使用 CPU,那么一件事就是使用标志在本地构建 TensorFlow,以启用 CPU 的所有额外功能。我用基于 SSE 的浮点数学、SSE4.2、AVX 和 FMA4 编译了我的。它确实显着加快了我的训练时间,您的结果可能会有所不同。

标签: python-3.x machine-learning tensorflow neural-network lstm


【解决方案1】:

是的,当您仅使用 CPU 进行训练时,这似乎是您的代码运行的合理时间。如果您使用 NVIDIA GPU,它将运行得更快。

但是,您可能不会使用 CPU 上的每个内核;如果是,它可能会运行得更快。您可以通过运行来更改 Tensorflow 使用的线程数

sess = tf.Session(config=tf.ConfigProto(intra_op_parallelism_threads=NUM_THREADS))

如果您设置的线程数等于您的 CPU 提供的线程数,它应该会运行得更快。

【讨论】:

  • 非常感谢您的及时回复,所以我应该在开始编译之前将这段代码添加到我的代码中吗?
  • 是的,这是我的建议。基本上,当您创建 tf.Session 变量时,调整配置以包含 intra_op_parallelism_threads=NUM_THREADS 行。如果您发布代码,我可以帮助您。
  • 由于某种原因,我无法发布我的完整代码,但如果您参考此链接,我在 cmets 部分之前使用了相同的代码 machinelearningmastery.com/…
  • 并且我使用英特尔酷睿 i7 6600U CPU @2.60 GHz 2.81GHz
  • 当然非常感谢您的帮助,无论如何,因为我使用 Keras,我不需要专门设置这个线程,因为它自己照顾,我减少了 epochs 的数量,可能是模型似乎是过拟合,在减少 epoch 数后效果很好。再次感谢您的帮助:)
猜你喜欢
  • 1970-01-01
  • 2018-12-10
  • 1970-01-01
  • 2018-12-04
  • 1970-01-01
  • 1970-01-01
  • 2016-10-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多