莫烦pytorch(3)

1.各种激励函数

首先介绍一下import torch.nn.functional as F,激励函数在里面找,后几章会有import torch.nn as nn,这个里面也存在的激励函数,那么他们有什么区别呢?
F.conv2d()类似于python的一个函数,而nn.Conv2d是一个类,他是通过而nn.Conv2d的forward()函数实现是用F.conv2d()实现的,下面列下了代码,可以看出是在class类里面有一个forward方法,返回的是F.conv2d(),证实了是调用的作法。

import torch.nn.functional as F
class Conv2d(_ConvNd):

    def __init__(self, in_channels, out_channels, kernel_size, stride=1,
                 padding=0, dilation=1, groups=1, bias=True):
        kernel_size = _pair(kernel_size)
        stride = _pair(stride)
        padding = _pair(padding)
        dilation = _pair(dilation)
        super(Conv2d, self).__init__(
            in_channels, out_channels, kernel_size, stride, padding, dilation,
            False, _pair(0), groups, bias)

    def forward(self, input):
        return F.conv2d(input, self.weight, self.bias, self.stride,
                        self.padding, self.dilation, self.groups)

总而言之,如果有Variable的话就用nn,如果没有直接用nn.functional

————————————————————————————————————————————————

import torch
from torch.autograd import Variable
import torch.nn.functional as F
import matplotlib.pyplot as plt

x=torch.linspace(-5,5,200) #平分[-1,5),分为200份
x=Variable(x)
x_np=x.data.numpy()

#调用各种API
y_relu=F.relu(x).data.numpy()
y_sigmoid=F.sigmoid(x).data.numpy()
y_tanh=F.tanh(x).data.numpy()
y_softplus=F.softplus(x).data.numpy()
#y_softmax=F.softmax(x,dim=0).data.numpy()  不能直接显示,适用于二分类

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()

画图有一个注意点,那就是一定要是numpy的形式,tensor是画不了的

————————————————————————————————————————————————
我是一名机器学习的初学者,是万千小白中努力学习中的一员

猜你喜欢

转载自blog.csdn.net/qq_42738654/article/details/87953225