摘要:接收布爾型條件和兩個變量作為輸入。進行元素級運算,因此比更常用。比較懶惰,只計算滿足條件的相應輸出變量,而計算所有的輸出變量。如果那么計算和,并輸出在這個例子中,比花費更少的時間,因為他只計算輸出變量中的一個。
IfElse vs Switch
IfElse接收布爾型條件和兩個變量作為輸入。
Switch接收一個張量(Tensor)以及兩個變量作為輸入。
Switch進行元素級運算,因此比IfElse更常用。
IfElse比較懶惰,只計算滿足條件的相應輸出變量, 而Switch計算所有的輸出變量。
即:
ifelse(condition, output1, output2): 如果condition:1(0),那么ifelse只計算output1(output2)并輸出。
switch(condition, output1, output2): 如果condition:1(0),那么switch計算output1和output2,并輸出output1(output2)
from theano import tensor as T from theano.ifelse import ifelse import theano, time, numpy a, b = T.scalars("a", "b") x, y = T.matrices("x", "y") z_switch = T.switch(T.lt(a, b), T.mean(x), T.mean(y)) z_ifelse = ifelse(T.lt(a, b), T.mean(x), T.mean(y)) f_switch = theano.function([a, b, x, y], z_switch, mode=theano.Mode(linker="vm")) f_ifelse = theano.function([a, b, x, y], z_ifelse, mode=theano.Mode(linker="vm")) val1 = 0. val2 = 1. big_mat1 = numpy.ones((10000, 1000)) big_mat2 = numpy.ones((10000, 1000)) n_times = 10 tic = time.clock() for i in range(n_times): f_switch(val1, val2, big_mat1, big_mat2) print("time spent evaluating both values %f sec" % (time.clock() - tic)) tic = time.clock() for j in range(n_times): f_ifelse(val1, val2, big_mat1, big_mat2) print("time spent evaluating one value %f sec" % (time.clock() - tic))
在這個例子中,IfElse比Switch花費更少的時間,因為他只計算輸出變量中的一個。
如果不使用linker="vm"或linker="cvm",那么ifelse將會和switch一樣計算兩個輸出變量,而且花費的時間和switch一樣多。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/38661.html
摘要:兩者取長補短,所以深度學習框架在年,迎來了前后端開發的黃金時代。陳天奇在今年的中,總結了計算圖優化的三個點依賴性剪枝分為前向傳播剪枝,例已知,,求反向傳播剪枝例,,求,根據用戶的求解需求,可以剪掉沒有求解的圖分支。 虛擬框架殺入從發現問題到解決問題半年前的這時候,暑假,我在SIAT MMLAB實習。看著同事一會兒跑Torch,一會兒跑MXNet,一會兒跑Theano。SIAT的服務器一般是不...
摘要:我認為對機器學習開發者來說,是一個了不起的工具集。這個帖子發出后得到了很多機器學習研究者和開發者的關注,他們紛紛跟貼談論自己的想法和經驗不只是關于和,討論中還涉及到更多工具。 Theano、TensorFlow、Torch、MXNet 再到近日比較熱門的 PyTorch 等等,深度學習框架之間的比較一直以來都是非常受人關注的熱點話題。機器之心也曾發表過多篇相關的介紹和對比文章,如《主流深度學...
摘要:另外,當損失函數接近全局最小時,概率會增加。降低訓練過程中的學習率。對抗樣本的訓練據最近信息顯示,神經網絡很容易被對抗樣本戲弄。使用高度正則化會有所幫助,但會影響判斷不含噪聲圖像的準確性。 由 Yoshua Bengio、 Leon Bottou 等大神組成的講師團奉獻了 10 天精彩的講座,劍橋大學自然語言處理與信息檢索研究組副研究員 Marek Rei 參加了本次課程,在本文中,他精煉地...
摘要:八月初,我有幸有機會參加了蒙特利爾深度學習暑期學校的課程,由最知名的神經網絡研究人員組成的為期天的講座。另外,當損失函數接近全局最小時,概率會增加。降低訓練過程中的學習率。對抗樣本的訓練據最近信息顯示,神經網絡很容易被對抗樣本戲弄。 8月初的蒙特利爾深度學習暑期班,由Yoshua Bengio、 Leon Bottou等大神組成的講師團奉獻了10天精彩的講座,劍橋大學自然語言處理與信息檢索研...
摘要:是怎么處理形狀信息在構建圖的時候,不可能嚴格執行變量的形狀。形狀推斷問題在圖中,將會傳播形狀的信息。以下情形是目前我們可以做到的當調用時,你可以直接把形狀信息傳遞給。例如你可以在圖的任何位置使用添加位置信息。 Theano是怎么處理形狀信息(Shape Information) 在構建圖的時候,不可能嚴格執行Theano變量的形狀。因為在運行的時候,傳遞給Theano函數的某一參數的值...
閱讀 2178·2023-04-25 19:06
閱讀 1375·2021-11-17 09:33
閱讀 1767·2019-08-30 15:53
閱讀 2582·2019-08-30 14:20
閱讀 3541·2019-08-29 12:58
閱讀 3534·2019-08-26 13:27
閱讀 501·2019-08-26 12:23
閱讀 485·2019-08-26 12:22