一個(gè)關(guān)于 TensorFlow 的悲劇故事
點(diǎn)擊關(guān)注公眾號(hào),Java干貨及時(shí)送達(dá)
點(diǎn)擊上方?Java技術(shù)迷,選擇?設(shè)為星標(biāo)
作者 |?Zahar?Chikishev
譯者 | 彎月
出品 | CSDN(ID:CSDNnews)

安裝
Eagerexecution 就是一個(gè)騙局

tf.data.DataSetAPI 更是一團(tuán)糟
API重復(fù)
1、tf.nn.conv2d
2、tf.keras.layers.Conv2D
3、tf.compat.v1.layers.Conv2D
4、tf.compat.v1.layers.conv2d
5、tf.layers.Conv2D
6、tf.raw_ops.Conv2D
7、tf.contrib.slim.conv2d
開發(fā)的各種不嚴(yán)謹(jǐn)
ImageDataGenerator是 TensorFlow 的增強(qiáng)庫(kù),與所有現(xiàn)代庫(kù)一樣,不允許局部生成隨機(jī)種子。相反,它使用全局 numpy.random.seed()。使用全局種子會(huì)導(dǎo)致可復(fù)現(xiàn)實(shí)驗(yàn)的開發(fā)變得異常復(fù)雜,尤其是在多線程的情況下。 Sequence 數(shù)據(jù) API 方法 on_epoch_end() 沒有使用 epoch 作為參數(shù)。在幾個(gè)版本中,它甚至沒有被調(diào)用,因此相比之下,缺少的參數(shù)似乎只是一個(gè)小問題。通過這個(gè)例子,我們也可以看出 TensorFlow 的測(cè)試覆蓋率(遠(yuǎn)低于應(yīng)有水平)。 TF 中的 GPU 內(nèi)存管理很糟糕。首先,無論實(shí)際模型大小如何,默認(rèn)情況下都會(huì)在模型初始化時(shí)占用所有內(nèi)存。幸運(yùn)的是,有一個(gè)配置選項(xiàng)允許分配的內(nèi)存按需遞增。但接下來還有一個(gè)大問題:分配的 GPU 內(nèi)存在使用后無法釋放,釋放內(nèi)存的唯一方法是殺死進(jìn)程。 TF 訓(xùn)練日志總是包含幾個(gè)模糊的警告消息。根據(jù)版本不同,警告也會(huì)不同。我個(gè)人不喜歡日志中出現(xiàn)警告消息,我會(huì)想辦法解決掉。但我無法解決掉 TF 訓(xùn)練日志中的警告,因?yàn)橥ǔJ且粋€(gè) TF 函數(shù)抱怨另一個(gè) TF 函數(shù)。這些函數(shù)真的應(yīng)該選擇其他的交流方式。
結(jié)論
版本
往 期 推 薦
1、靈魂一問:你的登錄接口真的安全嗎? 2、HashMap 中這些設(shè)計(jì),絕了~ 3、在 IntelliJ IDEA 中這樣使用 Git,賊方便了! 4、計(jì)算機(jī)時(shí)間到底是怎么來的?程序員必看的時(shí)間知識(shí)! 5、這些IDEA的優(yōu)化設(shè)置趕緊安排起來,效率提升杠杠的! 6、21 款 yyds 的 IDEA插件 7、真香!用 IDEA 神器看源碼,效率真高! 點(diǎn)分享
點(diǎn)收藏
點(diǎn)點(diǎn)贊
點(diǎn)在看
評(píng)論
圖片
表情





