1.tf.multiply()函数:矩阵对应元素相乘

官网定义:

multiply(x,y,name=None)

参数:

x: 一个类型为:half, float32, float64, uint8, int8, uint16, int16, int32, int64, complex64, complex128的张量。

y: 一个类型跟张量x相同的张量。

注意:

  (1)该函数实现的是元素级别的相乘,也就是两个相乘的数元素各自相乘,而不是矩阵乘法

  (2)两个相乘的数必须是相同的类型,否则会报错。

举例说明:

 import tensorflow as tf

 # 1.数和矩阵相乘
x = tf.constant([[1,2,3],[2,3,4],[3,4,5]])
y1 = tf.constant(2)
xy1 = tf.multiply(x,y1) # 2.两个矩阵对应元素相乘
x = tf.constant([[1,2,3],[2,3,4],[3,4,5]])
y2 = tf.constant([[1,1,1],[2,2,2],[3,3,3]])
xy2 = tf.multiply(x,y2) # 3.元素类型不一样,报错
# x = tf.constant([[1,2,3],[2,3,4],[3,4,5]])
# y3 = tf.constant([[1.0,1.0,1.0],[2.0,2.0,2.0],[3.0,3.0,3.0]])
# xy3 = tf.multiply(x,y3) with tf.Session() as sess:
sess.run(tf.global_variables_initializer()) print('xy1 =\n',sess.run(xy1))
print('xy2 =\n',sess.run(xy2))
# print('xy3 =\n',sess.run(xy3))

运行结果:

xy1 =
[[ 2 4 6]
[ 4 6 8]
[ 6 8 10]]
xy2 =
[[ 1 2 3]
[ 4 6 8]
[ 9 12 15]]

2.tf.matmul()函数:矩阵乘法

官网定义:

matmul(a,
b,
transpose_a=False,
transpose_b=False,
adjoint_a=False,
adjoint_b=False,
a_is_sparse=False,
b_is_sparse=False,
name=None)

参数:

a: 一个类型为 float16, float32, float64, int32, complex64, complex128 且张量秩 > 1 的张量。 
b: 一个类型跟张量a相同的张量。 
transpose_a: 如果为真, a则在进行乘法计算前进行转置。 
transpose_b: 如果为真, b则在进行乘法计算前进行转置。 
adjoint_a: 如果为真, a则在进行乘法计算前进行共轭和转置。 
adjoint_b: 如果为真, b则在进行乘法计算前进行共轭和转置。 
a_is_sparse: 如果为真, a会被处理为稀疏矩阵。 
b_is_sparse: 如果为真, b会被处理为稀疏矩阵。

返回值: 一个跟张量a和张量b类型一样的张量且最内部矩阵是a和b中的相应矩阵的乘积。

举例说明:

 import tensorflow as tf

 x = tf.constant([[1,2,3],
[2,3,4],
[3,4,5]])
y = tf.constant([[1,2,3],
[1,2,3],
[1,2,3]])
xy = tf.matmul(x,y) with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print('xy1 =\n',sess.run(xy))

运行结果:

xy =
[[ 6 12 18]
[ 9 18 27]
[12 24 36]]

3.multiply()和matmul()对比

举例说明:

 import tensorflow as tf

 x = tf.constant([[1,2,3],
[2,3,4],
[3,4,5]])
y1 = tf.constant([[1,2,3],
[1,2,3],
[1,2,3]])
y2 = tf.constant([[1,2,3],
[1,2,3],
[1,2,3]])
z1 = tf.multiply(x,y1) # 对应元素相乘
z2 = tf.matmul(x,y2) # 矩阵相乘 with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print('z1 =\n',sess.run(z1))
print('z2 =\n',sess.run(z2))

运行结果:

z1 =
[[ 1 4 9]
[ 2 6 12]
[ 3 8 15]]
z2 =
[[ 6 12 18]
[ 9 18 27]
[12 24 36]]

