Pytorch使用和技巧

 

#先导入包
import torch
import numpy as np

1. tensor的创建

1.1 初始化tensor的方法

data = [[1, 2][3, 4]] # 使用列表初始化tensor
tensor_data = torch.tensor(data)

# 通过 numpy数组创建tensor

data = np.random.normal((2, 3))
tensor_data = torch.tensor(data)

# 创建一个和另一个张量大小相同的全一tensor
data_ones = torch.ones_like(data)

# 创建一个和另一个张量大小相同的随机张量

data_rand = torch.rand_like(data)

# 创建随机张量

rand_data = torch.rand([2, 3]) # 其中的size可以是数组,tuple,不能为字典

1.2 查看tensor属性

data = torch.randn((2, 3))

# 判断是否是张量
data.is_tensor()   # return True or False

data.is_complex(). # 数据是复数返回True, 否则返回False

data.is_floating_point() # 数据为浮点类型返回True, 否则为False

torch.is_nonzero(data) # 是不是包含单一元素tensor,并且如果是0就返回False, 否则就是True

torch.numel(data) # 判断张量中所有元素的数目

1.3 张量操作

torch.zeros([H, W]) # 返回全零张量

torch.range(start=0, end, step=1) # 生成连续的张量, 传入一个参数默认是end

torch.arange(start, end, step=1) # 也是生成连续的张量
# 注意torch.range生成的连续数组比torch.arange要多一个元素
torch.eye(n, m=None) # 创建一个 n * m 的单位矩阵,没有m就会创建 n * n的方阵

torch.full([H, W], m) , 创建一个H * W,元素全部为m的矩阵

torch.cat()# 对张量进行连接
# 例如


使用tensorflow时候没有考虑过这个事情,今天读代码发现torch还有这样一个重要的语句,记录学习一下:

1. model.train()
启用 BatchNormalization 和 Dropout
2. model.eval()
不启用 BatchNormalization 和 Dropout
训练完 train 样本后,生成的模型 model 要用来测试样本。在 model(test) 之前,需要加上model.eval(),否则只要有输入数据,即使不训练,model 也会改变权值。这是model中含有的 batch normalization 层所带来的的性质。
转载自:https://zhuanlan.zhihu.com/p/208233193

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值