212实验室--实验室日记01

(212实验室-- 实验室日记-01)

在前面一段时间的学习中,我们复现了Pytorch官方的字母级别的RNN分类任务和基于Pytorch的RNN模型搭建,因此,Pytorch是我们在未来的学习中的重要框架。

【PyTorch基础入门七】:PyTorch搭建循环神经网络(RNN)
【Pytorch官方教程】从零开始自己搭建RNN1 - 字母级RNN的分类任务
上述是前面已经复现的任务名称

1. Pytorch简述

PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。
2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch。它是一个基于Python的可续计算包,提供两个高级功能:1、具有强大的GPU加速的张量计算(如NumPy)。2、包含自动求导系统的深度神经网络。

其中,Pytorch安装包和基于pytorch的自然语言处理教程–Natural Language Processing with PyTorch - 2019。在实验室文件夹中,可以获得。

2.Pytorch的基本数据类型

Pytorch里面处理的最基本的操作对象就是Tensor(张量),它表示的其实就是一个多维矩阵,并有矩阵相关的运算操作。在使用上和numpy是对应的,它和numpy唯一的不同就是,pytorch可以在GPU上运行,而numpy不可以。所以,我们也可以使用Tensor来代替numpy的使用。当然,二者也可以相互转换。

引用自博客:

https://blog.csdn.net/out_of_memory_error/article/details/81258809

Tensor的基本数据类型有五种:

32位浮点型:torch.FloatTensor    pyorch.Tensor()默认的就是这种类型。
64位整型:torch.LongTensor
32位整型:torch.IntTensor
16位整型:torch.ShortTensor
64位浮点型:torch.DoubleTensor

什么是张量呢?
张量:几何代数中,张量是基于矩阵和向量推广,通俗一点理解:我们可以将标量视为零阶张量,矢量视为一阶张量,矩阵视为二阶张量,在Pytorch中。张量是Tensor最基础的运算单位。

3. 需要执行的代码:

import torch #导入torch
import numpy as np #d导入numpy
from torch.autograd import Variable
#Tensor的基本数据类型
#1)32位浮点型:torch.FloatTensor(pytorch张量的默认类型
#2)64位整型:torch.LongTensor
#3)32位整型:torch.IntTensor
#4)16位整型:torch.ShortTensor
#5)64位浮点型:torch.DoubleTensor
#Tensor的常见函数
a = torch.Tensor([[1, 2], [3, 4], [5, 6]]) #定义一个三行两列的给定元素矩阵
b = torch.zeros((3, 2)) #定义一个三行两列的元素全为0的矩阵
c = torch.randn((3, 2)) #定义一个三行两列的随机矩阵
d = torch.ones((3, 2)) #定义一个三行两列的全为一的注释

print(a)
print(b)
print(c)
print(d)

numpy_b = b.numpy() #将tensor转化为numpy

#将numpy转化为tensor
numpy_e = np.array([[1, 2], [3, 4], [5, 6]])
torch_e = torch.from_numpy(numpy_e)

#定义一个3行2列的全为0的矩阵
tmp = torch.randn((3, 2))

#判断电脑是否可以使用GPU
if torch.cuda.is_available():
    inputs = tmp.cuda()
else:
    inputs = tmp

#Variable
#Variable相当于在Tensor的外面嵌套了一层壳,这层壳赋予了前向传播,反向传播,自动求导等等功能,是构成计算图的重要组成部分
#其中的两个重要属性是grad和data
#data表示该变量保存的实际数据,通过data属性可以访问到齐保存的原始张量模型
#.grad可以累计variable的梯度
x = Variable(torch.Tensor([1, 2, 3]), requires_grad=True)
w = Variable(torch.Tensor([2, 3, 4]), requires_grad=True)
b = Variable(torch.Tensor([3, 4, 5]), requires_grad=True)

#构建计算图
y = w * x + b

#自动求导 计算梯度
y.backward(torch.Tensor([1, 1, 1]))

print(x.grad)
print(w.grad)
print(b.grad)

完成之后将输出结果截图发给我:

今天的文本任务

在观看吴恩达–《机器学习》之后
1.机器学习的基本概念?
2.什么是回归问题?什么是分类问题
3.什么是监督学习
4.什么是无监督学习
吴恩达《机器学习》视频课程地址: 搜索 网易云课堂,登录之后 搜索吴恩达《机器学习》观看课时2-4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值