pytorch入门与实践-2.2
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的更多相关文章
- pytorch入门与实践-2.2-CIFAR10分类网络
1--数据载入 |----流程: DataSet->DataLoader->调用DataLoader |----DataLoader迭代器读不到数据,无报错,一直卡住的显现: DataLo ...
- pytorch入门与实践-3 Tensor详解
1--如第二章所讲,Tensor的本质是矩阵或数据 2--对Tensor的操作分类 |----API分类 |------torch中定义的: t.f(a,b) |------tensor的成员函数: ...
- 《深度学习框架PyTorch:入门与实践》的Loss函数构建代码运行问题
在学习陈云的教程<深度学习框架PyTorch:入门与实践>的损失函数构建时代码如下: 可我运行如下代码: output = net(input) target = Variable(t.a ...
- 《Github入门与实践》读书笔记 蟲咋先生的追求之旅(上)
<Github入门与实践>作者: [日] 大塚弘记 译者:支鹏浩/刘斌 简介 本书从Git的基本知识和操作方法入手,详细介绍了GitHub的各种功能,GitHub与其他工具或服务的协作 ...
- Python编程从入门到实践笔记——异常和存储数据
Python编程从入门到实践笔记——异常和存储数据 #coding=gbk #Python编程从入门到实践笔记——异常和存储数据 #10.3异常 #Python使用被称为异常的特殊对象来管理程序执行期 ...
- Python编程从入门到实践笔记——文件
Python编程从入门到实践笔记——文件 #coding=gbk #Python编程从入门到实践笔记——文件 #10.1从文件中读取数据 #1.读取整个文件 file_name = 'pi_digit ...
- Python编程从入门到实践笔记——类
Python编程从入门到实践笔记——类 #coding=gbk #Python编程从入门到实践笔记——类 #9.1创建和使用类 #1.创建Dog类 class Dog():#类名首字母大写 " ...
- Python编程从入门到实践笔记——函数
Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 ...
- Python编程从入门到实践笔记——用户输入和while循环
Python编程从入门到实践笔记——用户输入和while循环 #coding=utf-8 #函数input()让程序暂停运行,等待用户输入一些文本.得到用户的输入以后将其存储在一个变量中,方便后续使用 ...
随机推荐
- 一些Android手机的平台信息
1.OPPO A83 (2018-04-16) A83:/ $ cat /system/build.prop | grep "product"# ro.product.cpu.ab ...
- [转]Kqueue与epoll机制
首先介绍阻塞与非阻塞:阻塞是个什么概念呢?比如某个时候你在等快递,但是你不知道快递什么时候过来,而且你没有别的事可以干(或者说接下来的事要等快递来了才能做):那么你可以去睡觉了,因为你知道快递把货送来 ...
- 关于Java 软件工程师应该知道或掌握的技术栈
鄙人星云,今天突然想写这么一篇需要持续更新的文章,主要目的用于总结当前最流行的技术和工具,方便自己也方便他人. 更新时间:2018-10-23 09:26:19 码农职业路径图 码农入门职业路径图 J ...
- [k8s]debug模式启动集群&k8s常见报错集合(on the fly)
debug模式启动-支持sa 集群内(pod访问api)使用443加密 no1 no2 安装flanneld kubelet/kube-proxy m1 安装etcd/ api/contruller/ ...
- 利用git 进行多人协作开发
现在,大部分项目都是用 git 来管理代码的,但当项目变大.多人协作时,git 的使用就变得复杂了,这时就需要在 git 使用的流程上来思考如何更优的使用 git. 对于大部分 web 项目而言,并不 ...
- VBA二次学习笔记(3)——批量合并单元格
说明(2018-9-16 22:17:49): 1. 昨天运动会,100米八个人跑了第五,400米五个人跑了第三,得了个榨汁机.终于结束了哈哈哈!之前一个星期紧张的天天拉肚子,真是没出息..不过养成了 ...
- Matlab信号处理基础
一. 简介 离散傅立叶.离散余弦和离散小波变换是图像.音频信号常用基础操作,时域信号转换到不同变换域以后,会导致不同程度的能量集中,信息隐藏利用这个原理在变换域选择适当位置系数进行修改,嵌入信息,并确 ...
- find ctime 加减n时间范围
看下atime的时间解释:-atime n File was last accessed n*24 hours ago. When find figures out how many 24-hour ...
- hdoj:2071
Max Num Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- 使用JavaScript验证用户输入的是否为正整数
在项目开发中,需要使用JavaScript验证用户输入的是否为正整数. 方法一: var type="^[0-9]*[1-9][0-9]*$"; var r=new RegExp( ...