티스토리 뷰

반응형

|텐서플로우 진행상태

 

일반적으로 텐서플로우를 사용할때 진행상태를 나타내기 위해서 우리는 반복문과 print를 이용하여 진행상태가 표시되게 됩니다.

하지만 그것으로는 남은 시간과 진행정도를 한눈에 확인하기 어렵습니다.

파이썬에 있는 소스중 하나인 tqdm을 이용하면 이를 쉽게 확인할 수 있습니다.

 

 

|tqdm

 

tqdm은 위에서 말했듯이 파이썬에 있는 소스입니다.

깃허브에서 개발자가 소스를 공유하고 있습니다.

https://github.com/tqdm/tqdm

tqdm은 아랍어로 progress(진행상태)라는 뜻이라고 하네요 ㅋㅋ..

 

 

|tqdm 설치하기

 

 

tqdm은 리눅스, 윈도우, 맥등 대부분의 OS를 지원합니다. 설치는 크게 2가지로 나누어지는데 pip를 이용한 설치와 아나콘다의 conda를 이용한 설치방법입니다.

필자의 경우 아나콘다를 이용해서 설치하였습니다.

 

아나콘다(conda) 설치방법

 

conda install -c conda-forge tqdm

 

아나콘다의 경우 아나콘다 prompt를 '관리자 권한' 으로 실행한 다음 위의 명령어를 쳐서 설치를 진행하면 됩니다.

설치가 끝났다면 다시 텐서플로우가 설치된 환경으로 들어간 후 (ex. activate tensorflow) 한번더 명령어를 쳐서 설치하시면 됩니다.

 

파이썬(PIP) 설치방법 

 

pip install tqdm

필자는 파이썬으로는 설치해보지 않았습니다만 아나콘다로 설치하지 않는 환경의 경우 pip명령어를 통해 tqdm을 설치하면 됩니다.

 

 

|tqdm 사용하기

 

 

tqdm을 텐서플로우에서 사용하는 방법은 간단합니다. 파이썬과 동일한 방식으로 사용이 가능합니다.

 

1
2
3
4
5
from tqdm import tqdm
from time import sleep
 
for step in tqdm(range(500)):
    sleep(0.1)
cs

 

위는 tqdm을 사용한 아주 간단한 소스입니다.

tqdm을 사용하는 방법은 여러가지가 있지만 필자는 위의 방법으로 사용합니다.

 

for step in tqdm(range(숫자)):

 

형식으로 쓰게되면 해당부분의 진행정도를 보여주게 됩니다.

 

 

 

 

실제로 실행한 모습입니다. 위와 같이 진행상태가 표시되게 됩니다.

 

 

 

|텐서플로우에서 tqdm 사용하기

 

 

텐서플로우에서 tqdm을 사용하는 방법은 위와 동일합니다. 실제로 리니어 리그리션에서 위 코드를 이용하는 예제를 한개 보여드리겠습니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import tensorflow as tf
from tqdm import tqdm
 
with tf.device("/cpu:0"):
    a = tf.Variable(tf.random_normal([1]))
    b = tf.Variable(tf.random_normal([1]))
 
    X = tf.placeholder(tf.float32, shape=[None])
    Y = tf.placeholder(tf.float32, shape=[None])
 
    eq = X * a + b
    cost = tf.reduce_mean(tf.square(eq - Y))
 
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.001)
train = optimizer.minimize(cost)
 
sess = tf.Session()
 
sess.run(tf.global_variables_initializer())
 
for step in tqdm (range(100001)):
    cost_val, a_val, b_val, _ = sess.run([cost, a, b, train], feed_dict={X : [123], Y : [123]})
    
print("cost : ", cost_val, "a : ", a_val, "b : ", b_val)
cs

 

아주 간단한 linear regression 코드 입니다.

맨위에 form tqdm import tqdm과 아래 for문에서 for step in tqdm (range(100001)) 이 코드만 변경하면 텐서플로우에서도 사용가능하게 됩니다.

 

 

 

 

 

 

실제 텐서플로우 코드에서 실행했습니다.

 

궁금하거나 모르겠는점 있으면 댓글 남겨주세요~

 


출처/참고

 

 

 

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함