PyTorch学习笔记之nn的简单实例

method 1

 1 import torch
 2 from torch.autograd import Variable
 3
 4 N, D_in, H, D_out = 64, 1000, 100, 10
 5 x = Variable(torch.randn(N, D_in))
 6 y = Variable(torch.randn(N, D_out), requires_grad=False)
 7
 8 # define our model as a sequence of layers
 9 model = torch.nn.Sequential(
10     torch.nn.Linear(D_in, H),
11     torch.nn.ReLU(),
12     torch.nn.Linear(H, D_out))
13 # nn defines common loss functions
14 loss_fn = torch.nn.MSELoss(size_average=False)
15
16 learning_rate = 1e-4
17
18 for t in range(500):
19     # forward pass: feed data to model, and prediction to loss function
20     y_pred = model(x)
21     loss = loss_fn(y_pred, y)
22
23     # backward pass: compute all gradients
24     model.zero_grad()
25     loss.backward()
26
27     # make gradient step on each model parameter
28     for param in model.parameters():
29         param.data -= learning_rate * param.grad.data

method 2

 1 import torch
 2 from torch.autograd import Variable
 3
 4 N, D_in, H, D_out = 64, 1000, 100, 10
 5 x = Variable(torch.randn(N, D_in))
 6 y = Variable(torch.randn(N, D_out), requires_grad=False)
 7
 8 # define our model as a sequence of layers
 9 model = torch.nn.Sequential(
10     torch.nn.Linear(D_in, H),
11     torch.nn.ReLU(),
12     torch.nn.Linear(H, D_out))
13 # nn defines common loss functions
14 loss_fn = torch.nn.MSELoss(size_average=False)
15
16 learning_rate = 1e-4
17 # use an optimizer for different update rules
18 optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate)
19
20 for t in range(500):
21     # forward pass: feed data to model, and prediction to loss function
22     y_pred = model(x)
23     loss = loss_fn(y_pred, y)
24
25     # backward pass: compute all gradients
26     model.zero_grad()
27     loss.backward()
28
29     # update all parameters after computing gradients
30     optimizer.step()

PyTorch nn Define new Modules

 1 import torch
 2 from torch.autograd import Variable
 3 import torch.nn as nn
 4
 5 # define our whole model as a single Module
 6 class TwoLayerNet(nn.Module):
 7     # Initializer sets up two children (Modules can contain modules)
 8     def _init_(self, D_in, H, D_out):
 9         super(TwoLayerNet, self)._init_()
10         self.linear1 = torch.nn.Linear(D_in, H)
11         self.linear2 = torch.nn.Linear(H, D_out)
12
13     # Define forward pass using child modules and autograd ops on Variables
14     # No need to define backward - autograd will handle it
15     def forward(self, x):
16         h_relu = self.linear1(x).clamp(min=0)
17         y_pred = self.linear2(h_relu)
18         return y_pred
19
20 N, D_in, H, D_out = 64, 1000, 100, 10
21 x = Variable(torch.randn(N, D_in))
22 y = Variable(torch.randn(N, D_out), requires_grad=False)
23
24 # Construct and train an instance of our model
25 model = TwoLayerNet(D_in, H, D_out)
26
27 criterion = torch.nn.MSELoss(size_average=False)
28 optimizer = torch.optim.SGD(model.parameters(), lr=1e-4)
29 for t in range(500):
30     y_pred = model(x)
31     loss = criterion(y_pred, y)
32
33     model.zero_grad()
34     loss.backward()
35     optimizer.step()
时间: 2024-10-29 19:12:03

PyTorch学习笔记之nn的简单实例的相关文章

[转载]SharePoint 2013搜索学习笔记之搜索构架简单概述

Sharepoint搜索引擎主要由6种组件构成,他们分别是爬网组件,内容处理组件,分析处理组件,索引组件,查询处理组件,搜索管理组件.可以将这6种组件分别部署到Sharepoint场内的多个服务器上,组成适合需求的Sharepoint搜索场,搜索场的体系结构设计主要参考量是爬网内容量,微软根据爬网内容量不同将搜索场分为大型场,中型场和小型场,更多详细信息可参考: SharePoint Server 2013 中的搜索概述和在SharePoint Server 2013 中规划企业搜索体系结构.