Tensorflow中multiply()函数与matmul()函数的用法区别的更多相关文章

  1. SQL语句中order_by_、group_by_、having的用法区别

    order by 从英文里理解就是行的排序方式,默认的为升序. order by 后面必须列出排序的字段名,可以是多个字段名. group by 从英文里理解就是分组.必须有“聚合函数”来配合才能使用 ...

  2. Tensorflow中保存模型时生成的各种文件区别和作用

    假如我们得到了如下的checkpoints, 上面的文件主要可以分成三类:一种是在保存模型时生成的文件,一种是我们在使用tensorboard时生成的文件,还有一种就是plugins这个文件夹,这个是 ...

  3. php中var_dump、var_export和print_r的用法区别

    void var_dump ( mixed $expression [, mixed $... ] )此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值.数组将递归展开值,通过缩进显示其结 ...

  4. models中字段参数blank和null的用法区别

    blank当blank=True时,说明此处的数据可以不填,默认情况下为False,也就意味着默认情况下,所输入的数据不得空,blank是和页面表单有关,在页面需要输入参数的时候,如果在models里 ...

  5. Tensorflow中的run()函数

    1 run()函数存在的意义 run()函数可以让代码变得更加简洁,在搭建神经网络(一)中,经历了数据集准备.前向传播过程设计.损失函数及反向传播过程设计等三个过程,形成计算网络,再通过会话tf.Se ...

  6. TensorFlow中的通信机制——Rendezvous(一)本地传输

    背景 [作者:DeepLearningStack,阿里巴巴算法工程师,开源TensorFlow Contributor] 在TensorFlow源码中我们经常能看到一个奇怪的词——Rendezvous ...

  7. 第二十二节,TensorFlow中RNN实现一些其它知识补充

    一 初始化RNN 上一节中介绍了 通过cell类构建RNN的函数,其中有一个参数initial_state,即cell初始状态参数,TensorFlow中封装了对其初始化的方法. 1.初始化为0 对于 ...

  8. (原)tensorflow中函数执行完毕,显存不自动释放

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/7608916.html 参考网址: https://stackoverflow.com/question ...

  9. PyTorch 中 torch.matmul() 函数的文档详解

    官方文档 torch.matmul() 函数几乎可以用于所有矩阵/向量相乘的情况,其乘法规则视参与乘法的两个张量的维度而定. 关于 PyTorch 中的其他乘法函数可以看这篇博文,有助于下面各种乘法的 ...

随机推荐

  1. 有关css编写文字动态下划线

    <div class="main_text">哈哈这就是我的小视频</div> 上面为html代码 接下来进行css的编写 .main_text{ posi ...

  2. 数据库 left()、length()函数

    数据库 left().length()函数 1.Mysql的length()函数: length()函数主要用于计算字符串的长度,用法也很简单:length(要计算的字符串) 就可以计算出字符串的长度 ...

  3. [51nod 1256] 乘法逆元 - exgcd

    给出2个数M和N(M < N),且M与N互质,找出一个数K满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最小的. Solution 用 EXGCD 求 ...

  4. 小白的java学习之路 “ 选择结构(一)”

    if选择结构: if选择结构是根据条件判断之后再做处理的一种语法结构. 1.if选择结构的语法: public class Demo{ public static void main(String[] ...

  5. pycharm导入python包

    总步骤:file --> settings --> poject interpreter --> 点击加号 --> 搜索需要导入的python包 --> 选中需要导入的p ...

  6. 【spring boot】SpringBoot初学(2.1) - properties读取明细

    前言 算是对<SpringBoot初学(2) - properties配置和读取>的总结吧. 概念性总结 一.Spring Boot允许外化(externalize)你的配置.可以使用pr ...

  7. 输出《Harry Potter and the Sorcerer's Stone》文本中的前N个最长用的英文单词及其数量

    输出<Harry Potter and the Sorcerer's Stone>文本中的前N个最长用的英文单词及其数量 实验思路: 1. 利用输入流将文件当中内容读入. 2. 将文件内容 ...

  8. npm常用模块汇总

    npm常用模块汇总: 点击插件名字,查看使用文档 npm常用模块汇总 node常用模块汇总 gulp常用插件汇总 npx 使用教程:npx使用教程 bable:bable这是JavaScript编译器 ...

  9. vue项目中使用element ui上传图片到七牛

    1.获取token值 后台有接口调用直接返回token值 //请求后台拿七牛云token async getQiniuToken() { //token let uploadtoken = await ...

  10. luogu P1736 创意吃鱼法

    #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #i ...