분류 전체보기
-
Efficient Python 22. 변수위치 인자(*Args) 사용법뜯고 또 뜯어보는 컴퓨터/파이썬 (Python) 2021. 7. 30. 01:03
파이썬 뿐 아니라 다른 언어에서도 함수의 위치인자(positional argument)를 가변적으로 받을 수 있으면, 함수 호출이 더욱 깔끔해진다.이를 가변인자(varargs)나 스타인자(star args)라고 부르기도 한다. 예를 들어 디버깅정보를 로그로 남기는 함수를 구현해볼때 인자수가 고정돼 있으면 메시지와 같이 list값을 받는 함수가 필요하다. def log(message,values): if not values: print(message) else: values_str = ",".join(str(x) for x in values) print(f'{message}: {values_str}') log("내숫자는",[1,2]) log("안녕",[]) 더보기 내숫자는: 1,2 안녕 이때, 빈 리스트를..
-
Effective Python 21. 클로져란뜯고 또 뜯어보는 컴퓨터/파이썬 (Python) 2021. 7. 30. 00:17
1. 파이썬의 클로저와 변수영역의 이해 - 클로저를 보기 전, 먼저 숫자로 이루어진 List 에서 몇개의 변수(group 데이터)만을 앞으로 오고자 하는 경우를 생각해보자. def sort_priority(values, group): """ values 의 값들 중, group에 표현되어 있는 값들만 정렬해서 앞으로 빼오고 싶다, """ def helper(x): if x in group: return (0,x) else: return (1,x) values.sort(key=helper) numbers = [8,3,1,2,5,4,7,6] group = [2,3,5,7] sort_priority(numbers, group) print(numbers) 더보기 [2, 3, 5, 7, 1, 4, 6, 8] - ..
-
Effective python ch20. None보다는 예외를뜯고 또 뜯어보는 컴퓨터/파이썬 (Python) 2021. 7. 29. 23:25
다음과 같은 예가 있다고 해보자. ZeroDivisionError가 발생했으므로, 0 보다는 None을 반환하는 것이 자연스러워보인다. 하지만 반환한 결과( == None 을 의미) 를 사용하는 if 문등의 조건에서 평가할때, None이 문제를 야기할 수 있으므로, 이를 살펴보자 (0이나 ""가 문제가 될 수 있음) In [1]: def careful_device(a,b): try: return a/b except ZeroDivisionError: return None In [2]: # 적절히 해석하였을시. x, y = 1, 0 result = careful_device(x,y) if result is None: print("잘못된 입력") 잘못된 입력 In [3]: # 잘못 사용된 예시. x, y = ..
-
파이썬 %autoreload %matplotlib 이란?머신러닝(MACHINE LEARNING)/코드 리뷰(Code_Review) 2021. 7. 13. 22:47
1. 개요 가끔 캐글 대회 뿐아니라, 많은 코드들을 살펴보면, %load_ext autoreload 라던가, %matplotlib inline 라던가, %autoreload 라던가 하는 식의 코드들을 보았다. 그냥 머리속으로만 알고 있었었는데, 오늘 이참에 정리해야겠다 싶어 정리하는 글이다. 우선 %을 사용하는 이유는 ipython 이라는 흔히 알고 있는 주피터 노트북 등에서 사용하는 magic command 라고 생각하면 된다. 2. matplotlib inline - 흔히 제일 많이 보는 케이스로 %matplotlib inline을 표시했을 때, notebook 을 실행한 주피터 노트북 등에서 바로 도표등을 띄워주는 역활을 하게 된다. 3. %load_ext autoreload & %autoreloa..
-
파이썬 multiprocessing Pool 이해하기카테고리 없음 2021. 7. 5. 01:45
- 파이썬은 작업을 병렬처리 할 수 있도록 멀티프로세싱을 지원하는데, 그 중 하나인 POOL 에 대해서 설명해보도록 하겠다. 다음의 그림을 보면, 놀고 잇는 우리의 CPU 등을 향해 멀티 CPU를 활용해서 각각의 결과물을 나중에 합쳐 작업을 좀 더 수월하고 빠르게 진행할 수 있다. - 더 자세한 설명은 고성능 파이썬 프로그래밍 3 - 멀티프로세싱과 멀티스레딩 (chacha95.github.io) 여기에 나와있으니, 참고하고, 우리는 이를 활용하여 좀 더 실용적으로 어떻게 사용하는지 알아보자. 0. 모듈 임포트 - 먼저 파이썬의 멀티 프로세싱을 만들어주기 위한 모듈을 import 해준다. In [ ]: import matplotlib.pyplot as plt import random import time ..
-
TTA (Test Time Augmentation) 란딥러닝(deep Learning)/딥러닝 이슈(Issue) 2021. 6. 19. 23:04
0. 서론 - TTA ( Test Time Augmentation) 이란, 말 그대로 model 을 테스트 할때에도, Data Augmentation 을 한다고 이해하면 될 것이다. 그림으로 살펴 보았을때, 밑의 input 즉 원본 이미지를 flip 및 rotation, zoom 등을 하여, 원본으로부터 변형된 여러가지 Image Augmentation 에 평가를 실시하여, 최종 분류값이 무엇인지 예측하는 기법이다. - 좀 더 직관적으로 본다면, 모델에 한가지의 이미지를 주는 것보다는 여러가지 변형된 이미지를 주어, 평가를 하게 되면, 발생하는 오차는 작아지는 것이 당연해 보인다. - TTA 를 쓰게 되면, 모델이 편향된 학습결과를 가지고 있을때, 그러한 편향에서 벗어나 좀 더 좋은 예측을 할 수 있게 ..
-
백준 2749알고리즘/백준(BOJ) 2021. 6. 16. 01:43
2749번: 피보나치 수 3 (acmicpc.net) 2749번: 피보나치 수 3 첫째 줄에 n이 주어진다. n은 1,000,000,000,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오. 입력..
-
백준 12865알고리즘/백준(BOJ) 2021. 6. 16. 00:54
12865번: 평범한 배낭 (acmicpc.net) 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 문제 이 문제는 아주 평범한 배낭에 관한 문제이다. 한 달 후면 국가의 부름을 받게 되는 준서는 여행을 가려고 한다. 세상과의 단절을 슬퍼하며 최대한 즐기기 위한 여행이기 때문에, 가지고 다닐 배낭 또한 최대한 가치 있게 싸려고 한다. 준서가 여행에 필요하다고 생각하는 N개의 물건이 있다. 각 물건은 무게 W와 가치 V를 가지는데, 해당 물건을 배..