欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Tensorflow深度学习之三:基础概念篇(矩阵相乘)

程序员文章站 2024-02-04 13:40:34
...
Tensorflow中有很多地方需要用到矩阵相乘,这里通过一个小程序讲解一下矩阵相乘中所涉及的基本概念。(由于本人刚刚接触Tensorflow,有些概念讲解若有错误,请不吝指出。)
import tensorflow as tf
#Tensorflow默认会话
sess = tf.InteractiveSession()

#建立两个矩阵变量w1和w2
#tf.random_normal(shape,
#                 mean=0.0,
#                 stddev=1.0,
#                 dtype=dtypes.float32,
#                 seed=None,
#                 name=None)
#产生随机正态分布
#shape表示矩阵的维度,例如:
#tf.random_normal([2,3],mean=1.0, stddev=1.0)是一个2行3列的矩阵,
#mean表示均值,默认为0.0,stddev表示标准差,默认为1.0
#seed表示随机数种子,默认为None
w1 = tf.Variable(tf.random_normal([2,3],mean=1.0, stddev=1.0))
w2 = tf.Variable(tf.random_normal([3,1],mean=1.0, stddev=1.0))

#定义一个二维的常量矩阵,注意:这里不是一维数组
x = tf.constant([[0.7, 0.9]])

#初始化全局变量,这里由于只有w1和w2没有被初始化(之前只是定义了w1和w2的tensor,并没有被初始化),故这一步只会初始化w1和w2.
tf.global_variables_initializer().run()
#tf.initialize_all_variables().run()    #这种写法也可,官方推荐使用上面的写法

#计算矩阵相乘a=x*w1(关于矩阵乘法,可以参看线性代数)
a = tf.matmul(x ,w1)
#计算矩阵相乘y=a*w2
y = tf.matmul(a, w2)
#输出计算结果,是一个1行1列的二维矩阵
print(y.eval())

结果如下:(在不同的机器上,运行结果或有不同)

[[ 5.25156927]]