AI学习之路(19)TensorFlow里的矩阵乘法

如果对矩阵的知识有点遗忘,有点陌生,有点想不起来,请先看看这个网页:

http://blog.csdn.net/caimouse/article/details/55001181

基础知识已经补过了,就直接来使用TF的矩阵乘法了。

tf.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和矩阵b进行乘法,也就是a * b。两个参数输入必须是矩阵形式(张量的行列大于2),符合矩阵乘法的前后矩阵行列形式,包括转置之后。两个矩阵必须具有相同的数据类型,支持的数据类型:float16, float32, float64, int32, complex64, complex128。

也可以通过参数 transpose_a或transpose_b来设置矩阵在乘法之前进行转置,这时这些标志位应该设置为True,默认是False。

如果知道某一个矩阵有比较多0元素存在,也就是说存在稀疏矩阵,这时候可以通过设置参数a_is_sparse 或 b_is_sparse标志为True,这样可以大大优化矩阵的乘法计算。但张量的形式必须为2,数据类型为 float16 or float32。

例子:

#python 3.5.3
#2017-03-09 蔡军生  http://blog.csdn.net/caimouse
#
import tensorflow as tf
import numpy as np

a = tf.constant([1, 2, 3, 4, 5, 6], shape=[2, 3])
b = tf.constant([7, 8, 9, 10, 11, 12], shape=[3, 2])
c = tf.matmul(a, b)

print(a)
print(b)
print(c)

# 在运行图计算之前,先初始化全局变量.
init = tf.global_variables_initializer()

# 准备会话来运行图.
with tf.Session() as sess:
    sess.run(init)

    print(‘a=‘, a.eval())
    print(‘b=‘, b.eval())
    print(‘c=‘, c.eval()) 

print(‘\n\n3-D‘)
#三维张量
a = tf.constant(np.arange(1,13), shape=[2, 2, 3])
b = tf.constant(np.arange(13,25), shape=[2, 3, 2])
c = tf.matmul(a, b)
# 准备会话来运行图.
with tf.Session() as sess:
    sess.run(init)

    print(‘a=‘, a.eval())
    print(‘b=‘, b.eval())
    print(‘c=‘, c.eval())

结果输出如下:

============== RESTART: D:/work/csdn/tensorflow/MNIST/matmul.py ==============
Tensor("Const:0", shape=(2, 3), dtype=int32)
Tensor("Const_1:0", shape=(3, 2), dtype=int32)
Tensor("MatMul:0", shape=(2, 2), dtype=int32)
a= [[1 2 3]
 [4 5 6]]
b= [[ 7  8]
 [ 9 10]
 [11 12]]
c= [[ 58  64]
 [139 154]]

3-D
a= [[[ 1  2  3]
  [ 4  5  6]]

[[ 7  8  9]
  [10 11 12]]]
b= [[[13 14]
  [15 16]
  [17 18]]

[[19 20]
  [21 22]
  [23 24]]]
c= [[[ 94 100]
  [229 244]]

[[508 532]
  [697 730]]]
>>>

1. TensorFlow入门基本教程

http://edu.csdn.net/course/detail/4369

2. C++标准模板库从入门到精通

http://edu.csdn.net/course/detail/3324

3.跟老菜鸟学C++

http://edu.csdn.net/course/detail/2901

4. 跟老菜鸟学python

http://edu.csdn.net/course/detail/2592

5. 在VC2015里学会使用tinyxml库

http://edu.csdn.net/course/detail/2590

6. 在Windows下SVN的版本管理与实战

http://edu.csdn.net/course/detail/2579

7.Visual Studio 2015开发C++程序的基本使用

http://edu.csdn.net/course/detail/2570

8.在VC2015里使用protobuf协议

http://edu.csdn.net/course/detail/2582

9.在VC2015里学会使用MySQL数据库

http://edu.csdn.net/course/detail/2672

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://www.cnblogs.com/captainbed

原文地址:https://www.cnblogs.com/skiwnchh/p/10191539.html

时间: 2024-10-26 07:19:08

AI学习之路(19)TensorFlow里的矩阵乘法的相关文章

AI学习之路(3): 牛刀小试之线性回归

当阿法狗在围棋界展开大规模战斗之后,所有人都倒下了.可见人工智能的威力无限,正像<射雕英雄传>里的九阴真经,谁掌握了它,那么谁就是华山论剑里的第一人物了.我们也能学习人工智能吗?我们也能开发像阿法狗那样威力强劲的围棋吗?这些想法都是我们的梦想,有梦想就是好事情,马云说:万一实现了呢,王建林说:挣一个亿是个小目标,那么我们的小目标在那里呢?拿AI挣一个亿,呵呵,那是未来的小目标.现在我们的小目标是使用Tensorflow实现一个线性回归,说白了,就是给一大堆二维的数据,让TF告诉这个方程的系数.

