Tensorflow의 계산 시간은 매우 간단한 "for 루프"에서 점차 느려집니다.

Zeekzhen

tensorflow에 매우 이상한 문제가 있습니다. 내 질문을 다음 버전으로 단순화했습니다.

나는 단지 텐서 플로우 언어로 간단한 행렬 곱셈을 작성한 다음이 행렬 곱셈을 "for 루프"에 넣었습니다 (물론 다른 복잡한 함수를 for 루프에 넣을 수 있습니다. 결론은 동일합니다).

10000 번의 반복 횟수를 설정하고 각 루프에서 소비되는 시간을 인쇄하면 시간 소비가 점차 증가하는 것을 볼 수 있습니다. (각 루프의 시간이 동일해야하지만 그렇지 않았습니다.)

import tensorflow as tf
import numpy as np
import datetime  

graph=tf.Graph()
with graph.as_default():  
    with tf.device("/gpu:0"):
        a=np.arange(10).reshape(1,-1)
        b=np.arange(100).reshape(10,10)
        A = tf.placeholder(tf.float32, [1,10])
        B = tf.placeholder(tf.float32, [10,10])


        sess = tf.InteractiveSession()

        for step in range(10000):
            starttime = datetime.datetime.now()  

            RESULT = tf.matmul(A,B)
            RESULT=sess.run(RESULT,feed_dict={A: a, B: b})

            endtime = datetime.datetime.now()  
            print(endtime-starttime)

처음에 프로그램은 다음 결과를 인쇄합니다.

0:00:00.003058
0:00:00.003216
0:00:00.003195
0:00:00.003213
0:00:00.003653
0:00:00.003599
0:00:00.003297
0:00:00.003172
0:00:00.003235
0:00:00.004374
0:00:00.003442
0:00:00.003387
0:00:00.003290

몇 초 후, 나는 이것을 얻었다 :

0:00:00.011470
0:00:00.013232
0:00:00.013088
0:00:00.015906
0:00:00.012659
0:00:00.012914
0:00:00.012562
0:00:00.011941
0:00:00.013575
0:00:00.012251
0:00:00.013759
0:00:00.012534
0:00:00.011859

...

0:00:00.031062
0:00:00.031676
0:00:00.031388
0:00:00.031349
0:00:00.032476
0:00:00.031337
0:00:00.031147
0:00:00.031121
0:00:00.030795
0:00:00.031143
0:00:00.031277
0:00:00.031015
0:00:00.034139
0:00:00.032749

계산이 느려지고 있음을 의미합니다. 아무도 이유를 말해 줄 수 있습니까? 매우 감사합니다.

Arnaud De Broissia

루프를 통과 할 때마다 새 작업을 생성합니다. (tf.matmul)

따라서 tensorflow 그래프가 통제 불능 상태가되고 있습니다.

