Das Tensorflow-Modul importieren ist in Tensorflow 2 langsam

8

Verwandte Themen : Importieren Das TensorFlow-Contrib-Modul ist in TensorFlow 1.2.1 ebenfalls langsam. Was kann dazu führen, dass der TensorFlow-Import so langsam ist?

Ich benutze eine SSD und importiere TensorFlow. Ich habe 4 GHz 8-Kern-PC mit 16 GB RAM (Prozessor AMD FX (tm) -8350 Acht-Kern-Prozessor, 4000 MHz, 4 Kern (e), 8 logische Prozessor (en)). Der Import von TensorFlow dauert 10-12 Sekunden.

Gibt es eine Möglichkeit, Teile von TensorFlow selektiv zu importieren?

Würde eine RAM-Disk helfen?

Gibt es weitere Arbeiten an solchen Dingen oder: Langsamer Import von tensorflow.contrib mit Python 3, da inspect.stack langsam ist # 11829 ?

Bearbeiten: Python 3.6.8 :: Anaconda, Inc. auf Windoze 8.1. Dos Box, Cygwin Bash sind langsam bei 12 Sekunden. Vs Code Bash / Power Shell ist mit 8 Sekunden am schnellsten. Importieren in eine .py-Datei wie: Tensorflow als tf importieren. Ich bin mir nicht sicher, welche Umgebungen es gibt.

Bearbeiten 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

Bearbeiten 3: Mit dem folgenden Code erhalte ich 9-10 Sekunden in einer Eingabeaufforderung:

(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__)

Edit 4: Windows Degender drehen, ich bekomme 8-9 Sekunden statt 9-10 Sekunden.

Ray Tayek
quelle
Bei meinem Linux-Computer ist der erstmalige Import immer langsam, aber alle aufeinanderfolgenden Importe (dh über verschiedene Python CLI-Instanzen hinweg) erfolgen sofort. Wird auch bei Ihnen ein ähnliches Verhalten beobachtet?
Rahul Bharadwaj
1
Ich habe Windoze. siehe bitte bearbeiten 3.
Ray Tayek
Können Sie versuchen, Windows Defender und andere Antiviren- und Benchmark-Funktionen erneut zu deaktivieren? Verwenden Sie auch das Windows Susbsistem für Linux (WSL)?
BlackBear
win 8.1 - afaik, ich benutze kein Windows-Subsystem.
Ray Tayek

Antworten:

0

Zunächst möchte ich sagen, dass ich einen 3-GHz-Quad-Core verwende und für den Import von TensorFlow in Python keine zehn Sekunden benötige. Könnten Sie näher erläutern, in welcher Umgebung Sie Probleme beim Importieren haben (z. B. Windows / Mac / Linux in Terminal / Konsole / Eingabeaufforderung / Anaconda usw.)? Sie haben nicht angegeben, wie Sie Tensorflow importieren möchten, aber wenn Sie bedenken, dass Sie es mit Python-3.x markiert haben, gehe ich davon aus, dass Sie Tensorflow mit Python importieren. Ich bin mir sicher, dass dies keine beliebte Antwort sein wird, aber vielleicht sollten Sie Tensorflow mit einer kompilierten Sprache wie c ++ verwenden. Es ist bekannt, dass interpretierte Sprachen wie Python erheblich langsamer sind als kompilierte Sprachen. Wenn Geschwindigkeit an erster Stelle steht, ist es naheliegend, TensorFlow in seiner Muttersprache zu verwenden.

seitlich
quelle
Bitte sehen Sie meine Änderungen.
Ray Tayek