tensor的加减乘和矩阵乘法
如下是tensor乘法与加减法,对应位相乘或相加减,可以一对多
import torch
def add_and_mul():
x = torch.Tensor([[[1, 2, 3],
[4, 5, 6]], [[7, 8, 9],
[10, 11, 12]]])
y = torch.Tensor([1, 2, 3])
y = y - x
print(y)
'''
tensor([[[ 0., 0., 0.],
[-3., -3., -3.]], [[-6., -6., -6.],
[-9., -9., -9.]]])
'''
t = 1. - x.sum(dim=1)
print(t)
'''
tensor([[ -4., -6., -8.],
[-16., -18., -20.]])
'''
y = torch.Tensor([[1, 2, 3],
[4, 5, 6]])
y = torch.mul(y,x) #等价于此方法 y*x
print(y)
'''
tensor([[[ 1., 4., 9.],
[16., 25., 36.]], [[ 7., 16., 27.],
[40., 55., 72.]]])
'''
z = x ** 2
print(z)
"""
tensor([[[ 1., 4., 9.],
[ 16., 25., 36.]], [[ 49., 64., 81.],
[100., 121., 144.]]])
""" if __name__=='__main__':
add_and_mul()
矩阵的乘法,matmul和bmm的具体代码
import torch def matmul_and_bmm():
# a=(2*3*4)
a = torch.Tensor([[[1, 2, 3, 4],
[4, 0, 6, 0],
[3, 2, 1, 4]],
[[3, 2, 1, 0],
[0, 3, 2, 2],
[1, 2, 1, 0]]])
# b=(2,2,4)
b = torch.Tensor([[[1, 2, 3, 4],
[4, 0, 6, 0]],
[[3, 2, 1, 0],
[1, 2, 1, 0]]]) b=b.transpose(1, 2)
# res=(2,3,2),对于a*b,是第一维度不变,而后[3,4] x [4,2]=[3,2]
#res[0,:]=a[0,:] x b[0,;]; res[1,:]=a[1,:] x b[1,;] 其中x表示矩阵乘法
res = torch.matmul(a, b) # 维度res=[2,3,2]
res2 = torch.bmm(a, b) # 维度res2=[2,3,2]
print(res) # res2的值等于res
"""
tensor([[[30., 22.],
[22., 52.],
[26., 18.]], [[14., 8.],
[ 8., 8.],
[ 8., 6.]]])
""" if __name__=='__main__':
matmul_and_bmm()
tensor的加减乘和矩阵乘法的更多相关文章
- 线性代数-矩阵-【3】矩阵加减 C和C++实现
点击这里可以跳转至 [1]矩阵汇总:http://www.cnblogs.com/HongYi-Liang/p/7287369.html [2]矩阵生成:http://www.cnblogs.com/ ...
- JS生成数字加减乘法验证码
给大家分享一个简单的js验证码生成代码 PS:该代码依赖Jquery1.4版本以上 传入元素 如productionVerificationCode(#\(("a")) 反回验证码 ...
- TensorFlow2.0矩阵与向量的加减乘
1.矩阵加法使用 a = np.random.random((3,3))b = np.random.randint(0,9,(3,3)) ad = tf.add(a,b) 2.矩阵乘法注意 # ten ...
- 矩阵乘法&&矩阵快速幂&&最基本的矩阵模型——斐波那契数列
矩阵,一个神奇又令人崩溃的东西,常常用来优化序列递推 在百度百科中,矩阵的定义: 在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合 ,最早来自于方程组的系数及常数所构成的方阵.这一 ...
- 洛谷 P4910 帕秋莉的手环 矩阵乘法+快速幂详解
矩阵快速幂解法: 这是一个类似斐波那契数列的矩乘快速幂,所以推荐大家先做一下下列题目:(会了,差不多就是多倍经验题了) 注:如果你不会矩阵乘法,可以了解一下P3390的题解 P1939 [模板]矩阵加 ...
- JavaScript 加减危机——为什么会出现这样的结果?
在日常工作计算中,我们如履薄冰,但是 JavaScript 总能给我们这样那样的 surprise~ 0.1 + 0.2 = ? 1 - 0.9 = ? 如果小伙伴给出内心的结果: 0.1 + 0.2 ...
- BZOJ 5082: 弗拉格 矩阵乘法
如果单点而不是求 sigma 的话还是比较好办的. 遇到这种前缀和相减的矩阵乘法可以增设一个 0 使得后面的能先加到前面,然后再算. 这样的话可以使的最后算出的是前缀和相加的形式. code: #in ...
- CPU的自动调度矩阵乘法
CPU的自动调度矩阵乘法 这是一个有关如何对CPU使用自动调度程序的文档. 与依靠手动模板定义搜索空间的基于模板的autotvm不同,自动调度程序不需要任何模板.用户只需要编写计算声明,而无需任何调度 ...
- 算法竞赛进阶指南0x34矩阵乘法
文章目录 矩阵的相关性质再回顾 矩阵加速大法: ACWing205. 斐波那契 代码 ACWing206. 石头游戏 解题思路: 感受: 代码 矩阵的相关性质再回顾 对于一个矩阵 满足结合律 满足乘法 ...
随机推荐
- 谈一谈AOP面向切面编程
AOP是什么 : AOP面向切面编程他是一种编程思想,是指在程序运行期间,将某段代码动态的切入到指定方法的指定位置,将这种编程方式称为面向切面编程 AOP使用场景 : 日志 事务 使用AOP的好处是: ...
- 介绍一款自己实现的rabbit轻量级组件和使用方法
DotNetCore.RabbitMQ.Extensions介绍 这是一个 基于.NETStandard 2.0的Rabbit轻量级框架,可以让开发人员无需关注底层变动,专注编写业务代码,从而达到便捷 ...
- 【Redis】349- Redis 入门指南
点击上方"前端自习课"关注,学习起来~ 1. 概述 1.1. Redis 简介 Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映 ...
- JS基础-事件循环机制
从一道题浅说 JavaScript 的事件循环 原文链接: https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/7 ...
- 人生苦短,我用Python(1)
1.Python保留字与标识符 保留字是Python语言中一些已经被赋予特定意义的单词,开发程序时,不可以把这些保留字作为变量.函数.类.模块和其他对象的名称来使用. and as assert br ...
- AES-加密解密工具类
注意:AES加密算法对于不同系统之间的tokens可能会不同,需要在相同的系统间使用 如果设置为private,在其它类调用AES访问不了这个tokens常量,需要自主定义一个tokens或者在配置文 ...
- netty用法总结
/**decoder和encoder,如果不需要解析,就使用系统的 * ch.pipeline().addLast(new StringDecoder()); * ch.pipeline().addL ...
- mybatis初级映射
一 前言 系统学习知识请认准知识追寻者(同公众号),错过作者,你有可能要走好多弯路 经过第一篇的入门文章,小白们都对mybatis的搭建流程应该都很熟悉,这篇文章主讲的是如何使用mybatis实现数据 ...
- C#程序编写高质量代码改善的157个建议【16-19】[动态数组、循环遍历、对象集合初始化]
前言 软件开发过程中,不可避免会用到集合,C#中的集合表现为数组和若干集合类.不管是数组还是集合类,它们都有各自的优缺点.如何使用好集合是我们在开发过程中必须掌握的技巧.不要小看这些技巧,一旦在开 ...
- 一个proc预编译代码时coredump的问题分析
最近有同事在搞编译环境迁移,碰上一个问题让我帮他看一下. 他建了一个新目录,然后把现在的代码拷过去,编译的时候发现有一个文件编译不了一执行就出现core,不知道啥情况. 我进到他的编译环境 ...