tensorlfow变量,会议创建

本文介绍TensorFlow中变量的创建与初始化方法,包括使用随机数和常数初始化,以及placeholder机制的应用。同时,详细解释了前向传播算法的实现,通过矩阵乘法tf.matmul完成,并展示了如何在会话中运行计算图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先是创建一个变量时,将一个张量作为初始值传入变量声明函数Variable(),TensorFlow提供了一系列操作符来初始化张量,初始值是常量或是随机值。

tf.random_normal([2, 3], stddev = 1, seed = 1)会产生一个2×3的矩阵,矩阵中的元素是均值为0,标准差为1的随机数,默认类型为tf.float32,seed为种子,其作用是每次通过seed产生的随机数都为定值。

Tensorflow随机数生成函数还有如:
tf.random_normal 正态分布
tf.truncated_normal 正态分布,如果随机出来的值超过2个标准差将重新随机
tf.random_uniform 均匀分布
tf.random_gamma Gamma分布

TensorFlow也支持常数初始化一个变量
如: x = tf.constant([[0.7, 0.9]]) (这里的x是一个1×2的矩阵)
x = tf.zeros([2,3], int32) (2×3全为0的矩阵)…
tensorflow常数生成函数有:
tf.zeros
tf.ones
tf.fill
tf.constant

Tensorflow提供了placeholder机制用于提供输入数据,相当于定义了一个位置,这个位置中的数据在程序运行时再指定,这样程序就不需要产生大量的常量来提供输入数据,只需通过placeholder传入tf的计算图。

前向传播算法
tf.matmul(x, y)实现了矩阵乘法的功能

会话session创建
sess = tf.Session() (创建默认会话)
还可以通过tf.ConfigProto()来配置所需要生成的会话
config = tf.ConfigProto(allow_sotf_placement=True, log_device_placement=True) (更多参数见文档)
sess = tf.Session(config=config)

初始化所有变量
创建会话后创建默认的计算图,图中的变量都需要自己进行初始化,通过tf.global_variables_initializer()可以很方便的初始化所有变量

通过feed_dict指定placeholder的取值
如同下面的例子 通过feed_dict={x: [[0.7, 0.9]]} 指定x的取值,如果placeholder没有被指定取值,程序运行将会报错。

>>> w1 = tf.Variable(tf.random_normal([2, 3], stddev = 1, seed = 1))
>>> w2 = tf.Variable(tf.random_normal([3, 1], stddev = 1, seed = 1))
>>>
>>> x = tf.placeholder(tf.float32, shape=(1,2), name="input")
>>> a = tf.matmul(x, w1)
>>> y = tf.matmul(a, w2)
>>>
>>> sess = tf.Session()
>>> init_op = tf.global_variables_initializer()
>>> sess.run(init_op)
>>> print(sess.run(y, feed_dict={x: [[0.7, 0.9]]}))
[[3.957578]]



上面就是一个简单的前向传播样例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值