什么原因会导致tensorflow导入速度缓慢?

10
我已经使用tensorflow有一段时间了。最近我的脚本运行非常缓慢(>80秒),而之前的速度是(<1秒)。我把问题缩小到import tensorflow上,这个导入需要很长时间(所有其他库和操作都在<<1秒内运行)。
我可能已经找到了问题的追踪,但我不知道该怎么处理它:当我在80秒的导入期间键盘中断(Strg+C),通常会出现以下内容:
Traceback (most recent call last):
  File "/.../py_env/tf_unet/lib/python3.5/site.py", line 703, in <module>
    main()
  File "/.../py_env/tf_unet/lib/python3.5/site.py", line 694, in main
    execsitecustomize()
  File "/.../py_env/tf_unet/lib/python3.5/site.py", line 548, in execsitecustomize
    import sitecustomize
  File "/usr/lib/python3.5/sitecustomize.py", line 3, in <module>
    import apport_python_hook
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 954, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 896, in _find_spec
  File "<frozen importlib._bootstrap_external>", line 1139, in find_spec
  File "<frozen importlib._bootstrap_external>", line 1113, in _get_spec
  File "<frozen importlib._bootstrap_external>", line 1225, in find_spec
  File "<frozen importlib._bootstrap_external>", line 1264, in _fill_cache
KeyboardInterrupt

这是否意味着“填充缓存” (_fill_cache) 方面出了问题?有人遇到过类似情况吗?我能否以某种方式修复此问题?


我所尝试的:

我将import tensorflow拆分为我需要的模块(from tensorflow import train / python_io / compat),但没有改善。

我发现其他人也抱怨import tensorflow速度慢在这里, 在这里,以及在相应的SO问题中,但在小于10秒的范围内并且是特定模块(tf.contribtf.learn)。因此,从那里学到的不多。此外,我正在使用tensorflow 1.4.0,它显然解决了描述问题。

只是作为参考,我使用了这个小代码来确定速度:

from timeit import default_timer as timer
print('import tensorflow')
start = timer()
import tensorflow
end = timer()
print('Elapsed time: ' + str(end - start))

在我的情况下,由于我将TF虚拟环境放在网络驱动器上,导致严重的缓慢。将其移动到本地有所帮助,不确定是否适用于您的情况。 - mikkola
@mikkola:我之前没有考虑过这个选项,因为我正在使用分布式存储的集群。但是我们确实有不同的RAID,并且发现其中一个正在边缘运行。将TensorFlow安装移到另一个RAID上,实际上极大地提高了性能(导入现在只需要5-15秒)。谢谢!你能把这转化成一个我可以接受的答案吗? - Honeybear
1个回答

7
这可能不是唯一的原因,但根据我的经验,这确实起到了一定的作用。由于我将TF虚拟环境放在网络驱动器上,导致Tensorflow的导入速度非常慢。将虚拟环境移动到本地硬盘可以在这方面有所改善。您可以尝试在您的环境中应用类似的方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接