컴퓨터/파이썬
-
딥러닝: Mish 활성화 함수, 모델 불러오기컴퓨터/파이썬 2020. 10. 29. 23:53
Mish Mish OMish: A Self Regularized Non-Monotonic Neural Activation Function github.com BMVC 2020 (@공식 논문 pdf 링크) 1. 소개 Activation Function (활성화 함수) 중 하나인 Mish는 Swish와 ReLU 보다 전체적으로 좀 더 빠르고 좋은 활성화 함수이다. (소개할 때 최종 정확도에서, Swish (+.494%), ReLU (+1.671%) 라고 함) Mish의 식은 아래와 같고, (forward) 아래 그래프를 그린다. (참고: ReLU = $max(0, x)$ | Swish = $x * sigmoid(x)$) # Pytorch y = x.mul(torch.tanh(F.softplus(x))) # ..
-
딥러닝 옵티마이저: Adabelief Optimizer컴퓨터/파이썬 2020. 10. 27. 12:48
Adabelief v0.1.0 Adapting Stepsizes by the Belief in Observed Gradients Adabelief Optimizer 설명 juntang-zhuang.github.io 1. 소개 공식 소개 Adam처럼 빠르고, SGD처럼 일반화 잘하고, GAN을 트레인 하기에 충분히 안정적이다. Adabelief는 Adam을 수정한 딥러닝 최적화 알고리즘이다. (실제로 Adam에서 한 줄만 바꿔도 됨) 더 빠른 트레이닝 수렴 더 안정적인 트레이닝 더 나은 일반화 더 높은 모델 정확도 2. Adam에서의 문제 SGD(확률적 경사 하강법)의 초반 트레이닝에서 수렴이 너무 느린 문제를 해결한 Adam. 하지만 Adam은, 기울기(gradient)가 크지만, 분산(variance)..
-
Python: Streamlit으로 간단 구글 번역기 GUI컴퓨터/파이썬 2020. 10. 24. 23:38
Streamlit Streamlit — The fastest way to create data apps Streamlit is an open-source app framework for Machine Learning and Data Science teams. Create beautiful data apps in hours, not weeks. All in pure Python. All for free. www.streamlit.io 1. 소개 streamlit 이란 파이썬으로 쉽게 웹 앱을 만들 수 있게 해주는 라이브러리이다. 주로 이렇게 쓰일 수 있다. 링크 streamlit 공식 소개 영상 Click to copy Copied 설치법 pip install streamlit streamlit hello..
-
Cython을 이용한 Bubble Sort컴퓨터/파이썬 2020. 10. 24. 19:43
문법 1. bint 타입으로 bool을 이용할 수 있음. cdef bint swapped = False 2. len(array)는 Py_ssize_t를 return함. // C에서 len(array) - 1 을 구하는 과정 if (unlikely(__pyx_v_array == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 10, __pyx_L1_error) } __pyx_t_1 = PyList_GET_SIZE(__pyx_v_array); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 10, __pyx_L1_error..
-
Python 모듈 C언어로 만들기컴퓨터/파이썬 2020. 10. 22. 00:34
Python 모듈 1. 소개 전 ctype으로 C언어 코딩 실행하기와 비슷한데 실제로 pip으로 설치할 수 있는 파이썬 패키지를 C언어로 만들어 볼 것이다. Python Github의 C 파일들은 보면 문법이 어느 정도 감이 잡힐 것이다. 할 것 팩토리얼(N!) 결과를 구해내는 방법을 C언어 모듈, Cython (.pyx) 모듈, 기본 파이썬 함수 위 3가지를 비교할 것이다. C언어 파이썬 모듈 제작 1. 우선 setup.py을 대충 아래처럼 만든다. try: from setuptools import setup, Extension except ImportError: from distutils.core import setup, Extension setup( name="C Factorial", version..
-
Python에서 C/C++언어 함수 실행하기컴퓨터/파이썬 2020. 10. 21. 16:06
Ctypes ctypes — 파이썬용 외부 함수 라이브러리 — Python 3.9.0 문서 ctypes — 파이썬용 외부 함수 라이브러리 ctypes docs.python.org 1. ctypes이란 C언어로 기반으로 제작된 파이썬에서, ctypes 으로 C 호환 데이터형을 이용, DLL 또는 공유 라이브러리(.so)에 있는 함수를 호출할 수 있게 해 준다. 2. 할 것 py 파일 안에서 C/C++ 함수를 작성해서 실행하는 것을 불가능하고, disutils에 있는 ccompiler로는 object파일밖에 생성하고 exe파일 까진 만들 수 있으나, exe실행은 따로 해야 한다. from distutils.ccompiler import new_compiler if __name__ == '__main__': ..
-
Python kth Hamming number (해밍 수)컴퓨터/파이썬 2020. 10. 19. 23:50
해밍 수 Regular Number 1. Hamming number 해밍 수란 인수가 2, 3, 5으로만 이루어진 수를 말한다. 그래서 5-smooth number, ugly number라고도 불린다. 한마디로, 아래 식을 만족하는 수 (다음 수들은 해밍 수이다. 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, ...) $H = 2^i * 3^j * 5^k$, ($i, j, k >= 0$) 2. 파이썬 시간 복잡도: O(n), 결과를 바로바로 출력하면 공간 복잡도 O(1) 가능 프로그램: n 보다 작거나 같은 모든 해밍 수를 배열에 넣고 출력할 것이다. n = 25 base = [2, 3, 5] nums = [1] append = nums.append # tweak candidates_indic..
-
Python fastcore: 파이썬 업그레이드 모듈컴퓨터/파이썬 2020. 10. 17. 00:24
fastcore fast.ai fastcore Github 링크 github.com fast.ai에서 제작한 파이썬 언어 확장 모듈 1. 소개 fastcore은 Julia 언어의 multiple dispatch, Ruby 언어의 mixins, Haskell 언어의 currying, binding 등 다른 언어의 기능들이나, 파이썬 내장 기능을 업그레이드한 모듈이다. 설치법은 conda나 pip으로 설치 conda install fastcore pip install fastcore 2. 기능 글 모든 예제는 아래를 import 하는 걸 전제로 한다. from fastcore.all import * 1. Test assertion test_eq(a, b) : 위 함수는 assert a == b와 같다. te..