摘要:接收布爾型條件和兩個變量作為輸入。進(jìn)行元素級運算,因此比更常用。比較懶惰,只計算滿足條件的相應(yīng)輸出變量,而計算所有的輸出變量。如果那么計算和,并輸出在這個例子中,比花費更少的時間,因為他只計算輸出變量中的一個。
IfElse vs Switch
IfElse接收布爾型條件和兩個變量作為輸入。
Switch接收一個張量(Tensor)以及兩個變量作為輸入。
Switch進(jìn)行元素級運算,因此比IfElse更常用。
IfElse比較懶惰,只計算滿足條件的相應(yīng)輸出變量, 而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一樣多。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/38661.html
摘要:兩者取長補(bǔ)短,所以深度學(xué)習(xí)框架在年,迎來了前后端開發(fā)的黃金時代。陳天奇在今年的中,總結(jié)了計算圖優(yōu)化的三個點依賴性剪枝分為前向傳播剪枝,例已知,,求反向傳播剪枝例,,求,根據(jù)用戶的求解需求,可以剪掉沒有求解的圖分支。 虛擬框架殺入從發(fā)現(xiàn)問題到解決問題半年前的這時候,暑假,我在SIAT MMLAB實習(xí)。看著同事一會兒跑Torch,一會兒跑MXNet,一會兒跑Theano。SIAT的服務(wù)器一般是不...
摘要:我認(rèn)為對機(jī)器學(xué)習(xí)開發(fā)者來說,是一個了不起的工具集。這個帖子發(fā)出后得到了很多機(jī)器學(xué)習(xí)研究者和開發(fā)者的關(guān)注,他們紛紛跟貼談?wù)撟约旱南敕ê徒?jīng)驗不只是關(guān)于和,討論中還涉及到更多工具。 Theano、TensorFlow、Torch、MXNet 再到近日比較熱門的 PyTorch 等等,深度學(xué)習(xí)框架之間的比較一直以來都是非常受人關(guān)注的熱點話題。機(jī)器之心也曾發(fā)表過多篇相關(guān)的介紹和對比文章,如《主流深度學(xué)...
摘要:另外,當(dāng)損失函數(shù)接近全局最小時,概率會增加。降低訓(xùn)練過程中的學(xué)習(xí)率。對抗樣本的訓(xùn)練據(jù)最近信息顯示,神經(jīng)網(wǎng)絡(luò)很容易被對抗樣本戲弄。使用高度正則化會有所幫助,但會影響判斷不含噪聲圖像的準(zhǔn)確性。 由 Yoshua Bengio、 Leon Bottou 等大神組成的講師團(tuán)奉獻(xiàn)了 10 天精彩的講座,劍橋大學(xué)自然語言處理與信息檢索研究組副研究員 Marek Rei 參加了本次課程,在本文中,他精煉地...
摘要:八月初,我有幸有機(jī)會參加了蒙特利爾深度學(xué)習(xí)暑期學(xué)校的課程,由最知名的神經(jīng)網(wǎng)絡(luò)研究人員組成的為期天的講座。另外,當(dāng)損失函數(shù)接近全局最小時,概率會增加。降低訓(xùn)練過程中的學(xué)習(xí)率。對抗樣本的訓(xùn)練據(jù)最近信息顯示,神經(jīng)網(wǎng)絡(luò)很容易被對抗樣本戲弄。 8月初的蒙特利爾深度學(xué)習(xí)暑期班,由Yoshua Bengio、 Leon Bottou等大神組成的講師團(tuán)奉獻(xiàn)了10天精彩的講座,劍橋大學(xué)自然語言處理與信息檢索研...
摘要:是怎么處理形狀信息在構(gòu)建圖的時候,不可能嚴(yán)格執(zhí)行變量的形狀。形狀推斷問題在圖中,將會傳播形狀的信息。以下情形是目前我們可以做到的當(dāng)調(diào)用時,你可以直接把形狀信息傳遞給。例如你可以在圖的任何位置使用添加位置信息。 Theano是怎么處理形狀信息(Shape Information) 在構(gòu)建圖的時候,不可能嚴(yán)格執(zhí)行Theano變量的形狀。因為在運行的時候,傳遞給Theano函數(shù)的某一參數(shù)的值...
閱讀 2186·2023-04-25 19:06
閱讀 1385·2021-11-17 09:33
閱讀 1772·2019-08-30 15:53
閱讀 2593·2019-08-30 14:20
閱讀 3552·2019-08-29 12:58
閱讀 3546·2019-08-26 13:27
閱讀 511·2019-08-26 12:23
閱讀 492·2019-08-26 12:22