莫烦pytorch学习笔记(一)

莫烦pytorch学习笔记(一)

本笔记主要为了记录学习内容,方便日后回顾,如果有错误之处欢迎评论区指正!

numpy与torch对比

numpy中处理的数据类型是矩阵(多维列表),torch号称神经网络领域的numpy,其处理的数据类型是tensor类型。
numpy生成的数据与torch生成的数据之间可以相互转换

import torch
import numpy as np
print(torch.__version__)#检查导入库是否成功
##numpy和torch的数据可以相互转换
np_data=np.arange(6).reshape(2,3)
torch_data=torch.tensor([[0,1,2],[3,4,5]])
np2torch=torch.from_numpy(np_data)#torch从numpy数据格式中获取数据
torch2np=torch_data.numpy()#由tensor类型转换为array类型
print('numpy_data:',np_data,
      '\ntorch_data:',torch_data,
      '\nnumpy数据转torch数据:', np2torch,
      '\ntorch数据转numpy数据:',torch2np)

除了数据类型可以相互转换,numpy与torch库的运算也有相似之处,区别在于数据类型不同,函数名称不同。

data=[[1,2],[-3,-4]]#numpy所需数据类型
tensor=torch.FloatTensor(data)#转换为torch运算所需数据类型
print('\nabs:',
      '\nnumpy:',np.abs(data),
      '\ntorch:',torch.abs(tensor))
print('\nsin:',
      '\nnumpy:',np.sin(data),
      '\ntorch:',torch.sin(tensor))
print('\nmultiple:',
      '\nnumpy:',np.matmul(data,data),
      '\ntorch:',torch.mm(tensor,tensor))

激活函数

激活函数的主要作用是将神经网络进行非线性化处理,使其能够处理更加复杂的问题。常见的激活函数有relu(),sigmoid(),tanh()等。
下面利用python的数据可视化库matplotlib,对激活函数的处理效果进行可视化。其中,由于当前版本python的tensor和varible可以通用,所以不再使用Varible()进行处理。

###激活函数
import torch
import torch.nn.functional as F
import matplotlib.pyplot as plt#python画图库
##创建数据
x=torch.linspace(-5,5,200)#创建tensor类型数据
x_np=x.numpy()#转换为array,画图时使用
##激活函数处理
y_relu=torch.relu(x).numpy()
y_sigmoid=torch.sigmoid(x).numpy()
y_tanh=torch.tanh(x).numpy()
y_softplus=torch.softplus(x).numpy()
##绘制激励函数处理效果图
plt.figure(1,figsize=(8,6))

plt.subplot(221)
plt.plot(x_np, y_relu,label='relu')
plt.ylim(-1,5)
plt.legend(loc='best')

plt.subplot(222)
plt.plot(x_np,y_sigmoid,label='sogmoid')
plt.ylim(-0.2,1.2)
plt.legend(loc='best')

plt.subplot(223)
plt.plot(x_np,y_tanh,label='tanh')
plt.ylim(-1.2,1.2)
plt.legend(loc='best')

plt.subplot(224)
plt.plot(x_np,y_softplus,label='softplus')
plt.ylim(-0.2,6)
plt.legend(loc='best')

plt.show()

需要注意的是

  • 在按照视频源代码import matplotlib时,python会报错:“AttributeError: module ‘matplotlib’ has no attribute ‘figure’”,按照网友经验修改为:import matplotlib.pyplot as plt,错误解决。
  • 根据VScode提示:UserWarning: nn.functional.sigmoid is deprecated. Use torch.sigmoid instead.
    warnings.warn(“nn.functional.sigmoid is deprecated. Use torch.sigmoid instead.”),原代码中F.sigmoid(x)可修改为torch.sigmoid(x).其他三个激活函数同样可以直接通过调用torch库引用。 运行结果如下
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值