pytorch 学习第一日

今天看是学习pytorch,视频教程是莫烦的pytorch教程,安装花了一天时间,主要是pytorch用conda下载不下来,建议离线下载,然后要找离线的方式安装,这个靠谱。

首先就是tensor,variable的概念,tensor与variable貌似在最新的版本中,已经合二为一了,而视频上还是按老版本来讲的。实验代码如下

import torch
from torch.autograd import Variable

#听说新版本variable与tensor两个类型合并了。
#variable与tensor的区别在于:
#Tensor对象支持在原对象支持区域上修改数据,通+=”或者torch.add()方法
#而Variable不支持在原对象内存区域上修改数据
#Variable对象可求梯度,并且对Variable对象的操作,操作会被记录
#可以通过grad_fn属性查看上一次的操作,可通过data属性访问原始张量
#
tensor = torch.FloatTensor([[1,2],[3,4]])
variable = Variable(tensor, requires_grad=True);

t_out = torch.mean( tensor*tensor )
v_out = torch.mean( variable * variable )

print(t_out)
print(v_out)
#v_out = 1/4*sum(var*var).梯度如何就是那呢?
#d( v_out ) /d(var) = 1/4*2*variable = variable /2;
v_out.backward()
#
print(variable.grad)            #
print(variable.data)            #这是tensor类型
print(variable.data.numpy())    #把variable里面的tensor转换成numpy
print(variable)                 #variable

可能以后,variable的概念就要淡化了,不再需要由tensor来生成variable了,但为了学习,代码风格与视频中保持一致。

这断代码,包括一些用torch的tesnor,variable进行计算的方法,

我个人比较感兴趣的是

v_out.backward()

反向传播,应该就类似于神经网络的反向传播,拟合参数的概念类似。看看后面四个打印的信息

tensor(7.5000)
tensor(7.5000, grad_fn=<MeanBackward0>)
tensor([[0.5000, 1.0000],
        [1.5000, 2.0000]])
tensor([[1., 2.],
        [3., 4.]])
[[1. 2.]
 [3. 4.]]
tensor([[1., 2.],
        [3., 4.]], requires_grad=True)

可以看到v_out.backward()了以后,改变了variable.grad的值,或者说修改了variable类的一些成员。
加入把varible的四个值看成是x,vout对应一个y。那么
y =f(x),其中

f(x) =1 / 4 * sum( x^2 )

有点不大懂了。。。

总而言之,由于这个视频可能需要一定的pytorch基础,直接上手看,太多不懂的概念,我决定先看其他有讲pytorch基础的视频,入入门。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值