文章作者:Tyan
博客:noahsnail.com
TensorFlow is an Open Source Software Library for Machine Intelligence
TensorFlow是一個(gè)關(guān)于機(jī)器智能的開源軟件庫
About TensorFlow
TensorFlow? is an open source software library for numerical computation using data flow graphs. Nodes in the graph represent mathematical operations, while the graph edges represent the multidimensional data arrays (tensors) communicated between them. The flexible architecture allows you to deploy computation to one or more CPUs or GPUs in a desktop, server, or mobile device with a single API. TensorFlow was originally developed by researchers and engineers working on the Google Brain Team within Google's Machine Intelligence research organization for the purposes of conducting machine learning and deep neural networks research, but the system is general enough to be applicable in a wide variety of other domains as well.
關(guān)于TensorFlow
TensorFlow?是一個(gè)用數(shù)據(jù)流圖進(jìn)行數(shù)值計(jì)算的開源軟件庫卜范。數(shù)據(jù)流圖中的結(jié)點(diǎn)表示數(shù)學(xué)運(yùn)算惭墓,數(shù)據(jù)流圖中的邊表示多維數(shù)據(jù)數(shù)組(張量)之間的數(shù)據(jù)交互绍傲。這個(gè)靈活的結(jié)構(gòu)讓你可以通過單獨(dú)的API將計(jì)算部署在一個(gè)或多個(gè)CPU或GPU上芥驳,這些CPU或GPU可以位于桌面端、服務(wù)器或移動(dòng)設(shè)備上。TensorFlow最初是由Google大腦團(tuán)隊(duì)中的研究員和工程師開發(fā)的,Google大腦團(tuán)隊(duì)在Google的機(jī)器智能研究組織中主要是進(jìn)行機(jī)器學(xué)習(xí)和深度神經(jīng)網(wǎng)絡(luò)研究的,TensorFlow系統(tǒng)具有足夠的通用性仔引,也可以應(yīng)用在許多其它的領(lǐng)域扔仓。
What is a Data Flow Graph?
Data flow graphs describe mathematical computation with a directed graph of nodes & edges. Nodes typically implement mathematical operations, but can also represent endpoints to feed in data, push out results, or read/write persistent variables. Edges describe the input/output relationships between nodes. These data edges carry dynamically-sized multidimensional data arrays, or tensors. The flow of tensors through the graph is where TensorFlow gets its name. Nodes are assigned to computational devices and execute asynchronously and in parallel once all the tensors on their incoming edges becomes available.
什么是數(shù)據(jù)流圖?
數(shù)據(jù)流圖通過有向圖的結(jié)點(diǎn)和邊來描述數(shù)學(xué)計(jì)算咖耘。結(jié)點(diǎn)通常實(shí)現(xiàn)數(shù)學(xué)運(yùn)算翘簇,但也能表示端點(diǎn)輸入數(shù)據(jù),推出結(jié)果鲤看,或讀/寫持續(xù)的變量缘揪。邊表示結(jié)點(diǎn)之間的輸入/輸出關(guān)系。這些數(shù)據(jù)邊攜帶動(dòng)態(tài)大小的多維數(shù)據(jù)數(shù)組或張量义桂。圖中的張量流動(dòng)是TensorFlow名字的來源找筝。結(jié)點(diǎn)被分配到計(jì)算設(shè)備上,以異步方式執(zhí)行慷吊,一旦結(jié)點(diǎn)輸入邊的所有張量可用便并行執(zhí)行袖裕。
TensorFlow Features
TensorFlow的特性
Deep Flexibility
TensorFlow isn't a rigid neural networks library. If you can express your computation as a data flow graph, you can use TensorFlow. You construct the graph, and you write the inner loop that drives computation. We provide helpful tools to assemble subgraphs common in neural networks, but users can write their own higher-level libraries on top of TensorFlow. Defining handy new compositions of operators is as easy as writing a Python function and costs you nothing in performance. And if you don't see the low-level data operator you need, write a bit of C++ to add a new one.
深度靈活性
TensorFlow不是一個(gè)死板的神經(jīng)網(wǎng)絡(luò)庫。如果你能將你的計(jì)算表示成數(shù)據(jù)流圖溉瓶,你就可以使用TensorFlow急鳄。你要構(gòu)建數(shù)據(jù)流圖,并且編寫驅(qū)動(dòng)計(jì)算的內(nèi)部循環(huán)堰酿。我們將提供幫助工具來裝配神經(jīng)網(wǎng)絡(luò)中的常見子圖疾宏,但用戶要能編寫在TensorFlow之上的他們自己的更高層次的庫。定義方便的操作符新組合就像定義一個(gè)Python函數(shù)那樣容易触创,在性能上不會(huì)有任何損失坎藐。如果你不想看你需要的低層操作符,你可以寫點(diǎn)C++添加一個(gè)新的操作符哼绑。
True Portability
TensorFlow runs on CPUs or GPUs, and on desktop, server, or mobile computing platforms. Want to play around with a machine learning idea on your laptop without need of any special hardware? TensorFlow has you covered. Ready to scale-up and train that model faster on GPUs with no code changes? TensorFlow has you covered. Want to deploy that trained model on mobile as part of your product? TensorFlow has you covered. Changed your mind and want to run the model as a service in the cloud? Containerize with Docker and TensorFlow just works.
真正的可移植性
TensorFlow運(yùn)行在CPU或GPU上岩馍,在桌面端,服務(wù)器或移動(dòng)計(jì)算平臺(tái)上抖韩。想在筆記本上實(shí)現(xiàn)你的機(jī)器學(xué)習(xí)想法而不需要任何特定的硬件蛀恩?TensorFlow可以幫你實(shí)現(xiàn)。準(zhǔn)備擴(kuò)大并在GPU上更快的訓(xùn)練模型而不改變?nèi)魏谓Y(jié)點(diǎn)茂浮?TensorFlow可以幫你實(shí)現(xiàn)双谆。想在移動(dòng)端部署訓(xùn)練的模型作為產(chǎn)品中的一部分?TensorFlow可以幫你實(shí)現(xiàn)席揽。改變你的想法并且想在云上運(yùn)行模型來作為服務(wù)佃乘?用Docker進(jìn)行容器化,TensorFlow能很好的工作驹尼。
Connect Research and Production
Gone are the days when moving a machine learning idea from research to product require a major rewrite. At Google, research scientists experiment with new algorithms in TensorFlow, and product teams use TensorFlow to train and serve models live to real customers. Using TensorFlow allows industrial researchers to push ideas to products faster, and allows academic researchers to share code more directly and with greater scientific reproducibility.
連接研究與產(chǎn)品
當(dāng)將機(jī)器學(xué)習(xí)想法從研究轉(zhuǎn)化成產(chǎn)品時(shí)需要進(jìn)行主要的重寫的日子已經(jīng)過去了。在Google庞呕,研究科學(xué)家在TensorFlow中進(jìn)行新算法的實(shí)驗(yàn)新翎,產(chǎn)品團(tuán)隊(duì)用TensorFlow來訓(xùn)練模型并實(shí)時(shí)的使用模型為真實(shí)的消費(fèi)者服務(wù)程帕。使用TensorFlow可以讓產(chǎn)品研究人員更快的將想法變?yōu)楫a(chǎn)品,可以讓學(xué)術(shù)研究人員更直接的共享代碼地啰,具有更大的科學(xué)再現(xiàn)性愁拭。
Auto-Differentiation
Gradient based machine learning algorithms will benefit from TensorFlow's automatic differentiation capabilities. As a TensorFlow user, you define the computational architecture of your predictive model, combine that with your objective function, and just add data -- TensorFlow handles computing the derivatives for you. Computing the derivative of some values w.r.t. other values in the model just extends your graph, so you can always see exactly what's going on.
自動(dòng)微分
基于梯度的機(jī)器學(xué)習(xí)算法將能從TensorFlow的自動(dòng)微分能力中受益。作為一個(gè)TensorFlow用戶亏吝,你可以定義你自己的預(yù)測(cè)模型的計(jì)算結(jié)構(gòu)岭埠,結(jié)合你的目標(biāo)函數(shù),只需要添加數(shù)據(jù)——TensorFlow為你計(jì)算導(dǎo)數(shù)蔚鸥。計(jì)算一些值的導(dǎo)數(shù)惜论,而模型中的其它值只是擴(kuò)展你的圖,因此你總是能確切的看到發(fā)生了什么止喷。
Language Options
TensorFlow comes with an easy to use Python interface and a no-nonsense C++ interface to build and execute your computational graphs. Write stand-alone TensorFlow Python or C++ programs, or try things out in an interactive TensorFlow iPython notebook where you can keep notes, code, and visualizations logically grouped. This is just the start though -- we’re hoping to entice you to contribute interfaces to your favorite language -- be it Lua, JavaScript, or R.
語言選擇
TensorFlow附帶很容易使用的Python接口和使用的C++接口來構(gòu)建并執(zhí)行你的計(jì)算圖馆类。在交互的TensorFlow iPython筆記本中編寫?yīng)毩⒌腡ensorFlow Python或C++程序,或嘗試一些東西弹谁,iPython筆記本可以存儲(chǔ)筆記乾巧,代碼和邏輯分組可視化。然而這僅僅只是一個(gè)開始——我們希望吸引你貢獻(xiàn)你最愛的語言的接口——它可以是Lua预愤,Javascript或R沟于。
Maximize Performance
Want to use every ounce of muscle in that workstation with 32 CPU cores and 4 GPU cards? With first-class support for threads, queues, and asynchronous computation, TensorFlow allows you to make the most of your available hardware. Freely assign compute elements of your TensorFlow graph to different devices, and let TensorFlow handle the copies.
最大化性能
想要充分利用具有32核CPU和4塊GPU的工作站的性能嗎?TensorFlow對(duì)線程植康、隊(duì)列和異步計(jì)算具有一流的支持旷太,TensorFlow可以讓你最大程度的利用你的可用硬件,可以自由的將你的TensorFlow圖中計(jì)算元素分配到不同的設(shè)備上向图,讓TensorFlow來處理副本泳秀。
Who Can Use TensorFlow?
TensorFlow is for everyone. It's for students, researchers, hobbyists, hackers, engineers, developers, inventors and innovators and is being open sourced under the Apache 2.0 open source license.
TensorFlow is not complete; it is intended to be built upon and extended. We have made an initial release of the source code, and continue to work actively to make it better. We hope to build an active open source community that drives the future of this library, both by providing feedback and by actively contributing to the source code.
誰可以使用TensorFlow?
TensorFlow是給每一個(gè)人的榄攀。它是給學(xué)生嗜傅、研究人員、業(yè)余愛好者檩赢、黑客吕嘀、工程師、開發(fā)人員贞瞒、發(fā)明家和創(chuàng)新者的偶房,它是根據(jù)Apache 2.0開源協(xié)議開源的。
TensorFlow不是完整的军浆;它將要建立和擴(kuò)展棕洋。我們已經(jīng)制作了源代碼的初始版本,會(huì)繼續(xù)積極的工作使它更好乒融。我們希望建立一個(gè)主動(dòng)的開源社區(qū)來推動(dòng)這個(gè)庫的未來掰盘,提供反饋并且積極的貢獻(xiàn)源代碼摄悯。
Why Did Google Open Source This?
If TensorFlow is so great, why open source it rather than keep it proprietary? The answer is simpler than you might think: We believe that machine learning is a key ingredient to the innovative products and technologies of the future. Research in this area is global and growing fast, but lacks standard tools. By sharing what we believe to be one of the best machine learning toolboxes in the world, we hope to create an open standard for exchanging research ideas and putting machine learning in products. Google engineers really do use TensorFlow in user-facing products and services, and our research group intends to share TensorFlow implementations along side many of our research publications.
為什么Google開源TensorFlow?
如果TensorFlow是如此之大愧捕,為什么對(duì)它開源而不是保留它的所有權(quán)奢驯?回答可能比你想象的簡(jiǎn)單:我們相信機(jī)器學(xué)習(xí)是將來產(chǎn)品創(chuàng)新和技術(shù)創(chuàng)新的一個(gè)關(guān)鍵要素。這個(gè)領(lǐng)域的研究是全球性的并且發(fā)展迅速次绘,但是缺少標(biāo)準(zhǔn)的工具瘪阁。通過分享TensorFow,我們認(rèn)為它是世界上最好的機(jī)器學(xué)習(xí)工具之一邮偎,我們希望創(chuàng)建一個(gè)開放的標(biāo)準(zhǔn)來交流研究想法并把機(jī)器學(xué)習(xí)應(yīng)用到產(chǎn)品中管跺。Google工程師在面向用戶的產(chǎn)品和服務(wù)中真正的在使用TensorFlow,我們的研究組計(jì)劃與我們的許多研究出版物一起共享TensorFlow的實(shí)現(xiàn)钢猛。