TensorFlow中常量与变量的基本操作演示
TensorFlow中常量与变量的基本操作演示
本文将介绍TensorFlow中的基本算法运算与矩阵运算,介绍Tensorflow中常量、变量、操作符等基本运算单元概念,同时会辅助介绍会话与变量初始化等概念。谷歌使用tensorflow来命名它的深度学习框架,可以说是十分贴切的,可以分为两个单词解释tensorflow分别为tensor与flow。tensor意思翻译为中文张量,但是到底什么才是张量,tensorflow官方对此的解释是:
tensor表示N维的数组,向量就是一维张量、矩阵就是二维张量,其它请看下图:
flow表示数据节点流图,典型结构如下:
上述图中我们可以看到那些圆角矩形表示变量-Var,那些椭圆表示操作-OP,此外tensorflow还经常用的常量、运行数据流图需要开启会话。下面我们就一一对tensorflow最基本元素进行说明:
常量
tensorflow中常量函数是出镜率最高的函数,也是初学者最初接触到函数之一,常量函数的定义如下:
def constant(value, dtype=None, shape=None, name="Const", verify_shape=False):
举例,定义两个常量OP的代码如下:
a = tf.constant(32, dtype=tf.float32, name="a1")
b = tf.constant(48, dtype=tf.float32, name="b1")
32与48分别是两个常量的值,
2.变量
tensorflow中变量函数是最基础函数之一,使用频率也是非常高,变量函数定义如下:
def __init__(self,
initial_value=None,
trainable=True,
collections=None,
validate_shape=True,
caching_device=None,
name=None,
variable_def=None,
dtype=None,
expected_shape=None,
import_scope=None):
举例,定义两个随机变量OP的代码如下:
c = tf.Variable(2.0, dtype=tf.float32, name="c1")
d = tf.Variable(tf.random_normal([3, 20], stddev=0.5), name="d1")
3.操作符
通常我们把常量、变量、以及其他操作数都称为OP,假设我们对上述定义的两个常量与一个变量相加计算和就可以用如下的代码实现
e = tf.add(tf.add(a, b), c)
其中tf.add就是操作符,其它更多的操作符可以参考API说明即可。
4.会话
当我们完成上面的简单代码编写之后,我们要运行这个数据流图,首先必须初始化一个会话,可以通过tf.Session()得到返回会话对象,然后在会话中执行最终的节点操作数,整个数据流图就完成计算,完整的代码实现如下:
with tf.Session() as sess:
init = tf.global_variables_initializer()
sess.run(init)
result = sess.run(e)
print(result)
上述代码执行时候,首先完成对变量的全局初始化,然后才是执行相关操作数,输出并打印结果82.0。 对于多个常量的情况,一样可以完成计算,代码演示如下:
aa = tf.constant([3, 4], dtype=tf.float32, name="a2")
bb = tf.constant([5, 6], dtype=tf.float32, name="b2")
cc = tf.Variable(aa + bb, dtype=tf.float32, name="c2")
with tf.Session() as sess:
init = tf.global_variables_initializer()
sess.run(init)
result = sess.run(cc)
print(result)
最重要的千万别忘记import tensorflow as tf 对于变量是多维的情况,我们一样可以计算,下面的代码就是生成两个二维变量,然后使用矩阵乘法计算结果,代码如下:
import tensorflow as tf
m1 = tf.Variable(tf.random_normal([1, 20], stddev=5), name="m1")
m2 = tf.Variable(tf.random_normal([20, 1], stddev=.4), name="m2")
_M = tf.matmul(m1, m2)
with tf.Session() as sess:
init = tf.global_variables_initializer()
sess.run(init)
print(sess.run(m1))
print(sess.run(m2))
result = sess.run(_M)
print("result : \n", result)
上述内容主要是演示了tensorflow中的常量、变量、会话、初始化变量等一些基本元素的基本操作,后续我们还会继续更新文章!请关注!