IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> pytorch学习04:Tensor的创建 -> 正文阅读

[人工智能]pytorch学习04:Tensor的创建

用 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)]

用 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)]

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)]

  • 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))
# 这里等价于 torch.tensor([1,2])
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)]

  • 在创建张量后,要记得初始化,不然可能会对之后运算造成严重影响。

设置默认类型

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)]

数据初始化1,均匀分布

import torch

def showMsg(t, tname):
    print("{}:\n{}".format(tname, t))
    print("{}平均值:{}\n".format(tname, t.sum() / t.numel()))

# rand函数会随机产生[0, 1)的均匀分布数值
a = torch.rand(3, 3)
showMsg(a, "rand")

# 根据输入的shape生成一个[0,1)均匀分布矩阵
a_like = torch.rand_like(a)
showMsg(a_like, "a_like")

# 输入最小值 min,最大值 max 和矩阵阶数 shape
# 生成符合均匀分布的范围为[min, max)的整形矩阵
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)]

数据初始化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() ))

# 生成N(0,1)的标准正态分布
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)]

统一初始化

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)]

创建序列1,按步长创建

import torch

def showMsg(t, tname):
    print("{}:\n{}\n".format(tname, t))

# 生成[0, 10)的等差数列,默认步长为1
showMsg(torch.arange(0, 10), "arange0-10")
showMsg(torch.arange(0, 10,2), "arange0-10,step=2")

# 生成[0, 10]的等差数列,默认步长为1
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)]

  • 注:torch.range在使用时会报警告UserWarning,不建议使用,尽量用arange。

创建序列2,按数量创建

import torch

def showMsg(t, tname):
    print("{}:\n{}\n".format(tname, t))

# 生成[0, 10]的等差数列,默认个数为100
showMsg(torch.linspace(0, 10), "linspace默认数量")
showMsg(torch.linspace(0, 10, steps=4), "linspace, steps=4")

# 生成[0, 10]的等差数列L1,然后以L1为幂进行运算,并返回运算结果
# 默认底为 10,生成数量为100
# 下面代码的结果等价于[10^0, 10^0.1010, ... , 10^1]
showMsg(torch.logspace(0, 1), "logspace")

# [2^0, 2^0.33, 2^0.66, 2^1]
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)]

  • 注意:使用时不指定数量会报警告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)]

创建单位矩阵

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)]

随机打乱

import torch

def showMsg(t, tname):
    print("{}:\n{}\n".format(tname, t))

# 生成[0, 10)的整数序列并打散
# 可用此来打散索引
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)]

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-26 12:05:46  更:2021-07-26 12:07:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/22 10:50:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码