PyTorch 对应点相乘、矩阵相乘实例

一,对应点相乘,x.mul(y) ,即点乘操作,点乘不求和操作,又可以叫作Hadamard product;点乘再求和,即为卷积

data = [[1,2], [3,4], [5, 6]]
tensor = torch.FloatTensor(data)

tensor
Out[27]:
tensor([[ 1., 2.],
    [ 3., 4.],
    [ 5., 6.]])

tensor.mul(tensor)
Out[28]:
tensor([[ 1.,  4.],
    [ 9., 16.],
    [ 25., 36.]])

二,矩阵相乘,x.mm(y) , 矩阵大小需满足: (i, n)x(n, j)

tensor
Out[31]:
tensor([[ 1., 2.],
    [ 3., 4.],
    [ 5., 6.]])

tensor.mm(tensor.t()) # t()是转置
Out[30]:
tensor([[ 5., 11., 17.],
    [ 11., 25., 39.],
    [ 17., 39., 61.]])

以上这篇(标题)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python中数组和矩阵乘法及使用总结(推荐)

    Matrix是Array的一个小的分支,包含于Array.所以matrix 拥有array的所有特性. 但在数组乘和矩阵乘时,两者各有不同,如果a和b是两个matrices,那么a*b,就是矩阵积 如果a,b是数组的话,则a*b是数组的运算 1.对数组的操作 >>> import numpy as np >>> a=np.array([[1,2,3],[4,5,6],[7,8,9]]) >>> a array([[1, 2, 3], [4, 5, 6]

  • Python中的几种矩阵乘法(小结)

    一.  np.dot() 1.同线性代数中矩阵乘法的定义.np.dot(A, B)表示: 对二维矩阵,计算真正意义上的矩阵乘积. 对于一维矩阵,计算两者的内积. 2.代码 [code] import numpy as np # 2-D array: 2 x 3 two_dim_matrix_one = np.array([[1, 2, 3], [4, 5, 6]]) # 2-D array: 3 x 2 two_dim_matrix_two = np.array([[1, 2], [3, 4],

  • C/C++如何实现两矩阵相乘之模拟法

    目录 数学中两矩阵怎么相乘? C/C++语言实现 总结 数学中两矩阵怎么相乘? 矩阵相乘需要前面矩阵的列数与后面矩阵的行数相同方可相乘. 将前面矩阵的第i行各元素分别与后面矩阵的第j列相应位置元素相乘相加作为结果矩阵的第i行第j列. eg: 上图前面矩阵的列数是3,后面矩阵的行数是3,所以他俩的某一行和某一列才能一一对应,进而才能进行矩阵相乘运算; C/C++语言实现 假设和上图一样的矩阵a*矩阵b 在草稿纸上模拟矩阵相乘的过程中,我们会发现,第一个矩阵a 分别用自己的第i行与 第二个矩阵b的第

  • PyTorch 对应点相乘、矩阵相乘实例

    一,对应点相乘,x.mul(y) ,即点乘操作,点乘不求和操作,又可以叫作Hadamard product:点乘再求和,即为卷积 data = [[1,2], [3,4], [5, 6]] tensor = torch.FloatTensor(data) tensor Out[27]: tensor([[ 1., 2.], [ 3., 4.], [ 5., 6.]]) tensor.mul(tensor) Out[28]: tensor([[ 1., 4.], [ 9., 16.], [ 25.

  • Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)

    Tensorflow二维.三维.四维矩阵运算(矩阵相乘,点乘,行/列累加) 1. 矩阵相乘 根据矩阵相乘的匹配原则,左乘矩阵的列数要等于右乘矩阵的行数. 在多维(三维.四维)矩阵的相乘中,需要最后两维满足匹配原则. 可以将多维矩阵理解成:(矩阵排列,矩阵),即后两维为矩阵,前面的维度为矩阵的排列. 比如对于(2,2,4)来说,视为2个(2,4)矩阵. 对于(2,2,2,4)来说,视为2*2个(2,4)矩阵. import tensorflow as tf a_2d = tf.constant([

  • Python实现的矩阵转置与矩阵相乘运算示例

    本文实例讲述了Python实现的矩阵转置与矩阵相乘运算.分享给大家供大家参考,具体如下: 矩阵转置 方法一 :使用常规的思路 def transpose(M): # 初始化转置后的矩阵 result = [] # 获取转置前的行和列 row, col = shape(M) # 先对列进行循环 for i in range(col): # 外层循环的容器 item = [] # 在列循环的内部进行行的循环 for index in range(row): item.append(M[index][

  • C语言实现两个矩阵相乘

    本文实例为大家分享了C语言实现两个矩阵相乘的具体代码,供大家参考,具体内容如下 程序功能:实现两个矩阵相乘的C语言程序,并将其输出 代码如下: #include "stdafx.h" #include "windows.h" void Multi(int * left, int * right, int * result, int f1, int f2, int s1, int s2); int main() { int i, j; int a[4][3] = {

  • pytorch单维筛选 相乘的案例

    m需要和筛选的结果维度相同 >0.5运行的结果与原来维度相同,结果是 0 1,0代不符合,1代表符合. import torch m=torch.Tensor([0.1,0.2,0.3]).cuda() iou=torch.Tensor([0.5,0.6,0.7]) x= m * ((iou > 0.5).type(torch.cuda.FloatTensor)) print(x) 下面是把第一条与第二条变成了2: import torch m=torch.Tensor([0.1,0.2,0.

  • Python实现矩阵相乘的三种方法小结

    问题描述 分别实现矩阵相乘的3种算法,比较三种算法在矩阵大小分别为22∗2222∗22, 23∗2323∗23, 24∗2424∗24, 25∗2525∗25, 26∗2626∗26, 27∗2727∗27, 28∗2828∗28, 29∗2929∗29时的运行时间与MATLAB自带的矩阵相乘的运行时间,绘制时间对比图. 解题方法 本文采用了以下方法进行求值:矩阵计算法.定义法.分治法和Strassen方法.这里我们使用Matlab以及Python对这个问题进行处理,比较两种语言在一样的条件下,

  • R语言 实现矩阵相乘100次

    [D1 D2]2*1 [T1 T2]1*2 要求D1和D2随机的变动, 矩阵相乘100次 rm(list=ls()) gc() options(scipen = 2000) ##################写成函数###########3 #################定义TT矩阵(1*2) TT <- matrix(c(1,3),1,2) DD<- matrix(c(1,2),2,1) result1 <- DD %*% TT m1=result1 ##############

  • C++实现对象化的矩阵相乘小程序

    复习数学1的线性代数,矩阵相乘这块有点晕,想编个C++对象化的矩阵相乘小程序. 相乘部分 void sum(juzhen a, juzhen b, juzhen &c) { int s=0; for (int i = 1; i <= a.m1(); i++)//A矩阵的M for (int j = 1; j <= b.n1(); j++)//B矩阵的S { for (k0 = 1; k0 <= a.n1(); k0++)//a.n1也就是b.m1(a的n,b的n)[行向量*列向量

  • PyTorch中torch.nn.Linear实例详解

    目录 前言 1. nn.Linear的原理: 2. nn.Linear的使用: 3. nn.Linear的源码定义: 补充:许多细节需要声明 总结 前言 在学习transformer时,遇到过非常频繁的nn.Linear()函数,这里对nn.Linear进行一个详解.参考:https://pytorch.org/docs/stable/_modules/torch/nn/modules/linear.html 1. nn.Linear的原理: 从名称就可以看出来,nn.Linear表示的是线性变

随机推荐