Sharepoint2013搜索学习笔记之搜索构架简单概述(一)

Sharepoint搜索引擎主要由6种组件构成,他们分别是爬网组件,内容处理组件,分析处理组件,索引组件,查询处理组件,搜索管理组件.可以将这6种组件分别部署到Sharepoint场内的多个服务器上,组成适合需求的Sharepoint搜索场,搜索场的体系结构设计主要参考量是爬网内容量,微软根据爬网内容量不同将搜索场分为大型场,中型场和小型场,更多详细信息可参考:SharePoint Server 2013 中的搜索概述和在SharePoint Server 2013 中规划企业搜索体系结构. S

【web开发学习笔记】Structs2 Result学习笔记(一)简单介绍

Structs2 Result学习笔记(一)简单介绍 问题一 <struts> <constant name="struts.devMode" value="true" /> <package name="resultTypes" namespace="/r" extends="struts-default"> <action name="r1"

SpringMVC笔记——SSM框架搭建简单实例

落叶枫桥 博客园 首页 新随笔 联系 订阅 管理 SpringMVC笔记——SSM框架搭建简单实例 简介 Spring+SpringMVC+MyBatis框架(SSM)是比较热门的中小型企业级项目开发的框架,对于新手来说也是比较容易学习入门的.虽说容易,但在框架搭建过程中仍然遇到了许多问题,因此用实例记录下来吧. 实例 第一步——导包 Spring框架包及其依赖包 MyBatis框架包及其依赖包 MyBatis-EhCache架包 C3P0架包 MySql数据库驱动包 项目架包如下: 项目结构如

DuiLib学习笔记2——写一个简单的程序

我们要独立出来自己创建一个项目,在我们自己的项目上加皮肤这才是初衷.我的新建项目名为:duilibTest 在duilib根目录下面有个 Duilib入门文档.doc 我们就按这个教程开始入门 首先新建一个win32项目 去DuiLib根目录,把目录下DuiLib文件夹拷贝到新建项目的根目录.再把这个项目添加进我们解决方案中. 从教程里面把以下代码粘贴到我们项目的stdafx.h中 // Duilib使用设置部分 #pragma once #define WIN32_LEAN_AND_MEAN

lua学习笔记10:lua简单命令行

前面多次用了命令行,这次就好好学下命令行: 一 格式 lua [options][script][args] 二 具体命令 -e 直接将命令传个lua -l 加载一个文件 -i 进入交互模式 例如,终端输入: lua -e "print(math.sin(12))" lua学习笔记10:lua简单命令行,布布扣,bubuko.com

iOS: 学习笔记, 用代码驱动自动布局实例

iOS自动布局是设置iOS界面的利器. 本实例展示了如何使用自动布局语言设置水平布局, 垂直布局 1. 创建空白iOS项目 2. 添加一个控制器类, 修改YYAppDelegate.m文件 #import "YYAppDelegate.h" #import "YYViewController.h" @implementation YYAppDelegate - (BOOL)application:(UIApplication *)application didFin

c++学习笔记2(c++简单程序)

c++的简单程序 练习一: #include <iostream>int main(){std::cout<<"你好c++\n";int x;std::cin>>x;std::cout<<x;return 0;} #:预处理标志,对文本进行预处理操作:预处理标志表示该行代码要最先进行处理,要在编译器编译代码之前运行.include:预处理指令 表示将<>内的文件读入. <...>头文件iostream(输入输出流)

iOS: 学习笔记, 用代码驱动自动布局实例(swift)

iOS自动布局是设置iOS界面的利器.本实例展示了如何使用自动布局语言设置水平布局, 垂直布局1. 创建空白iOS项目(swift)2. 添加一个控制器类, 修改YYAppDelegate.swift文件 @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(application: UIApplication, didFi