与其他模块相比,导入tflearn需要大量时间。在
在新创建的虚拟环境中,只安装了tflearn和最小依赖项pip
:
import numpy as np
需要~0.18秒import tensorflow as tf
需要~0.90秒import tflearn
需要~3.1s(并要求我安装h5py和scipy)。在按照建议安装h5py和scipy后,import tflearn
所花费的时间增加到~3.5s。如何减少导入时间?在
(以上所有测试都是通过将语句放入测试.py并运行time python test.py
几次。报告的时间是bash的time
内建报告的“实时”时间。)
简短的回答
在Jupyter或其他具有长时间解释器会话的东西中进行初始工作,这样就不需要等待太多导入。在
冗长的回答
您可以使用}安装在一个原始的
python -v
来跟踪导入。我把来自apt的moreutils
和tensorflow
和{python:3.6-stretch
Docker容器中。。。在很明显,导入
^{pr2}$tflearn
会导入大量的软件包。 哪一个?在我将省去831行输出,但是看起来}本身并不是这样。有了这些信息,我们可以查看原始的}是导入{}的模块。。。在
tflearn
导入所有tensorflow.contrib
,这需要相当长的时间,而且导入{python -v -c 'import tflearn' 2>&1
输出,看起来{可能是this ^{} statement ?让我们来看看。。。在
阿尤普,看起来像!由于Python的导入方式,导入子模块必须对整个包求值,而且由于}) ,因此需要一段时间。在
tensorflow.contrib
不使用Tensorflow's Python lazy loader (which does mention ^{(以前在这里的模块中有关于供应商的讨论,但这无关紧要,因为:)
不幸的是,
tflearn
中还有其他地方也从contrib
导入位和片段,因此解决这个依赖关系并没有多大帮助。在一些导入的模块在您开始使用时初始化,而有些则没有初始化。
tflearn
在导入时初始化,因为它有很多依赖项,所以花费这么多时间也就不足为奇了。在下面的soqa会给你一个很长时间的优化概念。在
improving speed of Python module import
祝你好运
相关问题 更多 >
编程相关推荐