tf.placeholder和tf.Variable之间有什么区别

tf.placeholder和tf.Variable之间有什么区别

在这篇文章中,我们将看到tf.placeholder和tf.Variable之间的区别。

tf.placeholder

顾名思义,它是一个空的地方。它是一个空的变量,后来训练数据被送入其中。tf.placeholder允许我们首先创建一个结构,即设置计算图,然后将数据输入其中。它允许我们在运行时放置数据。当会议开始时,我们把数据输入占位符。

语法: tf.compat.v1.placeholder(dtype, shape=None, name=None)

  • dtype是输入的数据类型。
  • shape是张量的形状。然而,它是一个可选的参数。
  • name是操作名称

让我们借助于一个例子来阐述一下

# import packages
import tensorflow.compat.v1 as tf 
  
# disable eager mode
tf.compat.v1.disable_eager_execution()  
  
# create empty placeholder
a = tf.placeholder(tf.float32, name='a')  
b = tf.placeholder(tf.float32, name='b')  
  
# create third node and perform subtraction
c = tf.subtract(a, b, name='c')  
sess = tf.Session()
  
# run session
sess.run(c, feed_dict={a: 1, b: 8})  

输出:

-7.0

在上面的代码中,我们创建了两个占位符,并创建了第三个节点’c’来执行减法。最后,我们使用 session.run 来执行操作。

tf.Variable

tf.Variable是一个持有初始值的状态。这些值不过是张量。变量可以通过调用构造函数被添加到计算图中。每当一个变量被创建,它总是被初始化。在会话执行过程中,它们基本上持有权重和偏差。

语法:

tf.Variable(initial_value=None,   
trainable=None,   
validate_shape=True,   
caching_device=None,   
name=None,   
variable_def=None,   
dtype=None,   
import_scope=None,   
constraint=None,   
synchronization=tf.VariableSynchronization.AUTO,   
aggregation=tf.compat.v1.VariableAggregation.NONE,   
shape=None) 

让我们借助于一个例子来阐述一下

# import packages
import tensorflow as tf
   
# create variables
tensor1 = tf.Variable([3, 4])
tensor2 = tf.Variable([2, 3])
  
print(tensor1-tensor2)

输出:

Tensor("sub:0", shape=(2,), dtype=int32)

在上面的代码中,我们创建了两个张量变量,并用两个列表初始化它们。然后我们对两个张量进行减法并得到结果。

tf.placeholder和tf.Variable之间的区别

tf.placeholder tf.Variable
它是一个空变量,数据在代码的后面部分被输入。 变量一旦声明,就必须在声明时用一个初始值进行初始化。
占位符被绑定在表达式内。 变量用于保存权重和偏差的值。
这些值是特定的,在程序执行过程中不会改变。 在程序执行过程中,数值会被改变。
它用于处理外部数据。 它用于存储整个程序中需要的数值。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Tensorflow 教程