导入tflearn非常重要

2024-04-26 22:11:20 发布

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

与其他模块相比,导入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内建报告的“实时”时间。)


Tags: 模块pippyimportnumpytimetensorflowas
2条回答

简短的回答

在Jupyter或其他具有长时间解释器会话的东西中进行初始工作,这样就不需要等待太多导入。在

冗长的回答

您可以使用python -v来跟踪导入。我把来自apt的moreutilstensorflow和{}安装在一个原始的python:3.6-stretchDocker容器中。。。在

root@10e4bcd91377:/# python -v -c 'import tensorflow' 2>&1 | ts '%H:%M:%.S' | grep 'import ' | wc -l
954
root@10e4bcd91377:/# python -v -c 'import tflearn' 2>&1 | ts '%H:%M:%.S' | grep 'import ' | wc -l
1768

很明显,导入tflearn会导入大量的软件包。 哪一个?在

^{pr2}$

我将省去831行输出,但是看起来tflearn导入所有tensorflow.contrib,这需要相当长的时间,而且导入{}本身并不是这样。有了这些信息,我们可以查看原始的python -v -c 'import tflearn' 2>&1输出,看起来{}是导入{}的模块。。。在

# <snip>
import 'tensorflow.contrib.summary.summary'
import 'tensorflow.contrib'
import 'tflearn.variables'
import 'tflearn.config'
# <snip>

可能是this ^{} statement?让我们来看看。。。在

# time python -v -c 'from tensorflow.contrib.framework.python.ops import add_arg_scope as contrib_add_arg_scope' 2>&1 | grep 'import ' | wc -l
1727

real    0m4.010s
user    0m3.820s
sys 0m0.410s
root@10e4bcd91377:/#

阿尤普,看起来像!由于Python的导入方式,导入子模块必须对整个包求值,而且由于tensorflow.contrib不使用Tensorflow's Python lazy loader (which does mention ^{}),因此需要一段时间。在

(以前在这里的模块中有关于供应商的讨论,但这无关紧要,因为:)

不幸的是,tflearn中还有其他地方也从contrib导入位和片段,因此解决这个依赖关系并没有多大帮助。在

一些导入的模块在您开始使用时初始化,而有些则没有初始化。tflearn在导入时初始化,因为它有很多依赖项,所以花费这么多时间也就不足为奇了。在

下面的soqa会给你一个很长时间的优化概念。在

improving speed of Python module import

祝你好运

相关问题 更多 >