关键词:
1-3 李宏毅2021春季机器学习教程-Google Colab教学-助教许湛然介绍了Colab的使用,这篇文章是助教许湛然关于PyTorch框架的简要讲解。
更多操作查看: https://pytorch.org/docs/stable/tensors.html
目录
Overview of the DNN Training Procedure
torch.nn -- Neural Network Layers
torch.nn -- Activation Functions
torch.nn -- Build your own neural network
Neural Network Evaluation (Validation Set)
Neural Network Evaluation (Testing Set)
Prerequisites-准备工作
熟悉python3的有关知识:if-else, loop等;熟悉numpy,了解数组等操作。
What is PyTorch?-什么是pytorch?
- 开源的机器学习框架
- 提供两个高水平特征的python库
PyTorch v.s. TensorFlow
Overview of the DNN Training Procedure
Tensor
Tensor -- Data Type
ref: torch.Tensor — PyTorch 1.9.1 documentation
Tensor -- Shape of Tensors
Tensor -- Constructor
Tensor -- Operators
squeeze():主要对数据的维度的进行压缩,去掉维数为1的维度,例如一行或者一列这种,维度为(1,3)的一行三列去掉第一个维数为一的维度之后就变成(3)行。有三种形式:①squeeze(a)就是将a中所有为1的维度删掉,不为1的维度没有影响。②a.squeeze(N) 就是去掉a中指定的维数为一的维度。③还有一种形式就是b=torch.squeeze(a,N),去掉a中指定的定的维数为一的维度。
unsqueeze():主要对数据维度进行填充。给指定位置加上维数为一的维度,例如有个三行的数据(3),在0的位置加了一维就变成一行三列(1,3)。
transpose():交换矩阵的两个维度,transpose(dim0, dim1) → Tensor,其和torch.transpose()函数作用一样。
cat():拼接函数。在给定维度上对输入的张量序列seq 进行连接操作。torch.cat()可以看做 torch.split() 和 torch.chunk()的反操作。
more operators: torch.Tensor — PyTorch 1.9.1 documentation
Tensor -- PyTorch v.s. NumPy
ref: https://github.com/wkentaro/pytorch-for-numpy-users
Tensor -- Device
Tensor -- Device(GPU)
上图的链接如下:
https://towardsdatascience.com/what-is-a-gpu-and-do-you-need-one-in-deep-learning-718b9597aa0d
How to Calculate Gradient?
Load Data
Dataset & Dataloader
注意shuffle参数,在train时为True,在test时为False:
Define Neural Network
torch.nn -- Neural Network Layers
矩阵与向量表示:
代码如下:
torch.nn -- Activation Functions
Loss Function
torch.nn -- Loss Functions
- Mean Squared Error (for linear regression)回归
nn.MSELoss()
- Cross Entropy (for classification)分类
nn.CrossEntropyLoss()
torch.nn -- Build your own neural network
代码:
import torch.nn as nn
class MyModel(nn.Module):
def __init__(self):
super(MyModel, self).__init__()
self.net = nn.Sequential(
nn.Linear(10, 32),
nn.Sigmoid(),
nn.Linear(32, 1)
)
def forward(self, x):
return self.net(x)
Optimizer
torch.optim
代码:
torch.optim.SGD(params,lr,momentum = 0)
Neural Network Training
前期准备
代码如下:
dataset = MyDataset(file)
tr_set = DataLoader(dataset, 16, shuffle=True)
model = MyModel().to(device)
criterion = nn.MSELoss()
optimizer = torch.optim.SGD(model.parameters(), 0.1)
多次epoch
代码如下:
for epoch in range(n_epochs):
model.train()
for x, y in tr_set:
optimizer.zero_grad()
x, y = x.to(device), y.to(device)
pred = model(x)
loss = criterion(pred, y)
loss.backward()
optimizer.step()
Neural Network Evaluation (Validation Set)
代码如下:
model.eval()
total_loss = 0
for x, y in dv_set:
x, y = x.to(device), y.to(device)
with torch.no_grad():#不希望进行梯度计算
pred = model(x)
loss = criterion(pred, y)
total_loss += loss.cpu().item() * len(x)
avg_loss = total_loss / len(dv_set.dataset)
Neural Network Evaluation (Testing Set)
代码如下:
model.eval()
preds = []
for x in tt_set:
x = x.to(device)
with torch.no_grad():
pred = model(x)
preds.append(pred.cpu())
Save/Load a Neural Network
代码如下:
#Save
torch.save(model.state_dict(), path)
# Load
ckpt = torch.load(path)
model.load_state_dict(ckpt)
More About PyTorch
- torchaudio
speech/audio processing
- torchtext
natural language processing
- torchvision
computer vision
- skorch
scikit-learn + pyTorch
- Useful github repositories using PyTorch
- Huggingface Transformers (transformer models: BERT, GPT, ...)
- Fairseq (sequence modeling for NLP & speech)
- ESPnet (speech recognition, translation, synthesis, ...)
- Many implementation of papers
- ...
Reference
GitHub - pytorch/pytorch: Tensors and Dynamic neural networks in Python with strong GPU acceleration
Pytorch vs. TensorFlow: What You Need to Know | Udacity
说明:记录学习笔记,如果错误欢迎指正!写文章不易,转载请联系我。
《2021机器学习-李宏毅》学习笔记
文章目录简介内容示意个人学习笔记01-Regression02.1-deeplearning-general_guidance02.2-deeplearning-类神经网络优化技巧02.3-deeplearning-loss_of_classification03-CNN04-Self-attention05-Transformer06-Generative_Model(GAN)07-Self-S 查看详情
视频+ppt2021年李宏毅版40节机器学习课程已更新完毕,推荐收藏!
提起李宏毅老师,熟悉机器学习的读者朋友一定不会陌生。最典型的就是开局一言不合就“宝可梦”。李宏毅老师幽默风趣的教学风格也吸引力很多机器学习爱好者。李宏毅老师,是宝岛台湾大学电机工程系教授,他... 查看详情
深度学习李宏毅《机器学习》学习笔记
【深度学习】李宏毅《机器学习》学习笔记2021年8月16日P1-P2节-机器学习介绍和为什么要学习机器学习1950年,人工智能就出现了好厉害~~机器学习中包含了深度学习。早期的人工智能其实都是想当于给河狸装上一个先天的本能... 查看详情
台大李宏毅《机器学习》2021课程撒花完结!除了视频ppt,还有人汇编了一本答疑书...
...迷路机器之心报道今年2月末,「精灵宝可梦大师」李宏毅的《机器学习》最新一期课程正式开课。对于想要入门机器学习的同学来说,这是一门不容错过的经典课程,视频、PPT等资料都可以在课程页面找到,而且... 查看详情
学习笔记李宏毅2021春机器学习课程第5.1节:transformer
文章目录1序列到序列的模型2Seq2seqmodel常见的应用场景2.1聊天机器人2.2问题回答(QA)2.3文法剖析2.4多标签分类2.5对象检测3Seq2seqmodel的整体架构4编码器的具体架构1序列到序列的模型Transformer本质上就是一个Sequence-to-sequence的model... 查看详情
李宏毅机器学习笔记:1.机器学习介绍(代码片段)
文章目录P1:机器学习介绍1.1人工智能、机器学习、深度学习关系1.2实现途径1.3实现方法1.4总结P2:我们为什么需要学习机器学习#Time:2021.08.23#内容:P1~P2P1:机器学习介绍1.1人工智能、机器学习、深度学习关系①什么是人工智能... 查看详情
李宏毅《机器学习》丨7.conclusion(总结)
Author:AXYZdong李宏毅《机器学习》系列参考视频地址:https://www.bilibili.com/video/BV1Ht411g7Ef参考文档:DataWhale文档六个Task李宏毅机器学习丨1.Introductionofthiscourse(机器学习介绍)李宏毅机器学习丨2.Regressionÿ 查看详情
李宏毅《机器学习》丨7.conclusion(总结)
Author:AXYZdong李宏毅《机器学习》系列参考视频地址:https://www.bilibili.com/video/BV1Ht411g7Ef参考文档:DataWhale文档六个Task李宏毅机器学习丨1.Introductionofthiscourse(机器学习介绍)李宏毅机器学习丨2.Regressionÿ 查看详情
台湾李宏毅老师-机器学习
参考网址:http://blog.csdn.net/youyuyixiu/article/details/53886092国立台湾大学电机工程学系助理教授–李宏毅 研究领域:机器学习、深度学习、语义理解、语音辨识 个人主页 课程名称:MachineLearningandhavingitdeepandstructured 查看详情
李宏毅机器学习2021卷积神经网络hw3-imageclassification(更新ing)(代码片段)
学习心得(1)回顾【李宏毅机器学习CP21】(task6)卷积神经网络,CNN强大在于卷积层强大的特征提取能力,当然我们可以利用CNN将特征提取出来后,用全连接层或决策树、支持向量机等各种机器学习算法模型来... 查看详情
学习笔记李宏毅2021春机器学习课程第7.2节:自监督学习
文章目录1为什么BERT有用?2多语言的BERT2.1跨语言的阅读理解2.2跨语言对齐1为什么BERT有用?最常见的解释是,当输入一串文本时,每个文本都有一个对应的向量。对于这个向量,我们称之为embedding。它的特别之处在于... 查看详情
李宏毅《机器学习》丨1.introductionofthiscourse(机器学习介绍)
Author:AXYZdong李宏毅《机器学习》系列参考视频地址:https://www.bilibili.com/video/BV1Ht411g7Ef参考文档:DataWhale文档文章目录一、人工智能、机器学习和深度学习二、机器学习(MachineLearning)三、机器学习相关的技... 查看详情
李宏毅机器学习-0introduction
MLLecture0:IntroductionofMachineLearningAIv.s.MLv.s.DLArtificialintelligence->objectiveMachinelearning->methodsDeeplearning->onemethodofmachinelearningHand-craftedrulesmany"ifs"hardtoconsider 查看详情
李宏毅机器学习课程知识点总结
开发者涨薪指南48位大咖的思考法则、工作方式、逻辑体系 查看详情
李宏毅机器学习机器学习介绍
一.机器学习介绍1.机器学习介绍以前的人工智慧完全是依靠人制定的规则行事,而机器学习相比增加自主学习即自己制定规则的能力。怎么做到呢?就是通过提供给他的资料,学习出来一个function。2.机器学习想关的... 查看详情
台大李宏毅《机器学习》2021课程撒花完结!除了视频ppt,还有人汇编了一本答疑书...
...迷路机器之心报道今年2月末,「精灵宝可梦大师」李宏毅的《机器学习》最新一期课程正式开课。对于想要入门机器学习的同学来说,这是一门不容错过的经典课程,视频、PPT等资料都可以在课程页面找到,而且... 查看详情
李宏毅机器学习回归
1.FunctionwithUnknownParameters第一个步骤是我们要写出一个,带有未知参数的函式,简单来说就是我们先猜测一下,我们打算找的这个函式F,它的数学式到底长什麼样子。举例来说,我们这边先做一个最初步的猜测,我们写成这个样子2.DefineLo... 查看详情
李宏毅《机器学习》丨4.deeplearning(深度学习)
Author:AXYZdong李宏毅《机器学习》系列参考视频地址:https://www.bilibili.com/video/BV1Ht411g7Ef参考文档:DataWhale文档文章目录一、深度学习发展历史二、深度学习三个步骤2.1Step1:神经网络(Neuralnetwork)2.2Step2... 查看详情