모든 설치가 끝나면 한글 폰트를 바르게 출력하기 위해 [런타임] -> **[런타임 다시시작]**을 클릭한 다음, 아래 셀부터 코드를 실행해 주십시오.
# 라이브러리 임포트%matplotlib inlineimport numpy as npimport matplotlib.pyplot as pltfrom IPython.display import display# 폰트 관련 용도import matplotlib.font_manager as fm# Colab, Linux# 나눔 고딕 폰트의 경로 명시path = '/usr/share/fonts/truetype/nanum/NanumGothic.ttf'font_name = fm.FontProperties(fname=path, size=10).get_name()# Window# font_name = "NanumBarunGothic"# Mac# font_name = "AppleGothic"
# 기본 폰트 설정plt.rcParams['font.family'] = font_name# 기본 폰트 사이즈 변경plt.rcParams['font.size'] = 14# 기본 그래프 사이즈 변경plt.rcParams['figure.figsize'] = (6,6)# 기본 그리드 표시# 필요에 따라 설정할 때는, plt.grid()plt.rcParams['axes.grid'] = Trueplt.rcParams["grid.linestyle"] = ":"# 마이너스 기호 정상 출력plt.rcParams['axes.unicode_minus'] = False# 넘파이 부동소수점 자릿수 표시np.set_printoptions(suppress=True, precision=4)
퍼셉트론 (Perceptron)
import torchfrom torch import nnimport torch.nn.functional as F
선형 퍼셉트론 구현
## 선형 퍼셉트론 구현def perceptron(x, w, b = 0): if not isinstance(x, np.ndarray) or not isinstance(x, np.ndarray): x = np.array(x) w = np.array(w) y = np.sum(x*w) + b return yx = [1, 2, 3]w = [1, 2, 3]# x = np.array([1, 2, 3])# w = np.array([1, 2, 3])y = perceptron(x, w)print("result =", y)
result = 14
## 선형 퍼셉트론 구현: 랜텀 initial weightsdef perceptron(x): w = np.random.rand(len(x)) b = np.random.rand() y = np.sum(x*w) + b return y, w, bx = np.array([1, 2, 3])w = np.array([1, 2, 3])y, w, b = perceptron(x)print("result =", y.round(3))print("weight = ", w)print("b = ", round(b, 3))
result = 3.872
weight = [0.6354 0.9663 0.1028]
b = 0.996
def sigmoid(x): return 1 / (1 + np.exp(-x))def sse(y, x): return (y-x)**2def perceptron(x, w, b = 0): if not isinstance(x, np.ndarray) or not isinstance(x, np.ndarray): x = np.array(x) w = np.array(w) y = np.sum(x*w) + b return y
# numpyx = np.linspace(-5, 5, 100)def sigmoid(x): y = 1/(1 + np.exp(-x)) return yy = sigmoid(x)# torch class# torch_simoid = nn.Sigmoid()# y = torch_simoid(torch.tensor(x))# y = F.sigmoid(torch.tensor(x))activation_plot(x, y, "Sigmoid")
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
## Tanh (Hyperbolic Tangent)def tanh(x): y = np.tanh(x) # y = (np.exp(x) - np.exp(-x))/ (np.exp(x) + np.exp(-x)) return yy = tanh(x)# torchtorch_tanh = nn.Tanh()y = torch_tanh(torch.tensor(x))y = F.tanh(torch.tensor(x))activation_plot(x, y, "Tanh")
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
## ReLU (Rectified Linear Unit)def relu(x): y = np.maximum(0, x) return y# torch# torch_relu = nn.ReLU()# y = torch_relu(torch.tensor(x))# y = F.relu(torch.tensor(x))# y = relu(x)activation_plot(x, y, "ReLU")
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
## Leaky ReLUdef leakyRelu(x, alpha:float): y = np.maximum(alpha*x, x) return yy = leakyRelu(x, 0.1)# torch# torch_lrelu = nn.LeakyReLU(0.1)# y = torch_lrelu(torch.tensor(x))# y = F.leaky_relu(torch.tensor(x), 0.1)activation_plot(x, y, "Leaky ReLU")
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
## Exponential ReLUdef eRelu(x, alpha): y = (x>0)*x + (x <= 0)*(alpha*(np.exp(x) - 1)) return yy = eRelu(x, 1.)# torch# torch_lrelu = nn.GELU(0.1)# y = torch_lrelu(torch.tensor(x))# y = F.leaky_relu(torch.tensor(x), 0.1)activation_plot(x, y, "Exponential ReLU")
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.
WARNING:matplotlib.font_manager:findfont: Font family 'NanumGothic' not found.