在頂級(jí)機(jī)器學(xué)習(xí)開(kāi)源項(xiàng)目中,TensorFlow憑借著其完整性、易用性、活躍度以及76.2K的Star榮登榜首。作為最受歡迎的開(kāi)源機(jī)器學(xué)習(xí)項(xiàng)目之一,TensorFlow 1.4版本的最近更新有很大變化,新功能甚至是一些bug修復(fù)。
Jeff Dean在第一屆年度TensorFlow開(kāi)發(fā)者峰會(huì)上表示,當(dāng)谷歌開(kāi)源TensorFlow時(shí),希望為全球所有人建立一個(gè)機(jī)器學(xué)習(xí)平臺(tái)。他們?cè)趯?shí)現(xiàn)這一目標(biāo)方面做得很好,TensorFlow無(wú)疑是GitHub上最受歡迎的機(jī)器學(xué)習(xí)項(xiàng)目。
讓我們來(lái)看看1.4版本具備哪些新功能吧!
Keras
TensorFlow 1.4版本最大的變化之一就是新增了對(duì)流行機(jī)器學(xué)習(xí)框架Keras的支持。Keras已經(jīng)從核心包tf.keras中分離出來(lái),高級(jí)API旨在最大限度減少想法和工作實(shí)施之間的時(shí)間。它還與其他TensorFlow API(包括Estimator API)順利集成。由于Keras現(xiàn)在是TensorFlow核心的一部分,因此可以依靠其生產(chǎn)工作流程。(了解Keras,歡迎訪問(wèn)https://keras.io/#getting-started-30-seconds-to-keras)
數(shù)據(jù)集
這是另一個(gè)可以跳轉(zhuǎn)到核心軟件包的API:tf.data。Dataset API已經(jīng)同步到1.4版,并為Python生成器提供了額外支持。
未來(lái),TensorFlow團(tuán)隊(duì)強(qiáng)烈建議使用Dataset API為T(mén)ensorFlow模型創(chuàng)建輸入管道。因?yàn)樗峁┝吮扰f管道(如feed_dict或基于隊(duì)列的管道)更多的功能。它也有更好更全面的表現(xiàn)以及更簡(jiǎn)潔,更容易使用。
此外,TensorFlow團(tuán)隊(duì)明確表示,他們將重點(diǎn)關(guān)注Dataset API,以便將來(lái)的進(jìn)一步開(kāi)發(fā)而不是加速其他舊API。
Bug修復(fù)
現(xiàn)在默認(rèn)的構(gòu)建選項(xiàng)包括Google云存儲(chǔ)文件系統(tǒng),Amazon S3文件系統(tǒng)和Hadoop文件系統(tǒng)。
自定義操作庫(kù)必須鏈接到libtensorflow_framework.so(安裝在tf.sysconfig.get_lib())。
tf.nn.rnn_cell.DropoutWrapper現(xiàn)在更加注意移除LSTM狀態(tài)。具體來(lái)說(shuō),它不再放棄LSTMStateTuple的c(內(nèi)存)狀態(tài)。這個(gè)bug修復(fù)遵循已發(fā)表文獻(xiàn)的建議,但有一些更改。狀態(tài)行為可以通過(guò)新的dropout_state_filter_visitor參數(shù)來(lái)定制。
重大更改
tf.contrib.data.rejection_resample()函數(shù)的簽名已更改。現(xiàn)在它返回一個(gè)可以用作Dataset.apply()的參數(shù)的函數(shù)。
Removetf.contrib.data.Iterator.from_dataset()方法使用Dataset.make_initializable_iterator()代替。
刪除很少使用和不必要的tf.contrib.data.Iterator.dispose_op()。
已知問(wèn)題
Datset.from_generator()不支持Python 3中的Unicode字符串。在從生成器生成字符串之前,程序員需要將字符串轉(zhuǎn)換為字節(jié)對(duì)象。
安裝TensorFlow 1.4
TensorFlow 1.4版本現(xiàn)可以使用標(biāo)準(zhǔn)的pip安裝。程序員也可以在GitHub和TensorFlow網(wǎng)站上找到它。(Github開(kāi)源地址:https://github.com/tensorflow)