美文网首页
Pytorch中torch.meshgrid()函数解析

Pytorch中torch.meshgrid()函数解析

作者: 逍遥_yjz | 来源:发表于2022-10-26 19:48 被阅读0次

    一. torch.meshgrid()函数解析

    1. 函数说明:

    1.1 官网torch.meshgrid(),函数定义及参数说明如下图所示:


    1.2 说明

    函数的功能是生成网格,可以用于生成坐标。

    1.3 函数输入

    输入两个一维tensor数据,且两个tensor数据类型相同

    1.4 函数输出

    输出两个tensor数据(两个tensor的行数为第一个输入张量的元素个数,列数为第二个输入张量的元素个数)

    1.5 注意(参数indexing='‘ij’'时):

    1. 当两个输入tensor数据类型不同或维度不是一维时会报错。
    2. 其中第一个输出张量填充第一个输入张量中的元素,各行元素相同;第二个输出张量填充第二个输入张量中的元素,各列元素相同。

    1.6 输出结果简单记法:

    输入两个一维张量的元素个数为n1,n2,则输出两个张量是二维的,且行和列个数均为n1,n2,输出第一个张量行相同(对应第一个输入张量),输出第二个张量列相同(对应第二个输入张量)

    2. 代码举例

    x = torch.tensor([1, 2, 3])
    y = torch.tensor([4, 5])
    grid_x, grid_y = torch.meshgrid(x, y, indexing='ij')
    print(x)
    print(y)
    print(grid_x)
    print(grid_y)
    
    
    结果如下:
    tensor([1, 2, 3])
    tensor([4, 5])
    tensor([[1, 1],
            [2, 2],
            [3, 3]])
    tensor([[4, 5],
            [4, 5],
            [4, 5]])
    
    

    注意:参数indexing是可选的,可选值为’‘xy’‘或’‘ij’‘,默认为’‘ij’'。

    1. 如果选择“ij”,则输出两个tensor维度的行列个数与输入的两个tensor的元素个数分别对应相同,如上面例子所示。
    2. 如果选择’‘xy’',则输出两个tensor的第一个维度对应于第二个输入的元素个数,第二个维度对应于第一个输入的元素个数。其中第一个输出张量填充第一个输入张量中的元素,各列元素相同;第二个输出张量填充第二个输入张量中的元素,各行元素相同,与indexing='‘ij’'输出结果情况相反,如下面例子所示。
    x = torch.tensor([1, 2, 3])
    y = torch.tensor([4, 5])
    grid_x, grid_y = torch.meshgrid(x, y, indexing='xy')
    print(x)
    print(y)
    print(grid_x)
    print(grid_y)
    
    
    结果如下所示:
    tensor([1, 2, 3])
    tensor([4, 5])
    tensor([[1, 2, 3],
            [1, 2, 3]])
    tensor([[4, 4, 4],
            [5, 5, 5]])
    
    

    参考知识文章

    相关文章

      网友评论

          本文标题:Pytorch中torch.meshgrid()函数解析

          本文链接:https://www.haomeiwen.com/subject/kiczzrtx.html