numpy和tensorflow中的各种乘法(点乘和矩阵乘)

点乘和矩阵乘的区别:

1)点乘(即“ * ”) ---- 各个矩阵对应元素做乘法

若 w 为 m*1 的矩阵,x 为 m*n 的矩阵,那么通过点乘结果就会得到一个 m*n 的矩阵。

若 w 为 m*n 的矩阵,x 为 m*n 的矩阵,那么通过点乘结果就会得到一个 m*n 的矩阵。

w的列数只能为 1 或 与x的列数相等(即n),w的行数与x的行数相等 才能进行乘法运算。

2)矩阵乘 ---- 按照矩阵乘法规则做运算

若 w 为 m*p 的矩阵,x 为 p*n 的矩阵,那么通过矩阵相乘结果就会得到一个 m*n 的矩阵。

只有 w 的列数 == x的行数 时,才能进行乘法运算

1. numpy

1)点乘

 import numpy as np

 w = np.array([[0.4], [1.2]])
 x = np.array([range(1,6), range(5,10)])

 print w
 print x
 print w*x

运行结果如下图:

2)矩阵乘

import numpy as np

w = np.array([[0.4, 1.2]])
x = np.array([range(1,6), range(5,10)])

print w
print x
print np.dot(w,x)

运行结果如下:

2. tensorflow

1)点乘

import tensorflow as tf

w = tf.Variable([[0.4], [1.2]], dtype=tf.float32) # w.shape: [2, 1]
x = tf.Variable([range(1,6), range(5,10)], dtype=tf.float32) # x.shape: [2, 5]
y = w * x   # 等同于 y = tf.multiply(w, x)  y.shape: [2, 5]

sess = tf.Session()
init = tf.global_variables_initializer()
sess.run(init)

print sess.run(w)
print sess.run(x)
print sess.run(y)

运行结果如下:

2)矩阵乘

# coding:utf-8
import tensorflow as tf

w = tf.Variable([[0.4, 1.2]], dtype=tf.float32) # w.shape: [1, 2]
x = tf.Variable([range(1,6), range(5,10)], dtype=tf.float32) # x.shape: [2, 5]
y = tf.matmul(w, x) # y.shape: [1, 5]

sess = tf.Session()
init = tf.global_variables_initializer()
sess.run(init)

print sess.run(w)
print sess.run(x)
print sess.run(y)

运行结果如下:

