【发布时间】:2017-08-09 20:25:08
【问题描述】:
在 Python 中使用 TensorFlow,我想要一个“父”张量 T3,它由两个“子”张量 T1 和 T2 的某种组合(和操作)组成(实际上,T1 和 T2 也是组合of / 对其他张量的操作)。
我想在“父”张量 T3 的损失函数上运行优化器,同时保持其中一个“子”,例如 T1(及其所有可能的“孙”张量)不变。
值得注意的是,T3 是从函数返回的,而 T1 和 T2 是在该函数中创建的。优化器在 T1 的返回值上运行。因此,我担心的一个问题是 T1 和 T2 可能(?)超出范围,并且它们的变量名可能对主脚本不可用(?)。下面是我如何初始化张量的一个非常简略的形式:
def make_T3():
T1 = foo_1(name='T1')
T2 = foo_2(name='T2')
T3 = foo_3(T1,T2, name='T3')
return T3
this question 和 this question 非常相似;但是,由于张量的声明方式,我不确定相同的方法是否有效,原因有两个:(1.)我不知道是否对除名为“T1”的变量之外的所有变量运行优化器(因此,优化器中的var_list 将包含 T1 中包含的“孙子”张量)将优化 T1 中包含的“孙子”张量与否。 (2.) 我不确定变量范围是否有问题。
那么,在保持子 T1 不变的情况下,如何正确优化 T3 的损失函数?
【问题讨论】:
标签: tensorflow