0
我想在同一時間在Theano運行兩個獨立的網絡,第一個網絡在第二個網絡上訓練。我可以將兩個網絡嵌入到相同的結構中,但是在整個正向傳遞中將會是一團糟(因爲共享變量等原因,甚至可能不會工作)。Theano中的多個網絡
問題是,當我定義一個theano函數我沒有指定它應用的模型,這意味着如果我有預測和火車功能,他們都將在我定義的第一個模型上工作。
有沒有辦法解決這個問題?
我想在同一時間在Theano運行兩個獨立的網絡,第一個網絡在第二個網絡上訓練。我可以將兩個網絡嵌入到相同的結構中,但是在整個正向傳遞中將會是一團糟(因爲共享變量等原因,甚至可能不會工作)。Theano中的多個網絡
問題是,當我定義一個theano函數我沒有指定它應用的模型,這意味着如果我有預測和火車功能,他們都將在我定義的第一個模型上工作。
有沒有辦法解決這個問題?
以一種相當簡單的方式,我設法找到了一個不錯的解決方案。訣竅是創建一個模型,定義其功能,然後創建另一個模型並定義第二個功能。像魅力一樣工作
爲什麼會是一團糟?您總是可以使用例如表達式連接表達式,甚至是後驗表達式。 'theano.clone(表達式,替換= {input_to_second_net:output_from_first_net},strict = False)' – eickenberg 2014-10-28 21:51:15
這將是一團糟,因爲我將不得不向Theano模型加載很多東西來準備輸入,而且我也不會不認爲它看起來乾淨,有2個模型合併成一個模型。我寧願這樣說。通過每個輸入,我必須從數據集中獲得一些隨機結果,使用stanford分析器解析它們,轉換樹並編輯轉換結果,然後在結果上運行第一個模型,然後我可以將它發送到最後的模型,所以這是相當多的預處理在模型內做 – 2014-10-28 22:06:10
我真的不明白「所說的」是指什麼。以何種方式從數據集中隨機得出結果?爲什麼不在模型之外進行預處理?如果不方便,沒有人強迫你在模型內部做。你可以很容易地將數據傳遞給一個訓練函數而不需要傳遞共享變量(儘管這樣可能會影響GPU內存訪問) – eickenberg 2014-10-28 22:18:05