Facebook AI 賈揚清:AI,從大資料問題演進到高效能運算問題

ofollow,noindex" target="_blank">Robinly 原創
Robinly www.robin.ly
Facebook AI 賈揚清:AI,從大資料問題演進到高效能運算問題
Robin.ly 是一個全新的視訊內容平臺,旨在為廣大工程師和研究人員提高對商業,創業,投資,領導力的理解。第二期是Robin.ly線下活動,創始人Alex Ren 採訪Caffe作者、Facebook Director of AI Infrastracture 賈揚清博士,並於場下互動問答。 以下為採訪實錄摘要,原始視訊請訪問www.robin.ly 完整視訊請在文末掃二維碼關注
Alex: 最早的時候聽說Caffe是你的一個side project,不是你論文的主要內容。當時開發Caffe的初衷是什麼?中間經歷過什麼過程,可以給大家講一下嗎?
Yangqing:主要的原因也是因為AI research,以前researcher寫code,像Matlab之類的,很難reproduce。在2011年,2012年的時候大家還沒有太強的reproduceable research的這樣的想法,所以在AlexNet的paper出來之後呢,大家都沒辦法有一個比較reliable的平臺,來實現它的結果。當時我們在Berkeley希望用Caffe來推動獨立研究,所以當時內部開始試圖來呈現它的結果,相當是一個於side results。
Alex:整個的過程你大概做了多久?
Yangqing :兩個月吧!
Alex: 那後來到了Facebook之後繼續做Caffe你有遇到什麼新的問題嗎?
Yangqing: Caffe的話因為已經六年多了,所以基本上當時有很多歷史遺留問題。最開始做Caffe的時候大家都是照著computer vision的模式來做的,所以很多design等等都是在CV方面比較make sense,在NLP等等其他地方都相對比較難一些。當時整個modular 的design等等還沒有太清楚。Facebook在15年的時候其實很多產品裡都還在用Caffe的runtime來部署,但是後來整個flexibility都會有些問題,所以這也是我們後來寫Caffe2跟PyTorch的原因。
Alex: 前段時間你們宣佈了PyTorch1.0的釋出,我記得Caffe主要是做production的,而PyTorch主要是research這個階段,當你把這它們合併在一起的時候,是企圖解決什麼問題呢?
Yangqing: 這個我們目前也是一個比較explorative的一個方向,包括我覺得整個行業大家都在往這個方向走。比如TensorFlow在TF2.0的announcement裡面提到了eager mode,或者說是imperative mode。最大的一個挑戰基本上是research和production,這兩個 fundamentally是兩個不太一樣的priority。Research需要flexibility,一切都應該可以調;而Production是要performance的時候,最後總是會需要有一些相對比較flexible的地方。所以很多時候都是一個看具體的實際應用然後來consciously make some compromises。就比如說像computer vision也就是計算機視覺,包括像推薦系統這種實在是太大規模,even1% or 2% accuracy matters,在這種情況下我們會需要犧牲一些flexibility,來更加註重在performance上邊。像一些新的應用比如說像自然語言處理,機器翻譯等,可能對於resource的要求沒有那麼高。我們可以sacrifice比如說10%的performance,對於modeliteration的要求比較高,所以這個就更加偏向於research這邊。
賈揚清談 PyTorch與Caffe的合併
Alex:上次我跟你聊,你說到你比較關注硬體方面的發展。我想知道你的角度是什麼,是software hardware co-design嗎?
Yangqing: 更加偏向於software hardware co-design吧。CPU和GPU它的好處不光是在硬體上,而且是在軟體上。最可怕的事情是什麼呢,就是說我們知道它很好,但是最後我們大家發現說,沒人能在上邊寫程式。Cause it’s too opaque。NVIDIA非常成功的原因是因為,我可以隨便找一個人,我可以花半天的時間,他就可以開始寫CUDAcode,只要他懂C++,我就能讓他寫CUDA code。NVIDIA,從04年CUDA出來以後到今天,NVIDIA把它整個software layer做的如此之好,使得它的入門門檻很低。如果我突然來一個FPGA,沒有一個月的時間,沒人能在上邊寫程式,所以說新的硬體最大的一個挑戰不光是在硬體上而且是在軟體上。這也是為什麼我對軟硬體協同設計很感興趣。
Alex: 也就是說它搭建了一個eco-system,給developer們有更方便的方法去用,對吧?(對!)然後,我想問一個其他方面的問題。Facebook也是少有的做比較頂尖的AI research的一個公司,你在裡邊帶領AI infrastructure這塊的一些研究。我知道Facebook,Google這樣的公司呢,你發現它有個特點,就是它有很多大牛都在一起工作,對吧?(嗯。)而很多別的公司經常有這種一山不能容二虎這種現象。我不知道你在這方面有什麼體會,在這種環境裡,我想有些人可能也在創業,或者在自己公司裡lead research,你對他們有什麼心得可以分享?是什麼樣的文化使得Facebook在research這方面有個cutting-edge research的結果?
Yangqing: 我覺得更多的算是計算機領域的文化吧,比如說大家最近經常能夠聽到的訊息比如像金融這個領域目前逐漸的越來越難吸引到頂尖的人才。一定的原因就是因為,整個領域太封閉了,誰都不知道其他人在做什麼。那麼這個時候就有很簡單的一個事,就是我們有句老話說的,叫獨木難支嘛,如果一個領域大家都在鑽著自己做自己的事情的話,有很多collective wisdom就很難被激發出來。而計算機這個領域的話,大家很多的想法,第一是說開源,第二是open research,第三是非常頻繁的交流。有很多的平臺本身就是,像我們用的Reddit啊,Hacker news都是一個很好的平臺,包括Robin.ly等等,所以我覺得整個這樣的一個文化使大家可以更快的把這個蛋糕做大,等到蛋糕做大了之後,誰都能從中獲益。
Alex: 謝謝你提到了我們!你提到了Reddit,我看到了你Reddit上有篇評論,裡邊提了一個詞叫unframework,因為當時是Caffe 2.0的時候你提的,能給我們解釋一下是什麼意思嗎?
Yangqing:Unframework的idea基本上就是說以前大家在做AI的software的時候就是說,一個framework就什麼都有嘛,對吧。當時比如說六年前大家說Caffe,Torch跟Theano,反正就是一個framework,你在裡頭或者外頭想做什麼也很難,就是說它是一整個kind of crisp。現在的話比如說,像我們有不同的硬體出來,有TPU,比如說我們有visualization等等,逐漸的就有點類似於一個unit operation system,就是說我做完一個operation system的時候不是說所有的差都完了我可以在上面裝app,我可以在上面裝extension了。所以就是說發展到今天,framework是一個很小的一部分,外面有很多其他各種譬如說硬體啊,visualization啊等等。舉個例子比如說PyTorch目前我們在跟Google合作來一起做一個Tensorboard這樣的,做一個a very nicevisualization tool for AI,就是不光限制在一個framework,而是說build different components,get components clip,用各種各樣的方式plug起來。
Alex: 明白。那我問一下我最後一個問題吧,就是你當初也是典型的engineering research出來的,現在去lead的組織,有很多工程師。你在softskills這塊,你覺得在這個過程中你有些什麼收穫,給大家有什麼建議?
Yangqing: 這方面的話,可能一個人做事情和一群人做事情還是有一些區別的。第一個是我們所謂叫innovator’s dilemma:一開始大家會覺得這個team做的太慢了,這事兒我一個人能夠兩個小時就能搞定的。為什麼這個team一天還沒搞定。大家有時候怎麼樣來properly set expectation,因為自己一個人的bandwidth是有限的嘛,怎麼樣來幫助整個team能夠合作把這個事情往前推。可能在單個的事情上efficiency不好但是在整個大的全組project上能夠更加accelerate一些;第二個是怎麼樣grow people,就是create space for people to make mistakes,怎麼樣能讓大家來逐漸take ownership。第三個是管理層面提到的give away Legos,就是說focus在別人需要你的地方而不是自己做的最好的地方。我覺得在做technical management或者technical leadership的這塊兒其實還是挺有意思的。
Alex: 接下來歡迎場下同學提問。
Alex 介紹Robin.ly平臺
Q1:賈博士你好,我來自OPPO美國研究所。有個問題想請教你,前段時間有一個語言叫Julia橫空出世,號稱集百家之長,所以我想問問你對這個語言有什麼看法,有沒有打算基於Julia這個語言建立一個framework。
Yangqing: 我們其實嘗試過很多各種各樣的語言,所以說我不太好評論。Julia的好處是它對於low level language migration非常好,比如大家如果用Python的話,可能你在Python裡寫for loop, performance非常差。Julia對這個low level language binding的performance一直都是挺不錯的。我們考慮過很多的language,包括我們自己Facebook以前有Torch,Torch是基於Lua的,我們最後發現了一點就是說,it’s not about the language itself,it’s about the eco-system。Python平心而論很多人都說Python是一個很爛的語言,但是它有社群,它的整個的eco-system非常好,如果我要裝Python,我有Anaconda;如果我要用Python visualization,我有Matplotlib;如果我要有numerical computation我有NumPy和SciPy,如果我要做影象處理,我有Scikit-image。 所以說最後我們發現這個eco-system很重要,當年Luatorch遇到的很大的一個瓶頸是沒有人知道怎麼寫Lua。大家都很懶,我也很懶,我不想為了學一個新語言而學一個新語言,whatever works for me。所以說這個時候Python作為一個很不錯的compromise,似乎是目前整個industry大家比較common的選擇。
Q2:你好,我有一個問題: PyTorch是一個使用者很多的一個系統,還有一些使用者比較多的系統就是TensorFlow,背後都有一個很大的community,有很大的公司在支援,但是其實你剛才也提到了就是TensorFlow也出了這個eager mode大家需求也都一樣,都有這個research developability或者interactivity這方面的需求,deployment都有scalability或者performance這方面的需求。那最後有沒有這兩個系統或者說市面上所有系統合併到一起的可能,從business的角度來說什麼樣的條件會造成這種合併。
Yangqing: 我問你這樣一個小問題。我們在用Uber,Gmail,或者calendar的時候,我們會擔心是在Android上面,還是iOS上面嗎?就是說essentially,到最後 product這邊, as long as we have a platform for us to run models , it's probably gonna be not different. 對於uber來說,它可能並不擔心Ios或者Android,假如說他們能合併,那這是一個最省事兒的事兒,那將來他們就不用寫app寫兩套了。但是it's not a deal breaker。 然後從framework的角度來說,我覺得一方面大家開玩笑說 There's a war on frameworks, 對吧!從當年相對比較academic的Caffe 跟Torch 跟Theano 這三家,到現在Google的TensorFlow,Amazon的MXNet,Facebook的PyTorch,Microsoft的CNTK等等。到最後大家發現這幫framework writter其實就是大家天天在那聊天說,我們design應該怎麼走啊等等。到最後大家的idea都會逐漸converge起來。所以我個人不會太擔心最後 which framework wins on framework, or which framework migrates which framework. 最後的idea都差不多。
Q3: 我想問一個比較抽象的問題,看我能不能解釋清楚了,現在這些framework,這些工具非常的成熟了,非常完善,這必然是件好事。但從另一個角度來講他對computer vision researcher和graduate student的impact是非常不同的。比如說五年前/八年前你可以design自己的feature,做一個minimization variation whatever graphical model你可以發paper,這個玩法和現在必然不同,現在你要train model,你要自己想辦法做一些新的architecture或者其它一些比較有竅門的東西才能發paper。那比如說十年之後你再去Berkeley讀一個computervision PhD從頭開始的話,這個玩法是什麼呀。就比如說AutoML這種東西都出來了,很多東西可能就被取代了,就不需要了,那怎麼玩?
Yangqing:大家還有另外的一個相關的comment就是說目前這個整個做deeplearning training需要的資源越來越多,學校到底怎麼辦對吧,誰也沒有一萬個GPU來train Auto ML model,那這個大家這個Auto MLresearch是怎麼做的呢?我覺得可能第一個比較passive aggressive的answer是come to industry labs,and you can just get resources,但這是一個玩笑話,另外一方面是我覺得就是比如說像12年的時候大家都覺得Google的infinite resource,大家deep learning怎麼做最後Alex做的方法就是2個GPU,我當時在Google實習,對我們來說還挺surprising的,就是說其實computation resource isn’t the wining factor。其實學術界的一個好處是,I naturally create一個constrain是說,you have to be efficient。我現在個人是在工業界,工業界有的時候大家被這些resource給寵壞了,就是說學術界其實一直都還是source of the new information and new ideas。很多時候可能模型並不一定需要太大,但硬懟performance或者硬懟containerresource大家在grad student這個地方就別做了,對吧。然後,挺有意思的,能夠做的方向就是howwe actually basically just like look at the current models and then do newideas,Berkeley去年做了很有意思的一個paper叫CycleGAN,怎麼樣在generative advisorynetwork上面做一些新的工作。這些方面可能不需要太多的resource,包括是一兩個CPU就差不多夠了。所以可能就說回去再讀PhD的話可能做法還是差不多的,就是看看最近新的idea在什麼方向,然後更多的是iterate on ideas, not iterate on systems。
活動現場,賈揚清在左,Alex在右
Q4: 我有一個follow up的一個問題就是剛才你說很多algorithm需要特別大的一個計算資源,從硬體的發展上看你有看到一個趨勢是說,硬體快速增長,越來越便宜,能力越來越強,能夠讓更多的人能夠訓練AlphaGo這種algorithm,你能看到這種趨勢嗎?
Yangqing: 硬體這方面again,I’m not an expert。David Patterson在最近他的talk裡邊提到Moore’s law is ending,is it a badthing,or is it a good thing?I actually say this is the golden age for hardware because a lot of things arebeing collaboratively redesigning, and iterating. And domain specific architecture is becoming the next new exciting idea. 所以我覺得更多是硬體這邊會朝向更緊密地跟軟體結合的這個方向。Imagine就是現在我們在寫軟體的時候,我們現在調我們的軟體就不用we don’t give a damn about what kind of software we wrote yesterday,we can just change it。硬體這邊的話還是大家又一點自己的constrain,硬體這邊大家還是有一些follow一個一年或者兩年的cycle。Imagine如果我們有一些新的方法能夠,像我們做 throw away software 這樣來做throw away hardware,假如我們每六個月就可以iterate一個硬體的version,這個時候對於整個硬體的industry會是一個挺新的一個paradigm,我自己不知道具體怎麼做但是我覺得這方面從軟體的角度來說我們希望有更多的硬體來支援計算,從硬體角度來說就是我覺得最近有好多的機會。
Q5: 首先謝謝賈博士speech 非常好,我有兩個問題是關於OpenCL和 CUDA的問題。第二個問題是,OpenCL 和CUDA是不是算你們framework裡的一部分。第二個問題是,你們用沒用OpenCL,因為Intel或者amd他們是用OpenCL或者CUDA做他們的product,你們怎麼看這兩個產品之間的功能?
Yangqing: CUDA我們一般不會把他們看成我們framework的一部分, 我們更多的是把它會看成C或者C++這樣的一個programming language。 用CUDA的主要原因是。NVidia對於CUDA的support非常好。我們以前在四五年前上,Caffe 上或者Torch上我們都有試過從OpenCL import,但其實很有意思的一個事兒是,目前好像沒有太多vendor在熱心推OpenCL這個方向,然後自從走了Metal的路後,對OpenCL 都不是太熱心。Google這邊在Android上面的話,更加會偏向於RenderScript 和 Vulkan。我目前也不是太清楚OpenCL 的eco-system有多大,目前的話就是說從framework 完整的角度來說, 我們沒有太強的熱心去做OpenCL 方向的工作,AMD最近的話,也差不多有一點moving away from OpenCL,and do HIP(Heterogeneous-compute Interface for Portability). 所以HIP這邊可能是一個挺有意思的方向。對於in general怎麼樣來做一個parallel computation的abstraction,這方面是一個挺大的問題,也是一個挺有意思的方向,但是目前我們沒有找到太好的方向。我們最近有一個開源的project叫Glow,試圖來解決對accelerator,對special accelerator這方面,怎麼樣來幫助硬體的vendordesign nicer,design a completion stack,但是我們也沒有考慮怎樣unifyOpenCL,OpenGL,HIP,Vulkan,Metal,等等其他一些programming languages。
Q6: 我有一個關於硬體平臺的問題,你提到軟硬體一定要結合,才能發展。那你現在覺得從production eco-system 上看,有哪些地方軟硬體結合做的還不是很好?
Yangqing:In general的話,目前的話是說,在production應用上,軟硬體結合的只有CPU, GPU。所以說這個問題還是,除了google上可能有更多的insight之外,大家都還在探索的一個階段。CPU 跟 GPU 差不多都已經足夠well known了。最大的挑戰可能就是說,怎麼樣來manage heterogeneous computation,因為在做prediction service的時候,傳統CPU這邊的話,整個架構都很homogeneous。我可以在productionlogic thread上來做computation也沒什麼問題。然後一旦走向GPU,或者accelerator之後,就會需要有更加desegregatedservice。比如prediction/computation stack是一個pool,然後production logic會是另一個pool。那麼在這樣的一個setting上面,怎麼樣把中間整個connection結合起來,是不是network bandwidth會變成一個新的bottleneck。整個latency或者怎麼樣來manage computationpool 然後capacity怎麼樣最後balancing。 這些傳統的問題都會重新emerge起來。這方面還是需要一些early analysis。
Q7: 因為你特別focus在AI infrastructure的部分,剛剛討論很多問題,不管是hardwarespecialization,或者contrast between compilation andinterprerator,事實上,不管是research/industry,事實上已經repeat很多次。所以我想請教你,以AI application,它present unique opportunity and change,for the system of hardware and software. How do you see the main difference?
Yangqing: 我覺得其實您說的特別對。有很多提到的問題是很傳統的software engineer這方面的問題。AI 這方面的問題,其實是大家逐漸意識到這件事 it's not a big data problem but an HPC(High-performance computing) problem,以前大家基本是說,從十幾年前開始,HPC,或者segmentationbig data,internet開始分道揚鑣的感覺,一方面internetcompany,一方面所有的national lab。HPC這邊的情況,就會focus在 computation efficiency, high connectivity。AI從現在來看的話,AI 非常強力的需要HPC這方面的 background,我們經常開玩笑說,MPA is fight。所以這方面有一些interesting opportunities。Essentially,HPC 跟big Data 在solve kind of different problems,AI 基本上就是we need to solve this and that.
Q: 這也許就是為什麼NVidia可以很快的把CUDA拿來support AI的部分. CUDA是非常,如果我們看CUDA的話,像現在一些,像NCCL這樣的communicationlibrary的話,有非常強的HPC的烙印在裡頭 ,it's kinda like MPI replica.
Q8: 你們Facebook在做HPC方面的硬體,既然提到了HPC。我是做compiler的,我做runtime。看現在的模型就覺得,這不是我十幾年前做的HPC?我是spec出身的,全是computation,都是loop,做了很多loop的優化。因為這種東西,特別適合做那種非常傻的,只會計算,有大量cache的architecture,非常好, GPU就是perfect match。我在想說這個不難,說老實話。NVidia能這麼快幾年發展起來,通用CPU比這個複雜多了。我們那個branch prediction 那個面積太複雜了,但是Intel那個branch prediction,ARM他們未必能做那麼好。它這麼多年想在CPU這個application上趕上Intel前幾年做的那個,這還差了好多年了。但是GPU就很快catch up了。我就想,人人都能做。那 Facebook在做什麼呢?當然你可以不用講,說 買GPU就好了
Yangqing:Facebook更多的還是一個軟體公司,我們在做一些軟體設計方面的design等等,我們也在和很多硬體的vendor partner在合作。包括比如說Glow 是怎麼樣來幫助build 一個 softwarestack,okular compiler stack。包括像我們做的Onnx,希望能夠向硬體的partner 提供更多的insight, whatkind of models do we care about today. 然後從CPU優化上的話,我們其實有一個挺強的organization的團隊,在做類似MKL,或者MKL-DNN這樣的優化。所以 Why don't you talk to us?
Alex:由於時間原因,我們今天的問答就到底為止,很榮幸今天能請到賈博士來和我們分享他在Facebook的工作,對AI的看法,對未來行業的想法。謝謝賈博士今天的分享!
想看更多訪談或參與我們的線下活動,請掃二維碼關注我們的網站和微信訂閱號(Robinly):
Robinly內容團隊座標矽谷,從創業、領導力和人工智慧三個角度去剖析成功創業者、高科技領導者、人工智慧科學家和知名投資人的職業養成過程和他們對於這些領域的觀點,我們力求追本溯源,為廣大工程師、研究者提供一手的職業學習內容。
理論 Facebook 賈揚清 Caffe PyTorch Julia TensorFlow NLP
相關資料
AlexNet
AlexNet是一個卷積神經網路的名字,最初是與CUDA一起使用GPU支援執行的,AlexNet是2012年ImageNet競賽冠軍獲得者Alex Krizhevsky設計的。該網路達錯誤率大大減小了15.3%,比亞軍高出10.8個百分點。AlexNet是由SuperVision組設計的,由Alex Krizhevsky, Geoffrey Hinton和Ilya Sutskever組成。
來源: ImageNet Classification with Deep Convolutional Neural Networks
AlphaGo
阿爾法圍棋是於2014年開始由英國倫敦Google DeepMind公司開發的人工智慧圍棋程式。AlphaGo是第一個打敗人類職業棋手的計算機程式,也是第一個打敗圍棋世界冠軍的計算機程式,可以說是歷史上最強的棋手。 技術上來說,AlphaGo的演算法結合了機器學習(machine learning)和樹搜尋(tree search)技術,並使用了大量的人類、電腦的對弈來進行訓練。AlphaGo使用蒙特卡洛樹搜尋(MCTS:Monte-Carlo Tree Search),以價值網路(value network)和策略網路(policy network)為指導,其中價值網路用於預測遊戲的勝利者,策略網路用於選擇下一步行動。價值網路和策略網路都是使用深度神經網路技術實現的,神經網路的輸入是經過預處理的圍棋面板的描述(description of Go board)。
來源: Deepmind
Computer Vision
計算機視覺(CV)是指機器感知環境的能力。這一技術類別中的經典任務有影象形成、影象處理、影象提取和影象的三維推理。目標識別和麵部識別也是很重要的研究領域。
來源:機器之心
iteration
模型的權重在訓練期間的一次更新。迭代包含計算引數在單個批量資料上的梯度損失。
來源: sary#iteration" target="_blank" rel="nofollow,noindex">Google ML glossary
Image processing
影象處理是指對影象進行分析、加工和處理,使其滿足視覺、心理或其他要求的技術。 影象處理是訊號處理在影象領域上的一個應用。 目前大多數的影象均是以數字形式儲存,因而影象處理很多情況下指數字影象處理。
來源: 維基百科
Natural language processing
自然語言處理(英語:natural language processing,縮寫作 NLP)是人工智慧和語言學領域的分支學科。此領域探討如何處理及運用自然語言;自然語言認知則是指讓電腦“懂”人類的語言。自然語言生成系統把計算機資料轉化為自然語言。自然語言理解系統把自然語言轉化為計算機程式更易於處理的形式。
來源: 維基百科
Machine translation
機器翻譯(MT)是利用機器的力量「自動將一種自然語言(源語言)的文字翻譯成另一種語言(目標語言)」。機器翻譯方法通常可分成三大類:基於規則的機器翻譯(RBMT)、統計機器翻譯(SMT)和神經機器翻譯(NMT)。
來源:機器之心
Recommender system
推薦系統(RS)主要是指應用協同智慧(collaborative intelligence)做推薦的技術。推薦系統的兩大主流型別是基於內容的推薦系統和協同過濾(Collaborative Filtering)。另外還有基於知識的推薦系統(包括基於本體和基於案例的推薦系統)是一類特殊的推薦系統,這類系統更加註重知識表徵和推理。
來源:機器之心
Intel
英特爾是計算創新領域的全球領先廠商,致力於拓展科技疆界,讓最精彩體驗成為可能。英特爾創始於1968年,已擁有近半個世紀產品創新和引領市場的經驗。英特爾1971年推出了世界上第一個微處理器,後來又促進了計算機和網際網路的革命,改變了整個世界的程序。如今,英特爾正轉型成為一家資料公司,制定了清晰的資料戰略,憑藉雲和資料中心、物聯網、儲存、FPGA以及5G構成的增長良性迴圈,提供獨到價值,驅動日益發展的智慧互聯世界。英特爾專注於技術創新,同時也積極支援中國的自主創新,與產業夥伴攜手推動智慧互聯的發展。基於明確的資料戰略和智慧互聯全棧實力,英特爾瞄準人工智慧、無人駕駛、5G、精準醫療、體育等關鍵領域,與中國深度合作。面向未來,英特爾致力於做中國高價值合作伙伴,在新科技、新經濟、新消費三個方面,著力驅動產業協同創新,為實體經濟增值,促進消費升級。
涉及領域
CycleGAN
GAN的一個變種
Tensor
張量是一個可用來表示在一些向量、標量和其他張量之間的線性關係的多線性函式,這些線性關係的基本例子有內積、外積、線性對映以及笛卡兒積。其座標在 維空間內,有 個分量的一種量,其中每個分量都是座標的函式,而在座標變換時,這些分量也依照某些規則作線性變換。稱為該張量的秩或階(與矩陣的秩和階均無關係)。 在數學裡,張量是一種幾何實體,或者說廣義上的“數量”。張量概念包括標量、向量和線性運算元。張量可以用座標系統來表達,記作標量的陣列,但它是定義為“不依賴於參照系的選擇的”。張量在物理和工程學中很重要。例如在擴散張量成像中,表達器官對於水的在各個方向的微分透性的張量可以用來產生大腦的掃描圖。工程上最重要的例子可能就是應力張量和應變張量了,它們都是二階張量,對於一般線性材料他們之間的關係由一個四階彈性張量來決定。
來源: 維基百科
TensorFlow
TensorFlow是一個開源軟體庫,用於各種感知和語言理解任務的機器學習。目前被50個團隊用於研究和生產許多Google商業產品,如語音識別、Gmail、Google 相簿和搜尋,其中許多產品曾使用過其前任軟體DistBelief。
來源: 維基百科