AI 学习之路

前言:本文章纯属自己学习路线纪录,不喜勿喷. 最近AI很火,几乎是个程序员 都要去学习AI,作为一个菜鸡小前端,我也踏上了学习AI的方向. 在学习之中,最开始遇到了很多的困难,比如你不知道如何切入进来学习AI,你网上搜集到的资料都是各种各样,完全象各种碎片一样,自己又无法拼凑起来 形成一个完美的学习课程, 我前后摸索,看了很多视频,学到了很多的关键字,听到了很多各种各样的名词,loss fn  ,卷积神经网络,paddlepaddle,imgnet,积木,等等.头脑很乱 时间花了不少,但是学习效

Qt学习之路(19): 事件(event) - 豆子空间 - 51CTO技术博客

对于QT的事件机制讲解的很清楚,赞一个! 来源:http://devbean.blog.51cto.com/448512/223974#0-hi-1-64506-89fdc647f52c5196c0d5da60d38d89ea

Python学习之路—2018/6/19

Python学习之路-2018/6/19 1.注册自定义转化器 converts.py class Birthday: regex = '[0-9]{8}' # 匹配规则 def to_python(self, value): # 匹配的字符串返回具体的变量值,传递到对应的视图函数中 return int(value) def to_url(self,value): # 反向解析 return "%04d" % value urls.py from django.urls import

Android学习之路(转载)

原文地址:http://stormzhang.github.io/android/2014/07/07/learn-android-from-rookie/ 硬件 电脑–推荐Mac 首先声明我不是果粉,个人Windows,Linux,Mac OX系统均用过, 只能说Windows上面的开发工具简直难以恭维,尤其命令行超级难用,而Linux自己必须得花不少时间在折腾中,更是不适合新手了,Max OS是我认为迄今为止最好用的系统,没有之一, 所以如果你不差钱的话,强烈建议入手一台Mac,推荐Pro系

Android 学习之路--android基础(三)

Android 学习之路--android基础(三) | Talent?C 盒子 盒子 博客 友链 关于 Posts List 作者Talent?C转载请注明出处 前言 上一篇文章我们介绍了 活动(Activity) 的作用及相关用法,我们知道活动是用来给用户展示 UI界面 的,那么在Android中都有哪些UI控件呢?今天就让我们来简单学习几种常见的 UI控件. 如何编写UI界面? Android Studio中为我们提供两种UI界面的编辑方式, 第一种是通过Android Studio 提供

linux学习之路之LVM

试想一种情况,当初我们在规划磁盘的时候,只给某一个磁盘或分区之划分了30G的容量,但是后来,随着业务的需求,该磁盘或者分区的使用量会越来越大,等到以后再有数据存放时,发现该磁盘或者分区的容量不够用,此时该怎么办了?可以新增一个磁盘,经过格式化,挂载等过程就可以使用这个磁盘了,再将原来磁盘的数据完全的复制过来.等到后来又发现,规划的磁盘又太大了,然后又使用上述方法来减少磁盘的大小.虽然这种方法可行,但是效率低,比较复杂.不应该是我们首选的方法. 当然,我们可以这样做,将多个磁盘或者分区(PV)组合

我的算法学习之路

关于 严格来说,本文题目应该是我的数据结构和算法学习之路,但这个写法实在太绕口--况且CS中的算法往往暗指数据结构和算法(例如算法导论指的实际上是数据结构和算法导论),所以我认为本文题目是合理的. 这篇文章讲了什么? 我这些年学习数据结构和算法的总结. 一些不错的算法书籍和教程. 算法的重要性. 初学 第一次接触数据结构是在大二下学期的数据结构课程.然而这门课程并没有让我入门--当时自己正忙于倒卖各种MP3和耳机,对于这些课程根本就不屑一顾--反正最后考试划个重点也能过,于是这门整个计算机专业本

TensorFlow和深度学习新手教程(TensorFlow and deep learning without a PhD)

前言 上月导师在组会上交我们用tensorflow写深度学习和卷积神经网络.并把其PPT的參考学习资料给了我们, 这是codelabs上的教程:<TensorFlow and deep learning,without a PhD> 当然登入须要FQ,我也顺带巩固下,做个翻译.不好之处请包括指正. 当然须要安装python,教程推荐使用python3.假设是Mac,能够參考博主的另外两片博文,Mac下升级python2.7到python3.6, Mac安装tensorflow1.0 好多专业词