49 lines
1.3 KiB
Python
49 lines
1.3 KiB
Python
"""
|
|
View more, visit my tutorial page: https://mofanpy.com/tutorials/
|
|
My Youtube Channel: https://www.youtube.com/user/MorvanZhou
|
|
|
|
Dependencies:
|
|
torch: 0.4
|
|
matplotlib
|
|
"""
|
|
import torch
|
|
import torch.nn.functional as F
|
|
from torch.autograd import Variable
|
|
import matplotlib.pyplot as plt
|
|
|
|
# fake data
|
|
x = torch.linspace(-5, 5, 200) # x data (tensor), shape=(100, 1)
|
|
x = Variable(x)
|
|
x_np = x.data.numpy() # numpy array for plotting
|
|
|
|
# following are popular activation functions
|
|
y_relu = torch.relu(x).data.numpy()
|
|
y_sigmoid = torch.sigmoid(x).data.numpy()
|
|
y_tanh = torch.tanh(x).data.numpy()
|
|
y_softplus = F.softplus(x).data.numpy() # there's no softplus in torch
|
|
# y_softmax = torch.softmax(x, dim=0).data.numpy() softmax is a special kind of activation function, it is about probability
|
|
|
|
# plt to visualize these activation function
|
|
plt.figure(1, figsize=(8, 6))
|
|
plt.subplot(221)
|
|
plt.plot(x_np, y_relu, c='red', label='relu')
|
|
plt.ylim((-1, 5))
|
|
plt.legend(loc='best')
|
|
|
|
plt.subplot(222)
|
|
plt.plot(x_np, y_sigmoid, c='red', label='sigmoid')
|
|
plt.ylim((-0.2, 1.2))
|
|
plt.legend(loc='best')
|
|
|
|
plt.subplot(223)
|
|
plt.plot(x_np, y_tanh, c='red', label='tanh')
|
|
plt.ylim((-1.2, 1.2))
|
|
plt.legend(loc='best')
|
|
|
|
plt.subplot(224)
|
|
plt.plot(x_np, y_softplus, c='red', label='softplus')
|
|
plt.ylim((-0.2, 6))
|
|
plt.legend(loc='best')
|
|
|
|
plt.show()
|