Deep Learning with PyTorch: A 60 Minute Blitz 要点整理
来源:互联网 发布:软件系统设计实例 编辑:程序博客网 时间:2024/06/03 09:10
常用工具类
torch.Tensor
创建
- Construct a 5x3 matrix, uninitialized
x = torch.Tensor(5, 3)
- Construct a randomly initialized matrix
x = torch.rand(5, 3)
CUDA Tensors
Tensors can be moved onto GPU using the .cuda function.
if torch.cuda.is_available(): x = x.cuda() y = y.cuda() x + y
Operation
实现两个tensor的加法:x+y
1.
x + y
2.
torch.add(x, y)
3.giving an output tensor
result = torch.Tensor(5, 3)torch.add(x, y, out=result)
4.in-place
y.add_(x)
torch.autograd.Variable
- .backward()
- .data
- .grad: autograd.Variable
- .creator: autograd.Function. Each variable has a .creator attribute that references a Function that has created the Variable (except for Variables created by the user - their creator is None).
Numpy Bridge
The torch Tensor and numpy array will share their underlying memory locations, and changing one will change the other.
Converting torch Tensor to numpy Array
a = torch.ones(5)b = a.numpy()
Converting numpy Array to torch Tensor
a = np.ones(5)b = torch.from_numpy(a)
搭建神经网络的一般代码架构
import torchfrom torch.autograd import Variableimport torch.nn as nnimport torch.nn.functional as Fimport torch.optim as optim# 1.搭建网络class Net(nn.Module): def __init__(self): super(Net, self).__init__() # 1 input image channel, 6 output channels, 5x5 square convolution # kernel self.conv1 = nn.Conv2d(1, 6, 5) self.conv2 = nn.Conv2d(6, 16, 5) # an affine operation: y = Wx + b self.fc1 = nn.Linear(16 * 5 * 5, 120) self.fc2 = nn.Linear(120, 84) self.fc3 = nn.Linear(84, 10) def forward(self, x): # Max pooling over a (2, 2) window x = F.max_pool2d(F.relu(self.conv1(x)), (2, 2)) # If the size is a square you can only specify a single number x = F.max_pool2d(F.relu(self.conv2(x)), 2) x = x.view(-1, self.num_flat_features(x)) x = F.relu(self.fc1(x)) x = F.relu(self.fc2(x)) x = self.fc3(x) return x def num_flat_features(self, x): size = x.size()[1:] # all dimensions except the batch dimension num_features = 1 for s in size: num_features *= s return num_featuresnet = Net()# 2.input & outputinput = Variable(torch.randn(1, 1, 32, 32))output = net(input) # 执行了nn.Module里的__call__()# 3.loss & bptarget = Variable(torch.arange(1, 11)) # a dummy target, for examplecriterion = nn.MSELoss()loss = criterion(output, target) # 执行了nn.Module里的__call__()loss.backward() # 从loss(scalar)开始做反向传播# 4.create optimizeroptimizer = optim.SGD(net.parameters(), lr=0.01)# 5.每个step(loop)optimizer.zero_grad() # zero the gradient buffers. # zero_grad中对每个参数执行param.grad.data.zero_()optimizer.step() # Does the update
阅读全文
0 0
- Deep Learning with PyTorch: A 60 Minute Blitz 要点整理
- 整理ImageNet Classification with Deep Convolutional Neural Networks中的要点
- Deep Learning with Torch
- deep learning with R
- DIY Deep Learning for Vision: A Tutorial with Caffe
- NOTE:Deep Reinforcement Learning with a Natural Language Action Space
- A Practical Introduction to Deep Learning with Caffe
- Declaration of developing a column with respect to Deep Learning
- A 2017 Guide to Semantic Segmentation with Deep Learning
- deep learning资料整理
- Deep-Learning paper整理
- Deep Learning资源整理
- Deep Learning 资料整理
- 【Deep Learning学习笔记】Modeling Documents with a Deep Boltzmann Machine_Hinton_uai2013
- Deep Learning algorithms with TensorFlow
- Deep Learning重要论文整理
- Deep Learning in a Nutshell
- A Guide to Deep Learning
- python 中的var()函数和cov函数用法
- Hadoop之MapReduce原理
- 欢迎使用CSDN-markdown编辑器
- phpcms后台登陆验证码显示异常
- TortoiseSVN安装使用
- Deep Learning with PyTorch: A 60 Minute Blitz 要点整理
- 网络编程学习笔记(一)网络模型及网络要素简介
- URL Schemes深度剖析(上)
- android 限制editText输入长度(中英)
- 【几维安全】共享单车安全漏洞频现 女黑客轻松破解4款共享单车app
- 观察者模式
- Activity的启动流程
- 24位深的bmp图片转换为16位深RGB565格式的bmp图片源码
- Kali linux安装过程中因DHCP安装失败上不了网的解决办法