본문 바로가기

A. Development/Python3

Python Function Result Caching by Joblib.Memory Joblib.MemoryMemory를 이용하면 어떤 함수의 return 되는 output을 지정된 디렉토리에 저장해둔다. 그리고 해당 함수를 다시 호출할 경우, 미리 계산해둔 output을 가져와서 로딩을 하게 된다. 그리고 해당 cache는 사용자가 임의로 삭제하지 않으면 계속 유지되며, 다른 프로세스에서도 접근 가능하다고 한다.(확인 필요) 즉 이는 함수의 연산 결과를 하드디스크에 캐싱해두는 방식으로 볼 수 있다. 사용법은 매우 간단하여 아래와 같다. 내가 정의한 함수를 cache()에 전달하여 다시 사용하는 것이다. 이 방식은 output이 pkl로 저장된다. if cache: extract_feature = Memory("./cache", verbose=0).cache(extract_feature.. 2020. 7. 24.
Matplotlib 사용 팁 Jupyter에서 Matplotlib를 이용한 Dynamic plotting거의 몇시간의 검색 끝에 working하는 예제를 찾을 수 있었다.핵심은 %matplotlib notebook 을 쓴다는 것과, fig1.canvas.draw()를 호출해주는 것이었다.그러나 이 방법의 한계는 매번 새로 drawing을 해서 속도가 느리다는 것이다.https://stackoverflow.com/a/55771526/7573626 그래서 아래의 방법으로 set_xdata를 사용하도록 수정해보았다. %matplotlib notebook import matplotlib.pyplot as plt fig1 = plt.figure(figsize=(15,5)) ax1 = fig1.add_subplot(111) ax1.set_xl.. 2018. 11. 27.
Python 프로그래밍 # Python의 변수 호출/참조: Call by Objective Reference 대충, call by reference(포인터)랑 비슷한데, 다만 함수안에 전달될 때에는 지역변수 tag가 붙기 때문에 레퍼런스가 사라진다. 또한 List와 같이 mutable한 정보를 담는 자료구조는 indexing을 할 경우 call by reference처럼 행동한다. http://devdoggo.netlify.com/post/python/python_objective_reference/ ## Python에서는 + 와 += 가 다르다. a += b 는 inplace이지만, a = a+b 는 새로운 메모리를 할당한다. https://docs.python.org/3.2/library/operator.html#inpla.. 2014. 6. 17.