Pytorch——3.1. 热身:Pytorch基础

Pytorch github代码链接:https://github.com/L1aoXingyu/pytorch-beginner

ch3:多层全连接神经网络

3.1 热身:Pytorch基础

3.1.1 Tensor(张量)

  1. 不同数据类型的tensor:
32位浮点型torch.FloatTensor   #Tensor默认数据类型
64位浮点型torch.DoubleTensor
16位整型torch.ShortTensor
32位整型torch.IntTensor
64位整型torch.LongTensor

tensor 应用实例:

import torch
a=torch.Tensor([[1,2],[2,3],[3,4]]);
print('a is:{}'.format(a))
print('a size is :{}'.format(a.size()))

#改变tensor的类型
b=torch.LongTensor([[1,2],[2,3],[3,4]])
print('b is:{}'.format(b))

#建立一个全零的tensor
c=torch.zeros((3,2))
print('c is:{}'.format(c))

#取一个正态分布作为随机初始值
d=torch.randn((3,2))
print('d is:{}'.format(d))

运行结果:

a is:
 1  2
 2  3
 3  4
[torch.FloatTensor of size 3x2]

a size is :torch.Size([3, 2])
b is:
 1  2
 2  3
 3  4
[torch.LongTensor of size 3x2]

c is:
 0  0
 0  0
 0  0
[torch.FloatTensor of size 3x2]

d is:
-0.2037 -0.6000
-0.4322  0.2700
 0.6836  0.3145
[torch.FloatTensor of size 3x2]
  1. 可以像numpy一样通过索引的方式取得其中的元素,同时改变它的值:
    比如:
a[0,1]=100
print('a is:{}'.format(a))

运行结果为:

a is:
   1  100
   2    3
   3    4
[torch.FloatTensor of size 3x2]
  1. 除此之外,还可以在Tensor和numpy.ndarray 之间相互转换。
    通过b.numpy()可以将tensor b转换为numpy
    通过torch.from_numpy(e)可以讲numpy e转换为tensor;
numpy_b=b.numpy()
print('b convert to numpy is:{}'.format(numpy_b))

运行结果为:

b convert to numpy is:[[1 2]
 [2 3]
 [3 4]]
e=np.array([[2,3],[4,5]])
print('e is:{}'.format(e))
torch_e=torch.from_numpy(e)
print('torch_e is:{}'.format(torch_e))

运行结果为:

e is:[[2 3]
 [4 5]]
torch_e is:[[2 3]
 [4 5]]

如果需要改变tensor的数据类型,只需要在转换后的tensor后面加上所需的数据类型即可。

f_torche=torch_e.float()
print('f_torche is:{}'.format(f_torche))

结果为:

f_torche is:
 2  3
 4  5
[torch.FloatTensor of size 2x2]

如果需要将Tensor放到GPU上,只需要a.cuda()就能将tensor a放到GPU上了。

if torch.cuda.is_available():   #判断是否支持GPU
    a_cuda=a.cuda()
    print(a_cuda)

3.1.2:Variable(变量)

Variable(变量)提供了自动求导的功能。
将一个tensor a 变成Variable(变量),只需要Variable(a)就可以了。
Variable有三个比较重要的属性:data, grad 和 grad_fn.
通过data可以取出Variable里面的tensor数值,gra

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值