tensorflow에서는 작업을 한 번 생성 한 다음 (예 : tf.matmul (A, B)), sess.run을 사용하여이 작업을 여러 번 실행합니다 (예 : sess.run (RESULT, feed_dict = {A : ai, B : bi}.

오퍼레이션을 생성하는 것은 함수를 작성하거나 처리 장치를 생성하는 것과 같으며, 한 번만 생성하면 여러 입력에 사용할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Python : 루프에서 Datetime 객체 간의 차이 계산

분류에서Dev

직렬 계산보다 느린 루프에 대한 간단한 OpenMP 병렬

분류에서Dev

간단한 Java 점수 계산의 중첩 제약 조건이 매우 느립니다.

분류에서Dev

중첩 루프의 C에서 시간 복잡도 계산

분류에서Dev

문자열 "x"를 찾고 다른 값에 대한 시트 간의 차이점을 표시하는 VBA 매크로 For-each 루프

분류에서Dev

문자열 "x"를 찾고 다른 값에 대한 시트 간의 차이점을 표시하는 VBA 매크로 For-each 루프

분류에서Dev

3 개의 중첩 루프에 대한 시간 복잡도 계산

분류에서Dev

Matlab : for 루프 내부의 열에 대한 산술 연산 (간단하지만 기만적입니다!)

분류에서Dev

루프없이 한 열과 다른 열 선택 간의 상관 관계 계산

분류에서Dev

bash에서 간단한 루프를 시도 할 때의 문제

분류에서Dev

벡터 간의 거리를 계산할 때 이중 'for 루프'로 인한 2 차 계산을 피하는 방법

분류에서Dev

dplyr의 각 열에 대한 부분 집합 및 루프 계산

분류에서Dev

JavaScript에서 for 루프없이 객체 배열의 값 차이를 계산하는 방법은 무엇입니까?

분류에서Dev

전 처리기 단계에서 펼쳐진 루프 매크로의 경우?

분류에서Dev

간단한 정규식은 JQuery의 anidate if / else 루프에서 작동하지 않습니다.

분류에서Dev

프롤로그 : 도시 간의 경로 추적은 무한 루프에 빠집니다.

분류에서Dev

React의 간단한 for 루프에는 식별자가 필요합니다.

분류에서Dev

'지금'은 천만 반복 루프에서 느려집니다.

분류에서Dev

F #의 for 루프에서 '->'와 'do'의 차이점은 무엇입니까?

분류에서Dev

루프 최악의 경우 실행 시간에 대한 성장 순서

분류에서Dev

DateTime 멀티 스레딩 UDP Sender는 일정 루프에서 DateTime 개체의 값을 다시 할당 할 때 시간 결과가 매우 다릅니다.

분류에서Dev

WebAssembly 사양에서 "블록"과 "루프"의 차이점은 무엇입니까?

분류에서Dev

for 루프에서 zip과 list의 차이점은 무엇입니까?

분류에서Dev

for 루프 (Java)에서 String []과 String의 차이점은 무엇입니까?

분류에서Dev

루프의 두 지점간에 개체를 이동 하시겠습니까?

분류에서Dev

메인 게임 루프의 시간 계산

분류에서Dev

MaxValue, MinValue 및 계산 간격에 대한 VBA 루프 / 할당

분류에서Dev

루프의 시간 복잡성 차이

분류에서Dev

중첩 루프에 대한 행렬 계산의 Python 및 Matlab 차이

Related 관련 기사

  1. 1

    Python : 루프에서 Datetime 객체 간의 차이 계산

  2. 2

    직렬 계산보다 느린 루프에 대한 간단한 OpenMP 병렬

  3. 3

    간단한 Java 점수 계산의 중첩 제약 조건이 매우 느립니다.

  4. 4

    중첩 루프의 C에서 시간 복잡도 계산

  5. 5

    문자열 "x"를 찾고 다른 값에 대한 시트 간의 차이점을 표시하는 VBA 매크로 For-each 루프

  6. 6

    문자열 "x"를 찾고 다른 값에 대한 시트 간의 차이점을 표시하는 VBA 매크로 For-each 루프

  7. 7

    3 개의 중첩 루프에 대한 시간 복잡도 계산

  8. 8

    Matlab : for 루프 내부의 열에 대한 산술 연산 (간단하지만 기만적입니다!)

  9. 9

    루프없이 한 열과 다른 열 선택 간의 상관 관계 계산

  10. 10

    bash에서 간단한 루프를 시도 할 때의 문제

  11. 11

    벡터 간의 거리를 계산할 때 이중 'for 루프'로 인한 2 차 계산을 피하는 방법

  12. 12

    dplyr의 각 열에 대한 부분 집합 및 루프 계산

  13. 13

    JavaScript에서 for 루프없이 객체 배열의 값 차이를 계산하는 방법은 무엇입니까?

  14. 14

    전 처리기 단계에서 펼쳐진 루프 매크로의 경우?

  15. 15

    간단한 정규식은 JQuery의 anidate if / else 루프에서 작동하지 않습니다.

  16. 16

    프롤로그 : 도시 간의 경로 추적은 무한 루프에 빠집니다.

  17. 17

    React의 간단한 for 루프에는 식별자가 필요합니다.

  18. 18

    '지금'은 천만 반복 루프에서 느려집니다.

  19. 19

    F #의 for 루프에서 '->'와 'do'의 차이점은 무엇입니까?

  20. 20

    루프 최악의 경우 실행 시간에 대한 성장 순서

  21. 21

    DateTime 멀티 스레딩 UDP Sender는 일정 루프에서 DateTime 개체의 값을 다시 할당 할 때 시간 결과가 매우 다릅니다.

  22. 22

    WebAssembly 사양에서 "블록"과 "루프"의 차이점은 무엇입니까?

  23. 23

    for 루프에서 zip과 list의 차이점은 무엇입니까?

  24. 24

    for 루프 (Java)에서 String []과 String의 차이점은 무엇입니까?

  25. 25

    루프의 두 지점간에 개체를 이동 하시겠습니까?

  26. 26

    메인 게임 루프의 시간 계산

  27. 27

    MaxValue, MinValue 및 계산 간격에 대한 VBA 루프 / 할당

  28. 28

    루프의 시간 복잡성 차이

  29. 29

    중첩 루프에 대한 행렬 계산의 Python 및 Matlab 차이

뜨겁다태그

보관