到此这篇关于numpy和tensorflow中的各种乘法(点乘和矩阵乘)的文章就介绍到这了,更多相关numpy和tensorflow 乘法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 细说NumPy数组的四种乘法的使用

    当孔乙己说回字有四样写法的时候,相信各位都是这样的表情吧? 但是,如果孔乙己说NumPy数组有四种乘法的时候,各位大约就是这样的表情了吧? 实际上,NumPy数组乘法远不止四种.为了在写作和阅读时保持清晰的逻辑和清醒的头脑,本文仅对四种最常见的数组乘法给出详细说明,并用一道数学题来演示向量点乘和叉乘的用法. 1. 星乘(*) 先声明一下:星乘这个说法,是我自己创造的,因为我实在不知道数组的这种乘法有没有其他高大上的名字,只好用运算符来表示了.所谓数组星乘,就是数组的对应元素相乘,这也是初学Num

  • NumPy 矩阵乘法的实现示例

    NumPy 支持的几类矩阵乘法也很重要. 元素级乘法 你已看过了一些元素级乘法.你可以使用 multiply 函数或 * 运算符来实现.回顾一下,它看起来是这样的: m = np.array([[1,2,3],[4,5,6]]) m # 显示以下结果: # array([[1, 2, 3], # [4, 5, 6]]) n = m * 0.25 n # 显示以下结果: # array([[ 0.25, 0.5 , 0.75], # [ 1. , 1.25, 1.5 ]]) m * n # 显示以

  • 对numpy 数组和矩阵的乘法的进一步理解

    1.当为array的时候,默认d*f就是对应元素的乘积,multiply也是对应元素的乘积,dot(d,f)会转化为矩阵的乘积, dot点乘意味着相加,而multiply只是对应元素相乘,不相加 2.当为mat的时候,默认d*f就是矩阵的乘积,multiply转化为对应元素的乘积,dot(d,f)为矩阵的乘积 3. 混合时候的情况,一般不要混合 混合的时候默认按照矩阵乘法的, multiply转化为对应元素的乘积,dot(d,f)为矩阵的乘积 总结:数组乘法默认的是点乘,矩阵默认的是矩阵乘法,混

  • numpy和tensorflow中的各种乘法(点乘和矩阵乘)

    点乘和矩阵乘的区别: 1)点乘(即" * ") ---- 各个矩阵对应元素做乘法 若 w 为 m*1 的矩阵,x 为 m*n 的矩阵,那么通过点乘结果就会得到一个 m*n 的矩阵. 若 w 为 m*n 的矩阵,x 为 m*n 的矩阵,那么通过点乘结果就会得到一个 m*n 的矩阵. w的列数只能为 1 或 与x的列数相等(即n),w的行数与x的行数相等 才能进行乘法运算. 2)矩阵乘 ---- 按照矩阵乘法规则做运算 若 w 为 m*p 的矩阵,x 为 p*n 的矩阵,那么通过矩阵相乘结

  • tensorflow中next_batch的具体使用

    本文介绍了tensorflow中next_batch的具体使用,分享给大家,具体如下: 此处给出了几种不同的next_batch方法,该文章只是做出代码片段的解释,以备以后查看: def next_batch(self, batch_size, fake_data=False): """Return the next `batch_size` examples from this data set.""" if fake_data: fake_i

  • 关于Tensorflow中的tf.train.batch函数的使用

    这两天一直在看tensorflow中的读取数据的队列,说实话,真的是很难懂.也可能我之前没这方面的经验吧,最早我都使用的theano,什么都是自己写.经过这两天的文档以及相关资料,并且请教了国内的师弟.今天算是有点小感受了.简单的说,就是计算图是从一个管道中读取数据的,录入管道是用的现成的方法,读取也是.为了保证多线程的时候从一个管道读取数据不会乱吧,所以这种时候 读取的时候需要线程管理的相关操作.今天我实验室了一个简单的操作,就是给一个有序的数据,看看读出来是不是有序的,结果发现是有序的,所以

  • 对Tensorflow中权值和feature map的可视化详解

    前言 Tensorflow中可以使用tensorboard这个强大的工具对计算图.loss.网络参数等进行可视化.本文并不涉及对tensorboard使用的介绍,而是旨在说明如何通过代码对网络权值和feature map做更灵活的处理.显示和存储.本文的相关代码主要参考了github上的一个小项目,但是对其进行了改进. 原项目地址为(https://github.com/grishasergei/conviz). 本文将从以下两个方面进行介绍: 卷积知识补充 网络权值和feature map的可

  • tensorflow 中对数组元素的操作方法

    tensorflow中对tensor对象进行像numpy数组一样便捷的操作是不可能的, 至少对1.2以及之前的版本而言. 从issue上看到,有不少人希望tensorflow能及早实现这些操作,但近期来看是不太可能了. 但是,这样的操作的确可以实现. 下面我来向大家介绍几种常用的操作,以及其在tensorflow中的实现方式. 我的代码仅仅是抛砖引玉吧. 谁有更好的方法就放在评论中分享给大家吧. 预先给那个人点个赞. 1.在tensor对象中提取某一行. 2.将tensor中的某一行进行赋值.

  • 在tensorflow中实现去除不足一个batch的数据

    我就废话不多说了,直接上代码吧! #-*- coding:utf-8 -*- import tensorflow as tf import numpy as np value1 = tf.placeholder(dtype=tf.float32) value2 = tf.placeholder(dtype=tf.float32) value3 = value1 + value2 #定义的dataset有参数,只能使用参数化迭代器 dataset = tf.data.Dataset.range(1

  • Tensorflow中tf.ConfigProto()的用法详解

    参考Tensorflow Machine Leanrning Cookbook tf.ConfigProto()主要的作用是配置tf.Session的运算方式,比如gpu运算或者cpu运算 具体代码如下: import tensorflow as tf session_config = tf.ConfigProto( log_device_placement=True, inter_op_parallelism_threads=0, intra_op_parallelism_threads=0,

  • 对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解

    在用tensorflow做一维的卷积神经网络的时候会遇到tf.nn.conv1d和layers.conv1d这两个函数,但是这两个函数有什么区别呢,通过计算得到一些规律. 1.关于tf.nn.conv1d的解释,以下是Tensor Flow中关于tf.nn.conv1d的API注解: Computes a 1-D convolution given 3-D input and filter tensors. Given an input tensor of shape [batch, in_wi

  • 深入理解Tensorflow中的masking和padding

    TensorFlow是一个采用数据流图(data flow graphs),用于数值计算的开源软件库.节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor).它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等.TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的

  • Tensorflow中的dropout的使用方法

    Hinton在论文<Improving neural networks by preventing co-adaptation of feature detectors>中提出了Dropout.Dropout用来防止神经网络的过拟合.Tensorflow中可以通过如下3中方式实现dropout. tf.nn.dropout def dropout(x, keep_prob, noise_shape=None, seed=None, name=None): 其中,x为浮点类型的tensor,ke

随机推荐