• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    python 中的@运算符使用
    POST TIME:2021-10-18 13:46

    在看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))
    

    测试结果如下:

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • 基于Python3中运算符 **和*的区别说明
    • Python的运算符重载详解
    • Python函数参数中的*与**运算符
    • Python运算符+与+=的方法实例
    • python入门教程之基本算术运算符
    上一篇:Python 实现定积分与二重定积分的操作
    下一篇:pandas中DataFrame检测重复值的实现
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信