头歌之动手学人工智能-Pytorch 之torch.nn进阶
目录
第1关:正则化
任务描述
编程要求
测试说明
精神的浩瀚,想象的活跃,心灵的勤奋,就是天才。——狄德罗开始你的任务吧,祝你成功!
第2关:损失函数
任务描述
编程要求
测试说明
天才,就其本质而说,只不过是一种对事业、对工作过盛的热爱而已。——高尔基开始你的任务吧,祝你成功!
第3关:距离函数
任务描述
编程要求
测试说明
有了精神的实验和观测作为研究的依据,想像力便成为自然科学理论的设计师。——廷德尔开始你的任务吧,祝你成功
第1关:正则化
经过“ Pytorch 之 torch.nn初探“ 实训的学习,想必同学们对torch.nn有了一个初步的认识。接下来,本实训将介绍更多内容帮助同学们运用神经网络的特性。
-
任务描述
本关任务:
本关提供了一个Variable 类型的变量input,要求利用BatchNorm1d创建一个4维的 带有学习参数的正则化量 m,并输出其weight和bias。
-
编程要求
本关涉及的代码文件为Normalization.py,本次编程任务是补全右侧代码片段中Begin至End中间的代码,具体要求如下:
创建一个4维的带有学习参数的正则化量 m;
输出weight和bias;
在 input 上应用该正则化并输出。
具体请参见后续测试样例。
-
测试说明
测试过程:
本关涉及的测试文件为test.py,运行用户填写后的程序判断正误。
根据程序是否包含创建正则化的关键语句来判断程序是否正确,如是否含有BatchNorm1d(4),m.weight,m.bias,m(input)等语句。
若正确则输出下面的预期输出,否则报错,打印Sorry! Check again please!。
注意,在声明变量时请按照提示命名,否则将会报错。
以下是测试样例:
测试输入:
预期输出:
Congratulation!
精神的浩瀚,想象的活跃,心灵的勤奋,就是天才。——狄德罗
开始你的任务吧,祝你成功!
import torch
import torch.nn as nn
from torch.autograd import Variableinput = Variable(torch.Tensor([[1,2,3,4],[5,6,7,8]]))#/********** Begin *********/
# 创建一个4维的 带有学习参数的正则化量 m
m = nn.BatchNorm1d(4)
output=m(input)
#输出weight和biasprint("weight: \n", m.weight)
print("bias: \n", m.bias) #在 input 上应用该正则化并输出
print("output: \n", output) #/********** End *********/
第2关:损失函数
有人说,分类问题的优化过程是一个损失函数最小化的过程。那什么是损失函数呢?它是怎么计算的呢?接下来将会解决这些问题~
-
任务描述
掌握不同损失函数的计算方法和适用条件,根据不同的数据特征和学习算法选择最适宜的损失函数进行衡量。
本关任务:
本关提供了一个Variable 类型的变量input和变量target ,要求创建一个L1Loss损失函数,对 input 和 target应用该损失函数,从而掌握利用 L1Loss计算损失的方法。
-
编程要求
本关涉及的代码文件为lossFunction.py,本次编程任务是补全右侧代码片段中Begin至End中间的代码,具体要求如下:
创建名为 loss 的 L1Loss损失函数;
对 input 和 target应用 loss 赋值给 output;
输出 output的.data属性。
具体请参见后续测试样例。
-
测试说明
测试过程:
本关涉及的测试文件为lossFunctionTest.py,运行用户填写后的程序判断正误。
测试程序将检测两个方面:是否包含特定的代码行以及程序的输出是否正确,若两个方面均正确则输出下面的预期输出,否则报错。
请注意输出格式及规范。
注意,在声明变量时请按照提示命名,否则将会报错。
以下是测试样例:
测试输入:
预期输出:
0.1425
[torch.FloatTensor of size 1]Congratulation!
天才,就其本质而说,只不过是一种对事业、对工作过盛的热爱而已。——高尔基
开始你的任务吧,祝你成功!
import torch
import torch.nn as nn
from torch.autograd import Variableinput = Variable(torch.Tensor([1.1,2.2,2.93,3.8]))
target = Variable(torch.Tensor([1,2,3,4]))#/********** Begin *********/#创建名为 loss 的 L1Loss损失函数
loss = nn.L1Loss()
#对 input 和 target应用 loss 并输出
output = loss(input, target)
print(output.data)#/********** End *********/
第3关:距离函数
在做分类时常常需要估算不同样本之间的相似性度量(Similarity Measurement),这时通常采用的方法就是计算样本间的“距离”(Distance)。本关将详细介绍不同计算方式的距离函数及具体应用。
-
任务描述
本关任务:
本关提供了一个Variable 类型的变量input和变量target ,要求创建一个范数的变量pdist,对 input 、 target应用该范数进行距离计算,要求同学们掌握不同距离函数的计算方式及应用方式。
-
编程要求
本关涉及的代码文件为distance.py,本次编程任务是补全右侧代码片段中Begin至End中间的代码,具体要求如下:
创建一范数的变量pdist;
对 input 、target应用该范数并输出。
具体请参见后续测试样例。
-
测试说明
测试过程:
本关涉及的测试文件为distanceTest.py,运行用户填写后的程序判断正误。
测试程序将检测两个方面:是否包含特定的代码行以及程序的输出是否正确,若两个方面均正确则输出下面的预期输出,否则报错。
请注意输出格式及规范。
注意,在声明变量时请按照提示命名,否则将会报错。
以下是测试样例:
测试输入:
预期输出:Variable containing:
0.3000
0.2700
[torch.FloatTensor of size 2x1]Congratulation!
有了精神的实验和观测作为研究的依据,想像力便成为自然科学理论的设计师。——廷德尔
开始你的任务吧,祝你成功!
import torch
import torch.nn as nn
from torch.autograd import Variableinput = Variable(torch.Tensor([[1.1,2.2],[2.93,3.8]]))
target = Variable(torch.Tensor([[1,2],[3,4]]))#/********** Begin *********/
#创建一范数的变量pdist
pdist = nn.PairwiseDistance(p=1)
#对 input 、 target应用该范数并输出
output = pdist(input,target)
print(output)
#/********** End *********/