Python 官方文档:入门教程 => 点击学习
在看fastai的代码时,看到这么一段: n=100 x = torch.ones(n,2) x[:,0].unifORM_(-1.,1) x[:5] a = tensor(3
n=100
x = torch.ones(n,2)
x[:,0].unifORM_(-1.,1)
x[:5]
a = tensor(3.,2)
y = x@a + torch.rand(n)
于是百度搜了一下,都是说@xxx是注解或者装饰器,明显不是这段代码的场景嘛!
于是又Google了一下,原来这个@是python 3.5之后加入的矩阵乘法运算符,终于明白了!
补充:python矩阵乘积运算(multiply/maumul/*/@)解析
在训练数据时经常涉及到矩阵运算,有段时间没有练习过了,手便生疏了。
今天重新测了一把,Python中各类矩阵运算举例如下,可以清楚的看到tf.matmul(A,C)=np.dot(A,C)= A@C都属于叉乘,而tf.multiply(A,C)= A*C=A∙C属于点乘。
import Tensorflow as tf
import numpy as np
a = np.array([[1,2],[3,4]])
b = np.array([5,6])
c = np.array([[5,6],[7,8]])
print('a:'+'\n',a)
print('b:'+'\n',b)
print('c:'+'\n',c)
#叉乘
d1=a@c
d2=tf.matmul(a,c)
d3=np.dot(a,c)
#点乘
f1=a*c
f2=tf.multiply(a,c)
with tf.compat.v1.Session() as sess:
print('d1:叉乘a@c' + '\n', d1)
print('d2:叉乘matmul(a,c)' + '\n', sess.run(d2))
print('d3:叉乘dot(a,c)' + '\n', d3)
print('f1:点乘a*c' + '\n', f1)
print('f2:点乘multiply(a,c)' + '\n', sess.run(f2))
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
--结束END--
本文标题: python 中的@运算符使用
本文链接: https://lsjlt.com/news/126841.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0