히비스서커스의 블로그

[Python] 한 줄 코드 및 GPU 분산처리 코드 본문

Programming/Python

[Python] 한 줄 코드 및 GPU 분산처리 코드

HibisCircus 2021. 8. 26. 19:28
728x90

파이썬에서 코딩하며 간단하게 나타낼 수 있는 코드와 서버에서 GPU를 분산 처리할 때 쓰는 코드를 기억하기 위해 남겨본다.

 

출처 : https://programmers.co.kr/learn/courses/2%3E

 

간단하게 나타낼 수 있는 코드

 

리스트가 채워져 있는 경우에만 조건을 주기

a = []

if a:
	(명령어 1) # 리스트에 원소가 있는 경우에만 실행
else:
	(명령어 2) # 리스트에 원소가 없는 경우에 실행

예시로 위의 결과는 명령어 2가 실행된다.

 

 

특정 조건일 경우에 변수를 다르게 저장하기

b = 3

a = 5 if b == 3 else 4 # b가 3인 경우 a는 5로 b가 5가 아닌 나머지의 경우 4로 할당

예시로 위의 결과는 a에 5가 할당이 된다.

 

 

이차원 리스트에서 특정 열 골라서 리스트로 만들기

double_list = [[1,2], [3,4], [5,6]]

[i[0] for i in double_list] # double_list의 리스트들 중 첫번째 원소만 가져와 리스트로 만듦
[i[1] for i in double_list] # double_list의 리스트들 중 두번째 원소만 가져와 리스트로 만듦

예시로 위의 결과는 [1, 3, 5], [2, 4, 6]이 만들어진다.

 

 

 

 

서버에서 GPU를 분산처리 해야하는 사용하는 경우

import os

gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
    try:
        for gpu in gpus:
            tf.config.experimental.set_memory_growth(gpu, True)
        logical_gpus = tf.config.experimental.list_logical_devices('GPU')
        print(len(gpus), 'Physical GPUs,', len(logical_gpus), 'Logical GPUs')
    except RuntimeError as e:
        print(e)
        
strategy = tf.distribute.MirroredStrategy()

with strategy.scope():
	(model build)
    (model fit)

만약 도커와 같은 가상환경에 여러 GPU 자원을 할당해서 사용할 경우에 유용하다.

 

 

 

 

-히비스서커스-

728x90