首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导入tflearn非常慢。

导入tflearn非常慢。
EN

Stack Overflow用户
提问于 2018-06-27 11:29:54
回答 2查看 624关注 0票数 2

与其他模块相比,导入tflearn需要花费大量的时间。

在一个新创建的虚拟环境中,该环境只安装了tflearn,并且安装在pip中的依赖性最小。

  • import numpy as np ~0.18s
  • import tensorflow as tf ~0.90
  • import tflearn需要3.1s(并要求我安装h5py和scipy)。

按建议安装h5py和After后,import tflearn消耗的时间增加到3.5s。如何减少进口时间?

(以上所有测试都是通过将语句放入test.py并多次运行time python test.py来完成的。报告时间是由bash的time内建所报告的“真实”时间。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-27 12:00:47

简短的回答

在木星或其他有长时间解释器会话的地方做您的初始工作,这样您就不需要等待那么多的导入了。

长篇大论

您可以使用python -v跟踪导入。我从apt安装了moreutilstensorflowtflearnpip安装在一个原始的python:3.6-stretch码头容器中.

代码语言:javascript
复制
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导入了大量的包。哪几个?

代码语言:javascript
复制
# python -v -c 'import tflearn' 2>&1 | grep 'import ' | cut -f1 -d# | sort | uniq > tflearn-imports.txt
# python -v -c 'import tensorflow' 2>&1 | grep 'import ' | cut -f1 -d# | sort | uniq > tensorflow-imports.txt
# diff --suppress-common-lines tensorflow-imports.txt tflearn-imports.txt

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

代码语言:javascript
复制
# <snip>
import 'tensorflow.contrib.summary.summary'
import 'tensorflow.contrib'
import 'tflearn.variables'
import 'tflearn.config'
# <snip>

会是 statement吗?让我们找出..。

代码语言:javascript
复制
# 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不使用),所以需要一段时间。

(这里过去曾讨论过如何在模块中实现实现,但这与此无关,因为:)

不幸的是,tflearn中还有其他地方也从contrib中导入零碎信息,因此消除这种依赖不会有多大帮助。

票数 3
EN

Stack Overflow用户

发布于 2018-06-27 12:22:55

一些导入的模块在开始使用时初始化,有些则没有。当您导入它时,tflearn会初始化它,而且由于它有很多依赖项,所以它花费那么多时间并不奇怪。

下面的质量保证会给你很长的时间优化的想法。

improving speed of Python module import

祝好运

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51061689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档