파이썬
-
TENSOR RT _ SIMPLE MNIST 예제뜯고 또 뜯어보는 컴퓨터/TENSORRT 2021. 10. 12. 17:00
안녕하세요. 오늘은 TENSOR RT를 활용한 예시를 적어보려 합니다. TensorRT/samples/python/network_api_pytorch_mnist at master · NVIDIA/TensorRT (github.com) 공식 문서를 참고하였으며, 보기 좋게 Ipynb 를 사용하여 분석하였습니다. IMPORT MODULE import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optim from torchvision import datasets, transforms from torch.autograd import Variable import numpy as np import os from ..
-
Efficient python Ch24. 동적인 디폴트 인자 관리법뜯고 또 뜯어보는 컴퓨터/파이썬 (Python) 2021. 7. 31. 13:30
우리는 종종 정적으로 정해지지 않은 타입의 값(동적 타입: list, dict 등등)을 함수의 인자의 값으로 써야할 때가 있다. 예를 들어 로그 메시지와 시간을 함께 출력하고 싶다고 하자. from time import sleep from datetime import datetime def log(message, when=datetime.now()): print(f'{when}: {message}') log("안녕") sleep(0.1) log("다시 안녕") 더보기 2021-07-31 13:06:21.846984: 안녕 2021-07-31 13:06:21.846984: 다시 안녕 하지만, sleep=0.1 이 호출되었는데도, 시간은 변하지 않고, 그대로 출력되었는데, 이유는 다음과 같다. 파이썬에서는 ..
-
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 = ..
-
파이썬 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 ..
-
[Python] with 이란머신러닝(MACHINE LEARNING)/코드 리뷰(Code_Review) 2021. 5. 17. 03:24
- 결론부터 말하자면 ,파이썬에서의 with 이란 컴퓨터에게 필요한 자원을 다시 반납 토록 하는 일이다. - 파이썬의 수많은 책들이 있지만, with을 하면 어떻게 되고 어떻게 되고, ~ 의 식의 풀이만 나열뿐 왜 사용하는지 알려주는 책은 많이 못본것 같다. - With의 경우, 제일 간단한 예제를 보게 되면, with 은 맨처음 시작할 떄, __open__ 이라는 method를 호출하고 with 구문을 빠져 나가게 되면 __exit__ 이라는 method 를 호출하게 된다. [ 다음 코드 : https://m.blog.naver.com/PostView.nhn?blogId=wideeyed 참고] class Hello: def __enter__(self): # 사용할 자원을 가져오거나 만든다(핸들러 등) ..
-
[Pytorch] transfer_Learning 전이학습딥러닝(deep Learning) 2021. 5. 17. 02:22
0. 들어가기 전에 - 파이토치의 전이학습 을 통하여 모델은 Resnet18 로 벌과 개미를 구분하는 모델을 만들어보겠습니다. 1. 모듈 임포트 In [103]: from __future__ import print_function, division import torch import torch.nn as nn import torch.optim as optim from torch.optim import lr_scheduler import numpy as np import torchvision from torchvision import datasets, models, transforms import matplotlib.pyplot as plt import time import os import copy pl..