tensorflow: 如何使用占位符与变量

来源:互联网 发布:梦幻西游mac下载安装 编辑:程序博客网 时间:2024/06/01 20:26

Refence:  《Tensorflow machine learning cookbook》 : Using Placeholders and Variables


Packt.TensorFlow.Machine.Learning.Cookbook.2017 笔记


如何使用占位符与变量
申明变量: tf.Variable(张量tensor)
初始化变量:让变量在计算图上有相应的方法。例:
my_var = tf.Variable(tf.zeros([2,3]))  #申明变量
sess = tf.Session()                    #初始化计算图
initialize_op = tf.global_variables_initializer() #创建一个初始化操作
sess.run(initialize_op) #运行计算图
占位符是计算图等着喂数据的地方。


占位符例子:
import numpy as np
import tensorflow as tf;
from tensorflow.python.framework import ops
ops.reset_default_graph()


sess = tf.Session() #初始化计算图
x = tf.placeholder(tf.float32, [2,2]) #定义占位符
y = tf.identity(x) #identify操作,这个操作简单地返回x。 因为把占 位符放入计算图至少要有一个操作,
x_vals = np.random.rand(2,2) #创建一个shape(2,2)的随机矩阵
print(sess.run(y, feed_dict={x: x_vals})) #运行计算图。 y赋值给fetches,因为操作是fetches的一种。  x占位符从sess.run的 feed_dicr这个参数位喂数据。
#sess.run(x, feed_dict={x: x_vals}) #错误,tf并不返回一个自引用的占位符


返回:
[[ 0.02997003  0.18465173]
 [ 0.07915613  0.51091391]]


变量的例子
import numpy as np
import tensorflow as tf;
from tensorflow.python.framework import ops
ops.reset_default_graph()


sess = tf.Session() #初始化计算图
x = tf.placeholder(tf.float32, [2,2]) #定义占位符
y = tf.identity(x) #identify操作,这个操作简单地返回x。 因为把占 位符放入计算图至少要有一个操作,
x_vals = np.random.rand(2,2) #创建一个shape(2,2)的随机矩阵
#运行计算图。 y赋值给fetches,因为操作是fetches的一种。  x占位符从sess.run的 feed_dicr这个参数位喂数据。
print(sess.run(y, feed_dict={x: x_vals})) 
#sess.run(x, feed_dict={x: x_vals}) #错误,tf并不返回一个自引用的占位符


返回:
[[ 0.11960664  0.37015787]
 [ 0.44115946  0.07174481]]