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. Linux物理磁盘扩容流程

    1. 插入硬盘前,查看现有硬盘情况 (1)命令:fdisk -l 说明:fdisk -l 查看设备的所有分区 (2)命令:df -h 说明:df 列出文件系统的整体磁盘使用量 2. 断电插入硬盘后,重 ...

  2. 并发编程之J.U.C的第一篇

    并发编程之J.U.C AQS 原理 ReentrantLock 原理 1. 非公平锁实现原理 2)可重入原理 3. 可打断原理 5) 条件变量实现原理 3. 读写锁 3.1 ReentrantRead ...

  3. Android实战项目——家庭记账本(五)

    今天博客写的有点晚(好像算是昨天的了),有一点小bug刚刚改完.今天完成的任务有: 1.统计页的布局和功能 2.主页碎片的图表功能 实现效果如下:                      其中,统计 ...

  4. netty 4.x用户使用指南

    引言 问题 现在我们使用通用的应用程序或库来相互通信.例如,我们经常使用HTTP客户机从web服务器检索信息,并通过web服务调用远程过程调用.然而,通用协议或其实现有时不能很好地进行扩展.这就像我们 ...

  5. 剑指offer-面试题57_2-和为s的连续正数序列-穷举法

    /* 题目: 输入一个整数s,输出所有和为s的连续整数序列. */ /* 思路: 穷举法. */ #include<iostream> #include<cstring> #i ...

  6. 吴裕雄--天生自然HADOOP操作实验学习笔记:使用hive操作hbase

    实验目的 熟悉hive和hbase的操作 熟悉hadoop.hbase.hive.zookeeper的关系 熟练大数据环境的搭建 学会分析日志排除问题 实验原理 1.hive整合hbase原理 前面大 ...

  7. 轻量级RPC设计与实现第一版

    什么是RPC RPC (Remote Procedure Call Protocol), 远程过程调用,通俗的解释就是:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个对象,就像调用本地应 ...

  8. numpy包学习笔记

    导入 import numpy as np argsort() numpy中的排序函数 返回的是数组中从小到大的索引值 from numpy import * test=[5,2,3,4,1] pri ...

  9. mysql 获取当前时间加上一个月

    select DATE_ADD(NOW(), interval 1 MONTH) NOW()此处必须为时间格式 date_add() 增加 date_sub()减少 month 月份 minute 分 ...

  10. paramiko 基于密钥文件登陆

    首先密钥登陆远程的原理 client 端 将公钥放在远程机器authorized_keys: 使用 ssh-copy-id  app@ip 接着在client机器生成密钥 使用ssh-keygen - ...