Tensorflow之矩阵基础

一、矩阵的定义以及矩阵之间的运算

1.矩阵的定义

#矩阵 其实就是一个元素为列表的列表
'''
                                           3 3 3
[[1,2,3],[1,2,3],[1,2,3]] 这就是一个三维矩阵 3 3 3 其他的以此类推
                                           3 3 3
'''
import tensorflow as tf
#定义一个三维矩阵常量
data1 = tf.constant([
                     [1,2,3],
                     [4,5,6],
                     [7,8,9]
                            ])
print(data1.shape)#打印矩阵的维度
#矩阵的行和列都是自零开始的
with tf.Session() as sess:
    print(sess.run(data1))#打印整体
    print(sess.run(data1[0]))#打印第几行矩阵的内容
    print(sess.run(data1[0,1]))#打印具体的值第几行第几列的数据
    '''还可以以切片的形式输出'''
    print(sess.run(data1[:2,1]))#打印从第1行到第2行的第1列数据 即2 5
    print(sess.run(data1[:,:2]))#打印每一行的第一 二列数据即 1 2 4 5 7 8

输出结果:

(3, 3)
[[1 2 3]
 [4 5 6]
 [7 8 9]]
[1 2 3]
2
[2 5]
[[1 2]
 [4 5]
 [7 8]]

2.矩阵的运算 这里我们说的是加法和乘法

#矩阵运算
import tensorflow as tf
'''乘法规则 两个矩阵s1 和 s2 s1为m1*n1 s2为m2*n2 则n1要等于m2 最终的矩阵为m1*n2
   加法规则 两个矩阵规格必须一样都是m*n才可进行运算
   s1= 1, 2  s2 = 5, 6 则s1*s2=  1*5 + 2*7, 1*6 + 2*8   s1+s2= 1+5 ,2+6
       3, 4       7, 8           3*5 + 4*7 ,3*6 + 4*8          3+7 ,4+8
'''
data1 = tf.constant([[1,2],[3,4]])
data2 = tf.constant([[5,6],[7,8]])
matMul = tf.matmul(data1,data2)
matAdd = tf.add(data1,data2)
with tf.Session() as sess:
    print(sess.run(matMul))
    print(sess.run(matAdd))

输出结果:

[[19 22]
 [43 50]]
[[ 6  8]
 [10 12]]

二、一些特殊矩阵(全0、全1、随机矩阵):

import tensorflow as tf
'''定义全0 全1 填充 随机矩阵'''
mat0 = tf.constant([[0,0,0],[0,0,0]])#显然当数据量很大时这样不行
mat1 = tf.zeros([3,4])#定义全0矩阵
mat2 = tf.ones([3,4])#定义全1矩阵
mat3 = tf.fill([3,4],15)#以15来填充矩阵
mat4 = tf.random_uniform([3,4],1,5)#定义一个3行4列的以1 到5 随机数填充的矩阵
with tf.Session() as sess:
    print(sess.run(mat0))
    print('全0矩阵',sess.run(mat1))
    print('全1矩阵',sess.run(mat2))
    print('自定义填充矩阵',sess.run(mat3))
    print('随机矩阵',sess.run(mat4))

输出结果:

[[0 0 0]
 [0 0 0]]
全0矩阵 [[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]
全1矩阵 [[1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]]
自定义填充矩阵 [[15 15 15 15]
 [15 15 15 15]
 [15 15 15 15]]
随机矩阵 [[4.9475193 4.405265  4.329329  4.6825447]
 [2.1526985 1.4548941 4.059652  1.4330664]
 [1.7129827 4.0956717 2.4845014 3.4982362]]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值