2016-04-04 57 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