Tensor

1--本质上可以理解为具有不同维度的数组

2--支持的基本运算

|---创建Tensor:  x=t.tensor(x,y) x,y 表示数组的大小 , x=t.rand(x,y), x=t.ones(x,y)

|---获取Tensor的大小 x.size()

|---加法运算

|----普通加法(返回新的变量)

  x=t.tensor(a,b),y=t.tensor(a,b),

  x+y

  t.add(x,y)

  x.add(y)

  r=t.tensor(a,b), t.add(x,y,out=r)

|----改变运算对象的加法

  y.add_(x)   y的内容被改变了

3--与numpy的关系

  本质上就是共享一个内存的对象的,可以快速转化

|----tensor->numpy

  x=t.tensor(a,b),y=x.numpy()

|----numpy->tensor

  x=np.ones(a,b),y=t.from_numpy(x)

4--与cuda的tensor的关系可以通过  x.cuda()转化

Variable

1--在当实验过程中没有发现和Tensor的区别?

2--Variable与Tensor的关系

|----  Variable={ data(Tensor),grad,grad_fn }

Net

1--PyTorch中网络是以继承的方式实现

|----继承nn.Model 然后实现 init 和 forward, 需要训练的层放在init中(如CONV),不需要训练的放在 forward中定义即可,定义顺序不一定

|----定义时没有定义输入的图像大小? pool层的参数?输入时只接受batch输入,要在前加一个batch维度?

2--损失函数

|----损失函数定义在nn模块下,创建一个对象criterion =nn.MSELoss(), 使用该对象

3--优化器

|----怎么理解优化器:定义了损失函数,反向传播了梯度,但是如何利用梯度去改变参数就是优化器的作用

|----优化器的参数:优化的参数,学习率。 可以说学习率是梯度的比重,对训练速度有影响,一般取0.1

|----使用流程:各种优化器定义在nn.optim中,声明(net.parameters, lr)-> 计算loss -> loos反向传递 -> 优化器.step()

小总: pytorch 数据结构上的抽象是:  tensor -> variable -> net 三个层次, 基本上利用 variable 和 net 这个层次就能够很方便的实现网络了

  

pytorch入门与实践-2.2的更多相关文章

  1. pytorch入门与实践-2.2-CIFAR10分类网络

    1--数据载入 |----流程: DataSet->DataLoader->调用DataLoader |----DataLoader迭代器读不到数据,无报错,一直卡住的显现: DataLo ...

  2. pytorch入门与实践-3 Tensor详解

    1--如第二章所讲,Tensor的本质是矩阵或数据 2--对Tensor的操作分类 |----API分类 |------torch中定义的: t.f(a,b) |------tensor的成员函数: ...

  3. 《深度学习框架PyTorch:入门与实践》的Loss函数构建代码运行问题

    在学习陈云的教程<深度学习框架PyTorch:入门与实践>的损失函数构建时代码如下: 可我运行如下代码: output = net(input) target = Variable(t.a ...

  4. 《Github入门与实践》读书笔记 蟲咋先生的追求之旅(上)

    <Github入门与实践>作者: [日] 大塚弘记 译者:支鹏浩/刘斌   简介 本书从Git的基本知识和操作方法入手,详细介绍了GitHub的各种功能,GitHub与其他工具或服务的协作 ...

  5. Python编程从入门到实践笔记——异常和存储数据

    Python编程从入门到实践笔记——异常和存储数据 #coding=gbk #Python编程从入门到实践笔记——异常和存储数据 #10.3异常 #Python使用被称为异常的特殊对象来管理程序执行期 ...

  6. Python编程从入门到实践笔记——文件

    Python编程从入门到实践笔记——文件 #coding=gbk #Python编程从入门到实践笔记——文件 #10.1从文件中读取数据 #1.读取整个文件 file_name = 'pi_digit ...

  7. Python编程从入门到实践笔记——类

    Python编程从入门到实践笔记——类 #coding=gbk #Python编程从入门到实践笔记——类 #9.1创建和使用类 #1.创建Dog类 class Dog():#类名首字母大写 " ...

  8. Python编程从入门到实践笔记——函数

    Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 ...

  9. Python编程从入门到实践笔记——用户输入和while循环

    Python编程从入门到实践笔记——用户输入和while循环 #coding=utf-8 #函数input()让程序暂停运行,等待用户输入一些文本.得到用户的输入以后将其存储在一个变量中,方便后续使用 ...

随机推荐

  1. 分布式架构探索 - 1. RPC框架之Java原生RMI

    1. 什么是RPC RPC(Remote Procedure Call)即远程过程调用,指的是不同机器间系统方法的调用,这和 同机器动态链接库(DLL)有点类似,只不过RPC是不同机器,通过网络通信来 ...

  2. android编码学习

    虽然以下博客有点老,但很清晰,有不明白的基础知识,可以来这里找找. 2015年最新Android基础入门教程目录(完结版) 1. 环境配置 Android stodio gradle配置踩过的坑 An ...

  3. exception The valid characters are defined in RFC 7230 and RFC 3986

      1.情景展示 当你使用浏览器进行问号传参与后台进行交互时,会报这个异常. tomcat控制台报错信息如下: The valid characters are defined in RFC 7230 ...

  4. Spring Cloud Netflix Zuul 重试会自动跳过经常超时的服务实例的简单说明和分析

    在使用E版本的Spring Cloud Netflix Zuul内置的Ribbon重试功能时,发现Ribbon有一个非常有用的特性: 如果某个服务的某个实例经常需要重试,Ribbon则会在自己维护的一 ...

  5. Unity应用架构设计(9)——构建统一的 Repository

    谈到 『Repository』 仓储模式,第一映像就是封装了对数据的访问和持久化.Repository 模式的理念核心是定义了一个规范,即接口『Interface』,在这个规范里面定义了访问以及持久化 ...

  6. Cordova 项目 加载不出XML文件

    解决方法:copy bundle 将文件移除再添加

  7. elastic search query & filter & query_string

    一.基本概念 1.query时,如何指定返回哪些字段 希望返回name和date字段 希望返回以location.*为前缀的字段以及date字段:不希望返回location.geolocation字段 ...

  8. 【原创 Hadoop&Spark 动手实践 12】Spark MLLib 基础、应用与信用卡欺诈检测系统动手实践

    [原创 Hadoop&Spark 动手实践 12]Spark MLLib 基础.应用与信用卡欺诈检测系统动手实践

  9. 【Spark深入学习 -14】Spark应用经验与程序调优

    ----本节内容------- 1.遗留问题解答 2.Spark调优初体验 2.1 利用WebUI分析程序瓶颈 2.2 设置合适的资源 2.3 调整任务的并发度 2.4 修改存储格式 3.Spark调 ...

  10. Spring Boot 调用 MongoRepository时报org.springframework.beans.factory.NoSuchBeanDefinitionException错误的解决办法

    这个问题整整折腾了我两天,现在记录下来,希望可以帮助和我一样,遇到相同问题的小伙伴. 项目是分层的(Intellij IDEA中的模块Module),有API(Core)层,Service&D ...