加入收藏 | 设为首页 | 会员中心 | 我要投稿 桂林站长网 (https://www.0773zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

python@运算符是什么意思?如何使用?

发布时间:2022-01-20 16:20:01 所属栏目:语言 来源:互联网
导读:python@运算符是什么意思?怎样使用?对于刚接触Python的朋友,可能对@运算符不是很了解,因此这篇文章就给大家介绍一下python@运算符的内容,感兴趣的朋友就继续往下看吧。 在看fastai的代码时,看到这么一段: n=100 x = torch.ones(n,2) x[:,0].uniform_(
      python@运算符是什么意思?怎样使用?对于刚接触Python的朋友,可能对@运算符不是很了解,因此这篇文章就给大家介绍一下python@运算符的内容,感兴趣的朋友就继续往下看吧。
   
      在看fastai的代码时,看到这么一段:
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属于点乘。
 
 
 
    Python测试编码如下:
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))

(编辑:桂林站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读