El módulo de importación de tensorflow es lento en tensorflow 2


8

Relacionado: El módulo de importación TensorFlow contrib es lento en TensorFlow 1.2.1 también: ¿Qué puede hacer que la importación de TensorFlow sea tan lenta?

Estoy usando un ssd e importando TensorFlow. Tengo una PC de 4 ghz de 8 núcleos con 16 gb de ram (Procesador AMD FX (tm) -8350 Eight-Core Processor, 4000 Mhz, 4 Core (s), 8 Procesador (es) lógico (s). TensorFlow tarda entre 10 y 12 segundos en importarse.

¿Hay alguna forma de importar selectivamente partes de TensorFlow?

¿Ayudaría un disco RAM?

¿Se está haciendo más trabajo en cosas como esta o: Lento para importar tensorflow.contrib con Python 3 porque inspect.stack es lento # 11829 ?

Editar: Python 3.6.8 :: Anaconda, Inc. en Windows 8.1. Dos cuadro, cygwin bash son lentos a los 12 segundos. El código Vs bash / power shell es más rápido a los 8 segundos. Importando en un archivo .py como: import tensorflow as tf. No estoy seguro de qué entornos son.

Edición 2:

PS D:\ray\dev\ml\ss1> conda info --envs
# conda environments:
#
base                  *  D:\Anaconda3
first                    D:\Anaconda3\envs\first
                         d:\Anaconda3
first                    d:\Anaconda3\envs\first

Edición 3: Usando el siguiente código, obtengo 9-10 segundos en un símbolo del sistema:

(tf2) D:\ray\dev\ml\ss1>python timeimport.py
 import tensorflow: 1 units, 9.796 seconds. 0.1 units/second.
version: 2.0.0

(tf2) D:\ray\dev\ml\ss1>python timeimport.py
 import tensorflow: 1 units, 9.448 seconds. 0.11 units/second.
version: 2.0.0

(tf2) D:\ray\dev\ml\ss1>python timeimport.py
 import tensorflow: 1 units, 9.421 seconds. 0.11 units/second.
version: 2.0.0


from __future__ import absolute_import, division, print_function, unicode_literals
from contextlib import contextmanager
from timeit import default_timer as timer
@contextmanager
def timing(description: str,units=1,title="",before="") -> None:
    if before!="":
        print(before,flush=True)
    start = timer()
    yield
    dt = timer() - start
    frequency=0 if units is None else (units/dt)
    if units is None:
        if title is None: print(f"{description}: {dt} seconds.",flush=True)
        else: print(f"{title} {description}: {dt} seconds.",flush=True)
    else: 
        #"{0:.2f}".format(a)
        dt=round(dt,3)
        frequency=round(frequency,2)
        print(f"{title} {description}: {str(units)} units, {dt} seconds. {str(frequency)} units/second.",flush=True) 
    return dt
with timing("import tensorflow",1):
    import tensorflow as tf
print("version:",tf.__version__)

Edición 4: apagando el degender de Windows, obtengo 8-9 segundos en lugar de 9-10 segundos.


Para mi máquina Linux, la importación por primera vez siempre es lenta, pero cualquier importación sucesiva (es decir, en diferentes instancias de Python CLI) es inmediata. ¿Se observa también un comportamiento similar en tu lado?
Rahul Bharadwaj

1
Tengo Windoze. ver edición 3.
Ray Tayek

¿Puedes intentar deshabilitar Windows Defender y cualquier otro antivirus y punto de referencia nuevamente? Además, ¿está utilizando el susbsistem de Windows para Linux (WSL)?
BlackBear

win 8.1 - afaik, no estoy usando ningún subsistema de Windows.
Ray Tayek

Respuestas:


0

Quiero comenzar diciendo que estoy usando un quad core de 3 Ghz y no me lleva cerca de diez segundos importar TensorFlow en Python. ¿Podría explicar en qué entorno tiene problemas para importarlo (es decir, Windows / Mac / Linux en terminal / consola / símbolo del sistema / Anaconda, etc.)? No especificó cómo está tratando de importar Tensorflow, pero considerando que lo etiquetó con python-3.x, supongo que está importando Tensorflow con Python. Estoy seguro de que esta no será una respuesta popular, pero tal vez considere usar Tensorflow con un lenguaje compilado como c ++. Es bien sabido que los lenguajes interpretados, como Python, son considerablemente más lentos que los compilados y, si la velocidad es primordial, parecería obvio utilizar TensorFlow en su idioma nativo.


por favor vea mis ediciones
Ray Tayek
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.