如何評價 TensorFlow 2 0 Preview 的 API 設計?

時間 2021-05-07 04:46:26

1樓:linex

tensorflow推薦用keras的RNN代替dynamic_rnn,然而這兩個不是完全相容的?用dynamic_rnn可以展開的cell,RNN會報錯。。這是幾個意思啊。

再說我要是喜歡用keras,我幹嘛不直接用呢。。

2樓:Yulong

最近reddit有個熱帖,說tf的dropout layer出錯。

tf.keras Dropout layer is broken

簡單來說是在使用keras的Sequential model時,如果使用了deferred mode(我理解是不指定輸入形狀,自動推導出來),learning_phase這個變數設定錯誤,導致了dropout一直是test模式,所以出現了無論dropout ratio有多大,最後訓練結果都一樣的情況。 @機器之心也總結比較全面了在這裡

機器之心:TensorFlow bug激怒社群,使用者:我要用PyTorch了!

最後解決方案就是,在輸入層明確指明輸入性質就可以了。但是目前來看,官網https://www.

tensorflow.org/tutorial

s/ 還沒有改過來,而且其對應的notebooks依然出現錯誤。大家可以自己設定一下,將dropout ratio設為0.1或者0.

9,將Flatten裡面的input_shape引數去掉,會發現最後訓練結果一樣,顯然不合理。

對於keras這個框架,最初版是為了使用theano方便搞出來的,而且一開始也只是Franois Chollet的個人project。同時期還有lasagne,完全基於過程式寫法,我倒是覺得更符合tf的本質精神。要是說基於模組化寫法,deepmind還搞出了sonnet,清晰流暢度也不錯。

最主要的是keras封裝太多了。像上面這個問題,pytorch中明確將model.train(),model.

eval()暴露給你,讓你自己控制。而且這個對於batch norm來說也至關重要。對於初學者或者基本應用人員來說還好,但是對於前沿研究或者工業應用來說,keras封裝比較雞肋。

很多應用不存在簡單的compile, fit就可以解決的。而且作者本人比較硬核,經常在twitter上發表一些引起爭議言論,感覺這次tf2.0有點像被keras綁架了似的。

至於eager mode,new data pipeline這些,我沒用過。不過感覺上和pytorch chainer gluon這些動態框架越來越像了。目前來說tf主要優點是說便於工業級的模型部署,但是pytorch1.

0已經開始通過tracing jit和LibTorch的C++ API,支援python中寫模型,用其他語言封裝匯入了。像下面這個blog,作者就利用LibTorch的C++ API,利用nodejs對其封裝,可以達到如下效果

vartorchjs

=require

("./build/Release/torchjs"

);var

script_module

=new

torchjs

.ScriptModule

("resnet18_trace.pt"

);var

data

=torchjs

.ones([1

,3,224

,224

],false

);var

output

=script_module

.forward

(data

);PyTorch 1.0 tracing JIT and LibTorch C++ API to integrate PyTorch into NodeJS

所以tf的優勢不再那麼明顯,而易用性仍然沒有很好解決。擯棄過度迷信,用自己的感受去選擇。我在pytorch這裡等你來

相比Tensorflow2和PyTorch,TensorFlow1 x版本有什麼弊端?

tf1是靜態圖,tf2和pytorch主要是動態圖。靜態圖是指,網路在python端搭建好後再傳遞給到c 後端統一執行 動態圖則像python一樣,一句一句執行然後再反向。如你所說,從入門,簡單跑demo或者驗證idea的角度,動態圖非常方便。使用者就像python程式設計一樣方便。但是靜態圖也有它...

如何評價tensorflow模組過度keras化?

對於低階使用者自然會擁抱這個變化 對於高階使用者 slim sonnet tensorpack都在等著呢還是看個人習慣吧 總的來說tf對於高階api的處理還是比較清楚明白的要不然github上早就炸鍋了 在我看來keras.能其它模組更多也就是一種 風格 上的東西不必糾結 scott huang 我...

如何評價 TensorFlow 中文版?

張小梓 window下咋安裝呢用docker安裝不上啊翻牆也不行 錯誤如下 哪位能幫我看看嘛 think dell MINGW64 docker run http b.gcr.io tensorflow ten sorflow full Unable to find image http b.gcr...