torch学习 (41):torch中的tensor初始化操作
文章目录
- 1 tensor
- 2 sparse_coo_tensor:以稀疏方式创建
- 3 as_tensor:转换为tensor,且保留已有梯度历史等
- 4 from_numpy:numpy转tensor
- 5 zeros:创建全0的tensor
- 6 zeros_like:创建与input同形的全0值tensor
- 7 ones:创建全1值tensor
- 8 ones_like:创建与input同形的全1值tensor
- 9 arange:创建给定范围与间隔的1维tensor
- 10 range:创建给定范围与间隔的1维tensor,多个值
- 11 linspace:给定步长划分给定区间
- 12 logspace:划分指数空间
- 13 eye:创建对角二维tensor
- 14 empty:创建未初始化的的tensor
- 15 empty_like
- 16 full:创建指定指定值指定大小的tensor
- 17 full_like
- 18 complex:创建复数形tensor
- 19 polar:创建极坐标复数形tensor
- 20 heaviside:创建给定输入下的阶跃tensor
1 tensor
import torchprint(torch.tensor([1, 2]))
输出如下:
tensor([1, 2])
2 sparse_coo_tensor:以稀疏方式创建
函数声明:torch.sparse_coo_tensor(indices, values, size=None, *, dtype=None, device=None, requires_grad=False) → Tensor
# 样本点的索引
indices = [[0, 1, 1], [2, 0, 2]]
# 索引对应的值
values = [5, 10, -3]
# 张量大小
size = [5, 4]
test = torch.sparse_coo_tensor(indices, values, size)
print(test)
输出如下:
tensor(indices=tensor([[0, 1, 1],[2, 0, 2]]),values=tensor([ 5, 10, -3]),size=(5, 4), nnz=3, layout=torch.sparse_coo)
3 as_tensor:转换为tensor,且保留已有梯度历史等
函数声明:torch.as_tensor(data, dtype=None, device=None) → Tensor
l = [[0, 1, 1], [2, 0, 2]]
test = torch.as_tensor(l)
print(test)
# 会保留已有的梯度历史等
l = torch.tensor(l, dtype=torch.float16, requires_grad=True)
test = torch.as_tensor(l)
print(test)
输出如下:
tensor([[0, 1, 1],[2, 0, 2]])
tensor([[0., 1., 1.],[2., 0., 2.]], dtype=torch.float16, requires_grad=True)
4 from_numpy:numpy转tensor
函数声明:torch.from_numpy(ndarray) → Tensor
import torch
torch.manual_seed(1)import numpy as np
a = np.random.randn(5, 4)
print(a)
b = torch.from_numpy(a)
print(b)
输出如下:
[[-0.73184672 0.03196001 0.83596213 0.4532344 ][-0.64156264 0.0558329 0.87383367 0.3905794 ][-0.93415778 -0.06438401 2.88525277 0.30842341][ 0.63993273 1.57506805 -0.90221034 -1.17684777][ 0.21111362 2.12330942 1.10078778 -0.78174573]]
tensor([[-0.7318, 0.0320, 0.8360, 0.4532],[-0.6416, 0.0558, 0.8738, 0.3906],[-0.9342, -0.0644, 2.8853, 0.3084],[ 0.6399, 1.5751, -0.9022, -1.1768],[ 0.2111, 2.1233, 1.1008, -0.7817]], dtype=torch.float64)
5 zeros:创建全0的tensor
函数声明:torch.zeros(*size, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) → Tensor
a = torch.zeros([5, 4])
print(a)
输出如下:
tensor([[0., 0., 0., 0.],[0., 0., 0., 0.],[0., 0., 0., 0.],[0., 0., 0., 0.],[0., 0., 0., 0.]])
6 zeros_like:创建与input同形的全0值tensor
函数声明:torch.zeros_like(input, *, dtype=None, layout=None, device=None, requires_grad=False, memory_format=torch.preserve_format) → Tensor
a = torch.randn(3, 2)
print(a)
b = torch.zeros_like(a)
print(a)
输出如下:
tensor([[ 0.6614, 0.2669],[ 0.0617, 0.6213],[-0.4519, -0.1661]])
tensor([[ 0.6614, 0.2669],[ 0.0617, 0.6213],[-0.4519, -0.1661]])
7 ones:创建全1值tensor
函数声明:torch.ones(*size, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) → Tensor
8 ones_like:创建与input同形的全1值tensor
函数声明:torch.ones_like(input, *, dtype=None, layout=None, device=None, requires_grad=False, memory_format=torch.preserve_format) → Tensor
9 arange:创建给定范围与间隔的1维tensor
函数声明:torch.arange(start=0, end, step=1, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) → Tensor
a = torch.arange(0.1, 0.2, 0.01)
print(a)
输出如下:
tensor([0.1000, 0.1100, 0.1200, 0.1300, 0.1400, 0.1500, 0.1600, 0.1700, 0.1800,0.1900])
10 range:创建给定范围与间隔的1维tensor,多个值
函数声明:torch.range(start=0, end, step=1, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) → Tensor
a = torch.range(0.1, 0.2, 0.01)
print(a)
输出如下:
tensor([0.1000, 0.1100, 0.1200, 0.1300, 0.1400, 0.1500, 0.1600, 0.1700, 0.1800,0.1900, 0.2000])
11 linspace:给定步长划分给定区间
函数声明:torch.linspace(start, end, steps, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) → Tensor
a = torch.linspace(0.1, 0.2, 7)
print(a)
输出如下:
tensor([0.1000, 0.1167, 0.1333, 0.1500, 0.1667, 0.1833, 0.2000])
12 logspace:划分指数空间
函数声明:torch.logspace(start, end, steps, base=10.0, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) → Tensor
a = torch.logspace(0.1, 0.2, 7, 3)
print(a)
输出如下:
tensor([1.1161, 1.1367, 1.1578, 1.1791, 1.2009, 1.2231, 1.2457])
13 eye:创建对角二维tensor
函数声明:torch.eye(n, m=None, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) → Tensor
a = torch.eye(4, 5)
print(a)
输出如下:
tensor([[1., 0., 0., 0., 0.],[0., 1., 0., 0., 0.],[0., 0., 1., 0., 0.],[0., 0., 0., 1., 0.]])
14 empty:创建未初始化的的tensor
函数声明:torch.empty(*size, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False, pin_memory=False, memory_format=torch.contiguous_format) → Tensor
15 empty_like
函数声明:torch.empty_like(input, *, dtype=None, layout=None, device=None, requires_grad=False, memory_format=torch.preserve_format) → Tensor
16 full:创建指定指定值指定大小的tensor
函数声明:torch.full(size, fill_value, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) → Tensor
a = torch.full((2, 3), 3)
print(a)
输出如下:
tensor([[3, 3, 3],[3, 3, 3]])
17 full_like
函数声明:torch.full_like(input, fill_value, *, dtype=None, layout=torch.strided, device=None, requires_grad=False, memory_format=torch.preserve_format) → Tensor
18 complex:创建复数形tensor
函数声明:torch.complex(real, imag, *, out=None) → Tensor
# 实部
real = torch.tensor([1, 2], dtype=torch.float32)
# 虚部
imag = torch.tensor([3, 4], dtype=torch.float32)
a = torch.complex(real, imag)
print(a)
输出如下:
tensor([1.+3.j, 2.+4.j])
19 polar:创建极坐标复数形tensor
函数声明:torch.polar(abs, angle, *, out=None) → Tensor
import numpy as np
# 绝对值
abs = torch.tensor([1, 2], dtype=torch.float64)
# 角度
angle = torch.tensor([np.pi / 2, 5 * np.pi / 4], dtype=torch.float64)
a = torch.polar(abs, angle)
print(a)
输出如下:
tensor([ 6.1232e-17+1.0000j, -1.4142e+00-1.4142j], dtype=torch.complex128)
20 heaviside:创建给定输入下的阶跃tensor
函数声明:torch.heaviside(input, values, *, out=None) → Tensor
input = torch.tensor([-1.5, 0, 2.0])
values = torch.tensor([0.5])
a = torch.heaviside(input, values)
print(a)
values = torch.tensor([1.2, -2.0, 3.5])
b = torch.heaviside(input, values)
print(b)
输出如下:
tensor([0.0000, 0.5000, 1.0000])
tensor([ 0., -2., 1.])
torch学习 (41):torch中的tensor初始化操作相关推荐
- react学习(41)----react中的jsx简介
JSX 特定属性你可以通过使用引号,来将属性值指定为字符串字面量:const element = <div tabIndex="0"></div>;也可以使 ...
- django学习笔记--数据库中的多表操作
1.Django数据库----多表的新增操作 1.一对一模式下新增 创建一个详情对象,把这个对象赋值给创建的新的user对象 author_detail = models.AuthorDetail.o ...
- java学习(三) java 中 mongodb的各种操作
一. 常用查询: 1. 查询一条数据:(多用于保存时判断db中是否已有当前数据,这里 is 精确匹配,模糊匹配 使用 regex...) public PageUrl getByUrl(String ...
- 如何理解深度学习中的tensor(涉及numpy的二维,三维以及四维数据的理解)
0. 写作目的 好记性不如烂笔头. 结论:无论几维,都可以按照(Batch_size, Height, Width, Channle)来理解. 1. 二维数据的理解 理解为:只有(Height, Wi ...
- python课堂实例_享学课堂带你了解并读懂Python列表中的6种操作实例
原标题:享学课堂带你了解并读懂Python列表中的6种操作实例 今天为大家来介绍一下很多人在享学课堂上学习Python时,经常会用到列表,列表(list)就是动态数组,相当于C++标准库的Vector ...
- vue2 对接网易im初始化操作
一,上网易im官网下载对应的sdk(我这里选择的是web端的) 网易云信-开发者中心SDK下载 下载好了如下文件,具体区别上官网自行查看 (浏览器环境集成 - IM 即时通讯) 二.选择一个sdk引入 ...
- Pytorch 学习(6):Pytorch中的torch.nn Convolution Layers 卷积层参数初始化
Pytorch 学习(6):Pytorch中的torch.nn Convolution Layers 卷积层参数初始化 class Conv1d(_ConvNd):......def __init ...
- pytorch每日一学22(torch.empty()、torch.empty_like()、torch.empty_strided())创建未初始化数据的tensor
第22个方法 由于下面这三个方法比较相似,都是创建未初始化的tensor(第三个是创建一个tensor的视图),所以就放到一起来讲: torch.empty(*size, *, out=None, d ...
- 【增强学习】Torch中的增强学习层
要想在Torch框架下解决计算机视觉中的增强学习问题(例如Visual Attention),可以使用Nicholas Leonard提供的dpnn包.这个包对Torch中原有nn包进行了强大的扩展, ...
- pytorch每日一学28(torch.heaviside())对输入中的每一个元素都进行单位阶跃函数处理并返回结果的tensor
第28个方法 torch.heaviside(input, values, * , out=None) → Tensor 此方法存在于pytorch1.7.0,1.7.0以下的pytorch中没有此方 ...
最新文章
- OpenCV 4.5.4 刚刚发布!新增SoftNMS、DNN模型8位量化等功能
- linux centos7开放端口命令,Centos7开放端口教程
- 批处理通过字符串截取得到文件名
- ArcGis Server开发Web GIS新手体验(二)
- SilverLight明日起通过微软更新推送
- 1-9月全国快递服务企业业务量累计完成561.4亿件 同比增长27.9%
- cocoslua与android交互,cocos2dx 获取手机屏幕分辨率 objective-c android 和 Lua 交互 向lua 传参...
- [Spark]-编译(2.3.1)部署(YARN-Cluster)
- dell设置从ssd启动_工程师笔记︱趁降价采购了一批SSD,结果管理上遇到了问题?...
- 和大家一起分享几组Android游戏源码
- 如何把一个eclipse安装包放到eclipse中
- vvv在线文档导出工具_墙裂推荐一个好用的在线文档编辑工具
- VC下如何使用GDI+进行图像程序设计
- MySQL服务中断后重启失败及解决办法(个例)
- HOG 特征的提取--基于scikit-image
- JAVA 使用 Random 实现概率 可控 抽奖算法
- MySQL——索引与EXPLAIN
- 扫描识别行驶证的软件技术
- 第七十篇:从ADAS到自动驾驶(三):车道检测
- Discuz!教程之从码云下载的Discuz!代码安装后个人资料页面乱码问题修复