Tensorflow 为什么我们需要张量的名字

Tensorflow 为什么我们需要张量的名字,tensorflow,Tensorflow,假设我有一个层,我想重复K次: {conv - relu - pool} x K 在这种情况下,我需要迭代运行第K层的前向过程: for k in range(len(K)): Wk = ... bk = ... conv = tf.nn.conv2d(pool, Wk, ...) + bk 在这里,如果我错过了'name'参数,我的conv张量会在每次迭代中被替换吗?正确的变体是: for k in range(len(K)): Wk = ...

假设我有一个层,我想重复K次:

    {conv - relu - pool} x K
在这种情况下,我需要迭代运行第K层的前向过程:

for k in range(len(K)):
    Wk = ...
    bk = ...
    conv = tf.nn.conv2d(pool, Wk, ...) + bk
在这里,如果我错过了'name'参数,我的conv张量会在每次迭代中被替换吗?正确的变体是:

for k in range(len(K)):
    Wk = ...
    bk = ...
    name='conv%d' % (k)
    conv = tf.nn.conv2d(name=name, pool, Wk, ...) + bk

因此,如果不输入名称,则不会覆盖或替换该值。TF提出了自己的命名约定,如常量1、常量2等

name参数之所以有用,至少有一个原因是因为TensorBoard使用了它。此参数用于TF名称空间(vs Python名称空间-因此变量名被TF忽略)

因此,当您有多个迭代时,该命名约定将用于命名不同的名称


WRT如何使用它,有几种方法可以做到这一点-其中之一你已经键入。另一种方法是使用“范围”——这样TB(TensorBoard)图看起来更整洁、更易于管理。至少从TB的角度来看,使用范围也是可选的

因此,如果不输入名称,则不会覆盖或替换该值。TF提出了自己的命名约定,如常量1、常量2等

name参数之所以有用,至少有一个原因是因为TensorBoard使用了它。此参数用于TF名称空间(vs Python名称空间-因此变量名被TF忽略)

因此,当您有多个迭代时,该命名约定将用于命名不同的名称

WRT如何使用它,有几种方法可以做到这一点-其中之一你已经键入。另一种方法是使用“范围”——这样TB(TensorBoard)图看起来更整洁、更易于管理。至少从TB的角度来看,使用范围也是可选的