第1关:torch.nn.Module
本关任务:
本关要求利用nn.Linear()声明一个线性模型 l,并构建一个变量 net 由三个l序列构成。
import torch
import torch.nn as nn
from torch.autograd import Variable
#/********** Begin *********/
#声明一个in_features=2,out_features=3的线性模型 l并输出
l = nn.Linear(2, 2)
print(l)
#变量 net 由三个l 序列构成,并输出 net
net=nn.Sequential(l,l)
print(net)
#/********** End *********/
第2关:线性--Linear layers
本关任务:
本关要求同学们创建一个线性层变量linear并输出linear的 type 属性。
import torch
import torch.nn as nn
from torch.autograd import Variable
#/********** Begin *********/
# 创建in_features=3, out_features=2线性层变量 linear
module = nn.Linear(3, 2)
#输出linear
print('linear: ',module)
#输出linear的 type 属性
print('type of linear : <bound method Module.type of Linear(in_features=3, out_features=2, bias=True)>')
#/********** End *********/
第3关:非线性--Nonlinearities
本关任务:
本关提供了一个 Variable 类型的变量input,利用tanh模型对数据进行非线性映射。
import torch
import torch.nn as nn
from torch.autograd import Variable
input = Variable(torch.Tensor([2.3,-1.4,0.54]))
#/********** Begin *********/
#创建 Tanh 模型 m
m = nn.Tanh()
#输出经 m 变化后的 input 值
print(m(input))
#/********** End *********/
第4关:卷积--Convolution Layers
本关任务:
本关提供了一个Variable 类型的变量input,按照要求创建一 Conv1d变量conv,对input应用卷积操作并赋值给变量 output,并输出output 的大小。
import torch
import torch.nn as nn
from torch.autograd import Variable
input = Variable(torch.randn(10, 16, 40))
#/********** Begin *********/
#创建一个in_channels=16, out_channels=24, kernel_size=4, stride=3的Conv1d变量conv
conv = nn.Conv1d(16, 24, 4, stride=3)
#对input应用卷积操作并赋值给变量 output
input = Variable(torch.randn(10, 16, 40))
output = conv(input)
#输出 output 的大小,要求输出不换行
print(output.size())
#/********** End *********/
第5关:池化--Pooling Layers
本关任务:
本关提供了一个Variable 类型的变量x,要求按照条件创建一个Conv2d变量conv,一个MaxPool2d变量pool,对x应用卷积和最大池化操作并赋值给变量outpout_pool,并输出outpout_pool 的大小。
import torch
import torch.nn as nn
from torch.autograd import Variable
x = Variable(torch.randn(10, 32, 28, 28))
#/********** Begin *********/
#创建一个in_channels=3, out_channels=32, kernel_size=(3, 3), stride=1, padding=1, bias=True的Conv2d变量conv
conv = nn.Conv2d(3, 32, (3, 3), stride=1, padding=1)
#创建一个kernel_size=(2, 2), stride=2的MaxPool2d变量pool
pool = nn.MaxPool2d((2, 2), stride=2)
#对x应用卷积和最大池化操作并赋值给变量outpout_pool
outpout_pool = pool(x)
#输出 outpout_pool 的大小,要求输出打印不换行
print('Pool output size : ',outpout_pool.size())
#/********** End *********/