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模块应用(一) -> 正文阅读

[人工智能]pytorch模块应用(一)

记录一下我遇到过的pytorch中的一些函数、模块的应用

TORCH.DIAG

官方文档

torch.diag(input, diagonal=0, *, out=None) → Tensor

参数

  • input:一个Tensor
  • digonal:对角线,控制考虑哪个对角线
    • = 0 主对角线
    • >0 主对角线上方的对角线内容,根据数值而定
    • <0 主对角线下方的对角线内容,根据数值而定

输出

一个Tensor:

  • 如果input是一个1-D的Tensor,返回的是对角线为1-D中数值的2-D矩阵,根据digonal的不同,矩阵的大小也不同。
  • 如果input是一个2-D的矩阵,返回的是其对角线的内容,结果为1-D的Tensor,根据digonal的不同,值也不同。

Example

输入:

	a = torch.Tensor([2,3,4,5])
	print('diagonal = 0')
	print(torch.diag(a))
	print('diagonal > 0')
    print(torch.diag(a,diagonal=1))
    print('diagonal < 0')
    print(torch.diag(a,diagonal=-2))

输出:

diagonal = 0
tensor([[2., 0., 0., 0.],
        [0., 3., 0., 0.],
        [0., 0., 4., 0.],
        [0., 0., 0., 5.]])
diagonal > 0
tensor([[0., 2., 0., 0., 0.],
        [0., 0., 3., 0., 0.],
        [0., 0., 0., 4., 0.],
        [0., 0., 0., 0., 5.],
        [0., 0., 0., 0., 0.]])
diagonal < 0
tensor([[0., 0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0., 0.],
        [2., 0., 0., 0., 0., 0.],
        [0., 3., 0., 0., 0., 0.],
        [0., 0., 4., 0., 0., 0.],
        [0., 0., 0., 5., 0., 0.]])

三个矩阵因为diagonal大小的不同,矩阵大小也不同。
输入:

a = torch.randn([5,5])
print('diagonal = 0 tensor.shape:{}'.format(list(torch.diag(a).shape)))
print(torch.diag(a))
print('diagonal > 0 tensor.shape:{}'.format(list(torch.diag(a,diagonal=1).shape)))
print(torch.diag(a, diagonal=1))
print('diagonal < 0 tensor.shape:{}'.format(list(torch.diag(a,diagonal=-2).shape)))
print(torch.diag(a, diagonal=-2))

输出 a矩阵

tensor([[ 2.1557,  0.9077,  1.3092,  0.0655, -0.8971],
        [ 0.4594, -0.4521, -0.6643, -0.1641,  1.1304],
        [ 0.3329, -1.6805,  0.7765,  0.7213,  0.2009],
        [ 1.7566, -0.1645,  1.2627,  1.0202, -0.0217],
        [ 2.0029, -0.7275,  1.2391,  1.6995, -1.3719]])

输出:

diagonal = 0 tensor.shape:[5]
tensor([ 2.1557, -0.4521,  0.7765,  1.0202, -1.3719])
diagonal > 0 tensor.shape:[4]
tensor([ 0.9077, -0.6643,  0.7213, -0.0217])
diagonal < 0 tensor.shape:[3]
tensor([ 0.3329, -0.1645,  1.2391])

TORCH.UNSQUEEZE

能够添加Tensor维度的一个函数?

torch.unsqueeze(input, dim) → Tensor

参数

  • input:一个Tensor,任意维度
  • dim:要扩展维度的位置,范围:[-input.dim() - 1, input.dim() + 1) ,-1是指最后一维

输出

一个Tensor,维度经过扩展,dim要比input大1

Example

输入:

    a = torch.randn([5,5]) # 一共25个数
    print(a.dim())
    print(torch.unsqueeze(a,0).shape)
    print(torch.unsqueeze(a,1).shape)
    print(torch.unsqueeze(a,2).shape)
    print(torch.unsqueeze(a,-3).shape)

输出:

2
torch.Size([1, 5, 5])
torch.Size([5, 1, 5])
torch.Size([5, 5, 1])
torch.Size([1, 5, 5])

TORCH.TENSOR.REPEAT

Tensor.repeat(*sizes) → Tensor
沿着指定的维重复这个张量。

参数

  • sizes:torch.Size or int,重复的次数

Example

输入

x = torch.tensor([1, 2, 3])
x.repeat(4, 2)
x.repeat(4, 2, 1).size()

输出

tensor([1, 2, 3])
tensor([[1, 2, 3, 1, 2, 3],
        [1, 2, 3, 1, 2, 3],
        [1, 2, 3, 1, 2, 3],
        [1, 2, 3, 1, 2, 3]])
torch.Size([4, 2, 3])

TORCH.TENSOR.CONTIGUOUS*

Tensor.contiguous(memory_format=torch.contiguous_format) → Tensor
在内存张量中返回包含与自张量相同的数据的连续张量,开辟新内存,contiguous()方法改变了多维数组在内存中的存储顺序,以便配合view方法使用。。如果自张量已经处于指定的内存格式,则此功能返回自张量。

参数

  • memory_format: 所期望的张量的存储格式

输出

  • 指定存储格式的张量

TORCH.BMM

torch.bmm(input, mat2, *, out=None) → Tensor
除去第一维(batch_size),进行的矩阵乘法运算
If input is a (b×n×m) tensor, mat2 is a (b×m×p) tensor, out will be a (b×n×p) tensor.

参数

  • input:参与运算的矩阵1 必须是3-D
  • mat2:参与运算的矩阵2 必须是3-D

输出

经过矩阵运算后的Tensor,3-D

Example

输入:

x = torch.randn([5,3,4])
y = torch.randn([5,4,2])
print(torch.bmm(x,y).shape)

输出:

torch.Size([5, 3, 2])
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-27 11:19:34  更:2022-04-27 11:21:56 
 
开发: 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年11日历 -2024/11/26 8:27:33-

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