用 numpy 创建 tensor:
import numpy as np
import torch
a_np = np.array([2,3.3])
a_tensor = torch.from_numpy(a_np)
print("a_tensor: ", a_tensor)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-alJFh91d-1627223223967)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/f00cdf47-ac8a-4088-a3ba-09b209669f00/Untitled.png)]](https://img-blog.csdnimg.cn/17a917fdb08841798e142ac1870d8e48.png)
用 list 创建 tensor
import torch
a_list = [2,3.3]
a_torch = torch.tensor(a_list)
print("a_torch: ", a_torch)
print("a_torch.dtype: ", a_torch.dtype)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-alyWwX3d-1627223223970)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/ee8b79d7-b15a-4158-8ce3-e72525a984a1/Untitled.png)]](https://img-blog.csdnimg.cn/fde30c6a994243fb89ed1abad6b8fbff.png)
Tensor与tensor
import torch
data = [1,2.1]
print("Tensor(data):\n", torch.Tensor(data))
print("Tensor(2,3):\n", torch.Tensor(2,3))
print("tensor(data):\n", torch.tensor(data))
try:
print("tensor(2,3):\n", torch.tensor(2,3))
except TypeError as e:
print("tensor(2,3)代码运行报错")
print(e)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DVIpX0nd-1627223223971)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/45c92f39-eefc-4aa4-812a-7fde886abfa4/Untitled.png)]](https://img-blog.csdnimg.cn/b8be3098c8974232bae07ae7451b8a83.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNDY0NTY5,size_16,color_FFFFFF,t_70)
- tensor只能转换数值数据,不能输入shape数据
- Tensor既能转换数值数据,也能输入shape数据
未初始化
import torch
print("torch.empty([2,3]):\n", torch.empty([2,3]))
print("torch.empty(2,3):\n", torch.empty(2,3))
print("torch.FloatTensor([2,3]):\n", torch.FloatTensor([2,3]))
print("torch.FloatTensor(2,3):\n", torch.FloatTensor(2,3))
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dEeHJTMq-1627223223973)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/46d56877-e30a-4481-887a-834d3ea6859c/Untitled.png)]](https://img-blog.csdnimg.cn/1b48cbd6b9d848c4a02b4dd296df6e57.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNDY0NTY5,size_16,color_FFFFFF,t_70)
- 在创建张量后,要记得初始化,不然可能会对之后运算造成严重影响。
设置默认类型
import torch
print(torch.tensor([1,2.3]).type())
torch.set_default_tensor_type(torch.DoubleTensor)
print(torch.tensor([1,2.3]).type())
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yFxTBsKv-1627223223975)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/32c315b3-f8ff-46d2-a66e-a87efd373903/Untitled.png)]](https://img-blog.csdnimg.cn/063deb548da0434ab9817f07c4dd2fd5.png)
数据初始化1,均匀分布
import torch
def showMsg(t, tname):
print("{}:\n{}".format(tname, t))
print("{}平均值:{}\n".format(tname, t.sum() / t.numel()))
a = torch.rand(3, 3)
showMsg(a, "rand")
a_like = torch.rand_like(a)
showMsg(a_like, "a_like")
a_int = torch.randint(1, 10, [3, 3])
showMsg(a_int, "a_int")
a_int_like = torch.randint_like(a_int, 1, 10)
showMsg(a_int_like, "a_int_like")
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9RzSTfY3-1627223223976)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/8dac0f82-861d-48d9-9fd3-cfcd3d7884f4/Untitled.png)]](https://img-blog.csdnimg.cn/5d383d9d68b048818d81c46503bd5fcf.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNDY0NTY5,size_16,color_FFFFFF,t_70)
数据初始化2,正态分布
import torch
def showMsg(t, tname):
print("{}:\n{}".format(tname, t))
mean = t.sum() / t.numel()
print("{}平均值:{}".format(tname, mean))
print("{}方差:{}\n".format(tname, ((t - mean) ** 2).sum() / t.numel() ))
showMsg(torch.randn(300,300), "标准正态分布")
'''
生成符合一定条件的正态分布矩阵
torch.normal(mean, standard_Deviation, shape)
mean: 均值
standard_Deviation: 标准差
shape: 生成矩阵的阶数
'''
a = torch.normal(1, 10 ,(300, 300))
showMsg(a, "正态分布")
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cuOJjzIx-1627223223977)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/e631db4e-1cf9-4c2f-aee9-3fd2db9c11ff/Untitled.png)]](https://img-blog.csdnimg.cn/9443925fc74f4c0a8e4d0f57f7f5173a.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNDY0NTY5,size_16,color_FFFFFF,t_70)
统一初始化
import torch
def showMsg(t, tname):
print("{}:\n{}\n".format(tname, t))
showMsg(torch.full([2, 3], 0), "full0")
showMsg(torch.full([3, 3], 1), "full1")
showMsg(torch.full([], 2), "full2")
showMsg(torch.full([1], 3), "full3")
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nqFox7bj-1627223223977)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/a5e29a12-d5ab-4358-bbb2-ed8f86749f7d/Untitled.png)]](https://img-blog.csdnimg.cn/754851b8791744b492787d4cd3e35c5a.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNDY0NTY5,size_16,color_FFFFFF,t_70)
创建序列1,按步长创建
import torch
def showMsg(t, tname):
print("{}:\n{}\n".format(tname, t))
showMsg(torch.arange(0, 10), "arange0-10")
showMsg(torch.arange(0, 10,2), "arange0-10,step=2")
showMsg(torch.range(0, 10), "range0-10")
showMsg(torch.range(0, 10, 2), "range0-10,step=2")
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8FbsdTZB-1627223223978)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/dc228da5-2cc7-406b-94a4-f7e168c1a59b/Untitled.png)]](https://img-blog.csdnimg.cn/8d4eac1fbf6c47d7a3bee6c02c22e0c8.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNDY0NTY5,size_16,color_FFFFFF,t_70)
- 注:torch.range在使用时会报警告UserWarning,不建议使用,尽量用arange。
创建序列2,按数量创建
import torch
def showMsg(t, tname):
print("{}:\n{}\n".format(tname, t))
showMsg(torch.linspace(0, 10), "linspace默认数量")
showMsg(torch.linspace(0, 10, steps=4), "linspace, steps=4")
showMsg(torch.logspace(0, 1), "logspace")
showMsg(torch.logspace(0, 1, base=2, steps=4), "logspace,base=2, steps=4")
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DedeaYWx-1627223223978)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/c3888cf9-9535-43ff-904b-a73c1861e56c/20210725220738.png)]](https://img-blog.csdnimg.cn/c404e365403c4ec5b833d6bfedf17f63.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNDY0NTY5,size_16,color_FFFFFF,t_70)
- 注意:使用时不指定数量会报警告UserWarnig,尽量指定生成数量steps。
创建全1矩阵、全0矩阵
import torch
def showMsg(t, tname):
print("{}:\n{}\n".format(tname, t))
a = torch.ones(3, 3)
showMsg(a, "全1矩阵")
showMsg(torch.ones_like(a), "全1矩阵_like")
showMsg(torch.zeros(3, 3), "全0矩阵")
showMsg(torch.zeros_like(a), "全0矩阵_like")
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cJ9ndvjI-1627223223979)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/125e0d73-5746-4d9a-801d-dd400d2cd75a/Untitled.png)]](https://img-blog.csdnimg.cn/d860e815c42b4320bb9bc549d4135fef.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNDY0NTY5,size_16,color_FFFFFF,t_70)
创建单位矩阵
import torch
def showMsg(t, tname):
print("{}:\n{}\n".format(tname, t))
showMsg(torch.eye(3,3), "单位矩阵1")
showMsg(torch.eye(3,4), "单位矩阵2")
showMsg(torch.eye(3), "单位矩阵3")
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1yT2gAWC-1627223223979)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/647269cb-fb28-4482-b8cb-6c293ffbdaed/Untitled.png)]](https://img-blog.csdnimg.cn/4f4efcbe35164eda9712cae1fbd9ebb1.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNDY0NTY5,size_16,color_FFFFFF,t_70)
随机打乱
import torch
def showMsg(t, tname):
print("{}:\n{}\n".format(tname, t))
showMsg(torch.randperm(10), "randperm")
math_scores = [
["张三", 90],
["李四", 85]
]
english_scores = [
["张三", 80],
["李四", 90]
]
idx = torch.randperm(2)
print("姓名\t数学\t英语")
for i in idx:
print("{}\t{}\t{}".format(math_scores[i][0], math_scores[i][1], english_scores[i][1]))
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-49RzJwGL-1627223223981)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b0aa5265-c14d-4198-aae9-babab68a873f/Untitled.png)]](https://img-blog.csdnimg.cn/a9e7c27d176b490eaa32e1ce1438d014.png)
|