2016-04-04 59 views
0

我正在使用Python 2.7与TensorFlow库。在这个库中,有一个名为tf.constant(3)的数据类型,这意味着值为3的常量浮点数。该值需要在初始化时分配并且不能更改,类似于C++中的const在TensorFlow中定义常量

但是在我的代码中,我并不知道这个常量在开始时的值。相反,我需要调用一个函数,它执行一些处理,然后创建常量。例如,如果常数称为x

def initialise_x(): 
    # 
    # Do some stuff 
    # 
    y = ... 
    x = tf.constant(y) 

的问题,这一点,是x现在不具备的功能initialise_x()的范围之内。

所以,我想要做的事,如:

x = tf.constant(0) 

def initialise_x(): 
    # 
    # Do some stuff 
    # 
    y = ... 
    x = tf.constant(y) 

但是,这是不可能的,因为不断只能被定义一次。

我该如何解决这个问题?

回答

1

我不知道你的程序是怎么样的,但如何使一个函数返回一个常量?

def initialize_x(): 
    # Do something 
    y = ... 
    return tf.constant(y) 

if __name__ == "__main__": 
    ... 
    x = initialize_x() 
    ... 
+0

是的,我想到了。它使我的代码有点混乱,但可能是唯一的解决方案! – Karnivaurus

+0

如果该函数包含大量逻辑并且看起来杂乱,则可以将该函数移动到模块中。在这种情况下,'x'太短暂无法理解,所以我建议您将其重命名为更易理解的。 – tsuda7