实现绘图的功能
注:t.my_ones_packages是我自己根据《动手学深度学习》目前学习过程中出现的所有自定义函数进行集中得到的文档。
《动手学深度学习》也向读者提供了一个包含所有自定义函数的包“d2lzh”大家可以自行下载 侵删 链接如下 :link. 提取码: un5p 时间设置是永久的 如果失效可以联系我更新
import t.my_ones_packages as mop
from mxnet import autograd, nd
def xyplot(x, y, name):
mop.set_figsize(figsize=(5, 2.5)) # 设置图像的大小为 5*2.5
mop.plt.plot(x.asnumpy(), y.asnumpy()) # 图像的x轴, y轴数据来源 plot(x方向的数据来源, y方向的数据来源)
mop.plt.xlabel('x') # 设置x轴下的名称
mop.plt.ylabel(name + 'y') # 设置y轴下的名称
Relu函数( 对应 relu(x) = max(x, 0) 实现非线性变换,只保留正数,并将负数归零)
'''x = nd.arange(-8.0, 8.0, 0.1)
x.attach_grad()
with autograd.record():
y = x.relu()
xyplot(x, y, 'relu')
# 显示图像
mop.plt.show()'''
y.backward() # 自动计算梯度 是反向传播的思想实现的
'''xyplot(x, x.grad, 'grad of relu')
mop.plt.show()'''
Sigmoid 函数(对应sigmoid(x) = 1 / (1 + exp(-x)) )
with autograd.record():
y = x.sigmoid()
'''xyplot(x, y, 'sigmoid')
mop.plt.show()'''
y.backward()
'''xyplot(x, x.grad, 'grad of sigmoid')
mop.plt.show()'''
tanh 函数(对应 tanh(x) = (1-exp(-2x)) / (1+exp(-2x)) )
with autograd.record():
y = x.tanh()
'''xyplot(x, y, 'tanh')
mop.plt.show()'''
y.backward()
'''xyplot(x, x.grad, 'grad of tanh')
mop.plt.show()'''