深度學(xué)習(xí)基礎(chǔ)與實(shí)踐 課件 單元三 PyTorch深度學(xué)習(xí)框架_第1頁
深度學(xué)習(xí)基礎(chǔ)與實(shí)踐 課件 單元三 PyTorch深度學(xué)習(xí)框架_第2頁
深度學(xué)習(xí)基礎(chǔ)與實(shí)踐 課件 單元三 PyTorch深度學(xué)習(xí)框架_第3頁
深度學(xué)習(xí)基礎(chǔ)與實(shí)踐 課件 單元三 PyTorch深度學(xué)習(xí)框架_第4頁
深度學(xué)習(xí)基礎(chǔ)與實(shí)踐 課件 單元三 PyTorch深度學(xué)習(xí)框架_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

深度學(xué)習(xí)框架概述深度學(xué)習(xí)框架Theano框架第一個(gè)Python深度學(xué)習(xí)框架深度學(xué)習(xí)框架基本設(shè)計(jì)方向:以計(jì)算圖為框架的核心,采用GPU加速計(jì)算定義、優(yōu)化和計(jì)算數(shù)學(xué)表達(dá)式,特別是多維數(shù)組2017年9月28日,LISA實(shí)驗(yàn)宣布Theano停止開發(fā)深度學(xué)習(xí)新手仍可使用Theano來練習(xí),對(duì)于職業(yè)開發(fā)者建議使用其他主流深度學(xué)習(xí)框架Tensorflow框架2015年11月10日,Google宣布推出全新的機(jī)器學(xué)習(xí)開源工具TensorFlowTensorFlow和Theano都是基于計(jì)算圖實(shí)現(xiàn)自動(dòng)微分系統(tǒng)TensorFlow使用數(shù)據(jù)流圖進(jìn)行數(shù)值計(jì)算在工業(yè)界擁有完備的解決方案和用戶基礎(chǔ)TensorFlow2無縫部署網(wǎng)絡(luò)模型至工業(yè)系統(tǒng)TensorFlow框架是業(yè)界使用最為廣泛的深度學(xué)習(xí)框架之一Keras框架Keras是一個(gè)高層神經(jīng)網(wǎng)絡(luò)API,使用TensorFlow、Theano及CNTK作為后端Keras支持快速實(shí)驗(yàn),能迅速把想法轉(zhuǎn)換為結(jié)果。Keras的缺點(diǎn):過度封裝導(dǎo)致喪失靈活性,程序運(yùn)行過于緩慢,許多bug都隱藏于封裝之中,用戶主要在調(diào)用接口。嚴(yán)格意義上講,Keras構(gòu)建于第三方框架之上,更像一個(gè)深度學(xué)習(xí)接口。Caffe框架Caffe是一個(gè)清晰、高效的深度學(xué)習(xí)框架,核心語言是C++,支持命令行、Python和MATLAB接口,可以在CPU上運(yùn)行,也可以在GPU上運(yùn)行Caffe的優(yōu)點(diǎn)是簡(jiǎn)潔快速,缺點(diǎn)是缺少靈活性2017年,F(xiàn)acebook正式宣布開源Caffe2,兼具表現(xiàn)力、速度和模塊性Caffe2追求輕量級(jí),在保有擴(kuò)展性和高性能的同時(shí),強(qiáng)調(diào)便攜性Caffe2的核心C++庫能提供速度和便攜性,使Python和C++API用戶可以輕松地在Linux、Windows、iOS、Android等操作系統(tǒng)上進(jìn)行原型設(shè)計(jì)、訓(xùn)練和部署。MXNet框架MXNet支持C++、Python、R、Scala、Julia、MATLAB及JavaScript等語言,支持命令和符號(hào)編程,可以運(yùn)行在CPU、GPU、集群、服務(wù)器、臺(tái)式機(jī)或者移動(dòng)設(shè)備上2017年1月,MXNet項(xiàng)目進(jìn)入Apache基金會(huì),成為Apache的孵化器項(xiàng)目MXNet具有超強(qiáng)的分布式支持能力,卓越的內(nèi)存、顯存優(yōu)化技術(shù)MXNet的缺點(diǎn)是接口文檔不夠完善CNTK框架2016年1月25日,微軟公司在GitHub倉(cāng)庫上正式開源了微軟研究院開發(fā)的計(jì)算網(wǎng)絡(luò)工具集CNTKCNTK的性能比Caffe、Theano、TensorFlow等主流工具都要強(qiáng),支持CPU和GPU模式,同TensorFlow/Theano一樣,把神經(jīng)網(wǎng)絡(luò)描述成一個(gè)計(jì)算圖的結(jié)構(gòu)CNTK表現(xiàn)比較均衡,沒有明顯短板,且在語音領(lǐng)域效果比較突出飛槳(PaddlePaddle)集深度學(xué)習(xí)核心訓(xùn)練和推理框架、基礎(chǔ)模型庫、端到端開發(fā)套件、豐富的工具組件于一體,是中國(guó)首個(gè)自主研發(fā)、功能豐富、開源開放的產(chǎn)業(yè)級(jí)深度學(xué)習(xí)平臺(tái)。飛槳(PaddlePaddle)PyTorch框架PyTorch官網(wǎng)地址/PyTorch是一個(gè)基于Torch的開源Python機(jī)器學(xué)習(xí)庫,用于自然語言處理等應(yīng)用程序,更加靈活,支持動(dòng)態(tài)圖,提供了Python接口,能夠?qū)崿F(xiàn)強(qiáng)大的GPU加速,支持動(dòng)態(tài)神經(jīng)網(wǎng)絡(luò)。PyTorch支持動(dòng)態(tài)圖的創(chuàng)建,在深度學(xué)習(xí)平臺(tái)定義模型主要有兩種方法:靜態(tài)圖模型的缺陷是在處理數(shù)據(jù)前必須定義好完整的一套模型,才能夠處理所有的邊際情況。動(dòng)態(tài)模型能夠自由地定義模型,作為Numpy的替代者,使用強(qiáng)大的GPU,支持Tensor庫,極大地加速了計(jì)算。PyTorch提供的功能1、提供強(qiáng)大的N維數(shù)組操作,包括索引、切片和轉(zhuǎn)置等。2、通過LuaJIT實(shí)現(xiàn)C接口。3、線性計(jì)算和數(shù)值優(yōu)化。4、生成神經(jīng)網(wǎng)絡(luò)以及能量模型,能量模型是生成模型的一種形式。5、快速高效GPU支持,可嵌入到iOS和Android后端。PyTorch的優(yōu)勢(shì)1、簡(jiǎn)潔。PyTorch的設(shè)計(jì)追求最少的封裝,設(shè)計(jì)遵循Tensor→Variable(autograd)→nn.Module三個(gè)由低到高的抽象層次,且聯(lián)系緊密,可以同時(shí)進(jìn)行修改和操作。代碼易于理解,更少的抽象、更直觀的設(shè)計(jì)。2、速度。PyTorch的靈活性不以速度為代價(jià),PyTorch的速度表現(xiàn)勝過TensorFlow和Keras等框架,是相當(dāng)簡(jiǎn)潔且高效快速的框架。3、易用。入門簡(jiǎn)單,設(shè)計(jì)符合人類思維,讓用戶盡可能專注于實(shí)現(xiàn)自己的想法,所思即所得,不需要考慮太多關(guān)于框架本身的束縛。4、活躍的社區(qū)。PyTorch提供完整的文檔和循序漸進(jìn)的指南,F(xiàn)acebook人工智能研究院對(duì)PyTorch提供了強(qiáng)力支持。PyTorch官網(wǎng)地址/基礎(chǔ)環(huán)境:一臺(tái)PC設(shè)備一張高性能NVIDIA顯卡(可選)Ubuntu系統(tǒng)搭建環(huán)節(jié)1.Anaconda環(huán)境搭建2.PyTorch環(huán)境搭建Anaconda環(huán)境搭建查看操作系統(tǒng)是否安裝了Anaonda3右擊桌面,選擇“OpenTerminalHere”,打開linux的“終端”。查看操作系統(tǒng)是否安裝了Anaonda3輸入代碼shAnaconda3-2020.07-Linux-x86_64.sh人工智能和機(jī)器學(xué)習(xí)的關(guān)系時(shí)間:1956年地點(diǎn):達(dá)特茅斯學(xué)院會(huì)議:用機(jī)器來模仿人類學(xué)習(xí)以及其他方面的智能“人工智能”一詞的誕生,并作為一個(gè)獨(dú)立的科研領(lǐng)域。人工智能(Artificialintelligence)是什么?理性思考的系統(tǒng)像人一樣思考的系統(tǒng)理性行動(dòng)的系統(tǒng)像人一樣行動(dòng)的系統(tǒng)——拉塞爾和諾文的《人工智能:一種現(xiàn)代方法》(第2版)計(jì)算機(jī)科學(xué)的一個(gè)分支,利用計(jì)算機(jī)模擬人類智力活動(dòng)?!冬F(xiàn)代漢語詞典》定義人工智能模仿人或其他生命體思考或行為的技術(shù)人工智能讓計(jì)算機(jī)從數(shù)據(jù)中學(xué)習(xí)而無需使用明確編程的人工智能技術(shù)機(jī)器學(xué)習(xí)人工智能機(jī)器學(xué)習(xí)機(jī)器學(xué)習(xí)(MachineLearning)是什么?在沒有明確編程下,讓計(jì)算機(jī)具有學(xué)習(xí)能力的研究領(lǐng)域?!獧C(jī)器學(xué)習(xí)之父亞瑟·塞繆爾1997年,IBM開發(fā)的深藍(lán)(DeepBlue)象棋程序擊敗了世界冠軍加里?卡斯帕羅夫(GarryKasparov)機(jī)器學(xué)習(xí)可以解決什么問題?給定數(shù)據(jù)的預(yù)測(cè)問題01數(shù)據(jù)清洗/特征選擇02確定算法模型/參數(shù)優(yōu)化03結(jié)果預(yù)測(cè)04機(jī)器學(xué)習(xí)不能解決什么問題?大數(shù)據(jù)存儲(chǔ)/并行計(jì)算01做一個(gè)機(jī)器人02監(jiān)督學(xué)習(xí)的流程框架監(jiān)督學(xué)習(xí)沒有正確答案的樣本無法學(xué)習(xí)1.目標(biāo)明確2.需要帶標(biāo)簽的訓(xùn)練數(shù)據(jù)3.效果容易評(píng)估分類案例:身高1.65m,體重100kg的男人肥胖嗎?根據(jù)腫瘤的體積、患者的年齡來判斷良性或惡性?回歸案例:如何預(yù)測(cè)上海浦東的房?jī)r(jià)?未來的股票市場(chǎng)走向?無監(jiān)督學(xué)習(xí)即使沒有正確答案樣本也可以區(qū)分1.目標(biāo)不明確2.不需要帶標(biāo)簽的數(shù)據(jù)3.效果很難評(píng)估借助無監(jiān)督學(xué)習(xí)細(xì)分用戶場(chǎng)景:1.機(jī)器有一個(gè)明確的小鳥角色——代理2.需要控制小鳥飛的更遠(yuǎn)——目標(biāo)3.整個(gè)游戲過程中需要躲避各種水管——環(huán)境4.躲避水管的方法是讓小鳥用力飛一下——行動(dòng)5.飛的越遠(yuǎn),就會(huì)獲得越多的積分——獎(jiǎng)勵(lì)強(qiáng)化學(xué)習(xí)強(qiáng)化學(xué)習(xí)不需要大量“數(shù)據(jù)喂養(yǎng)”,通過自己不停嘗試學(xué)會(huì)某些技能模式識(shí)別=機(jī)器學(xué)習(xí)數(shù)據(jù)挖掘=機(jī)器學(xué)習(xí)+數(shù)據(jù)庫統(tǒng)計(jì)學(xué)習(xí)近似等于機(jī)器學(xué)習(xí)計(jì)算機(jī)視覺=圖像處理+機(jī)器學(xué)習(xí)語音識(shí)別=語音處理+機(jī)器學(xué)習(xí)模仿人或其他生命體思考或行為的技術(shù)人工智能讓計(jì)算機(jī)從數(shù)據(jù)中學(xué)習(xí)而無需使用明確編程的人工智能技術(shù)機(jī)器學(xué)習(xí)人工智能機(jī)器學(xué)習(xí)PyTorch基本使用Tensor張量的概念Tensor實(shí)際上就是一個(gè)多維數(shù)組(multidimensionalarray)標(biāo)量(0階張量)向量(1階張量)矩陣(2階張量)張量(大于等于3階張量)1.2數(shù)據(jù)類型CPUtensorGPUtensor32-bitfloatingpointtorch.FloatTensorTorch.cuda.FloatTensor64-bitfloatingpointtorch.DoubleTensorTorch.cuda.DoubleTensor16-bitfloatingpointN/ATorch.cuda.HalfTensor8-bitinteger(unsigned)torch.ByteTensorTorch.cuda.ByteTensor8-bitinteger(signed)torch.CharTensorTorch.cuda.CharTensor16-bitinteger(signed)torch.ShortTensorTorch.cuda.ShortTensor32-bitinteger(signed)torch.IntTensorTorch.cuda.IntTensor64-bitinteger(signed)torch.LongTensorTorch.cuda.LongTensortorch.Tensor創(chuàng)建張量的方法torch.tensor():用現(xiàn)有數(shù)據(jù)創(chuàng)建張量如torch.tensor([[1.,

-1.],[1.,-1.]])torch.*:創(chuàng)建具有特定大小的張量如torch.randn()

#滿足標(biāo)準(zhǔn)正態(tài)分布的一組隨機(jī)數(shù)據(jù)torch.*_like:創(chuàng)建與另一個(gè)張量具有相同大小和相似類型的張量如torch.rand_like()tensor.new_*:創(chuàng)建與其他張量具有相似類型但大小不同的張量查看張量的屬性查看Tensor類型tensor1

=

torch.randn(2,3) #形狀為(2,3)一組從標(biāo)準(zhǔn)正態(tài)分布中隨機(jī)抽取的數(shù)據(jù)tensor1.dtype

#

torch.float32查看Tensor維度tensor1.ndim

#查看維度查看Tensor形狀或尺寸tensor1.shape

#查看形狀或尺寸查看Tensor是否存儲(chǔ)在GPU上tensor1.is_cuda查看Tensor的梯度tensor1.gradTensor在CPU、GPU、numpy之間的轉(zhuǎn)換CPU

tensor轉(zhuǎn)GPU

tensorcpu_tensor.cuda()GPU

tensor

轉(zhuǎn)CPU

tensorgpu_tensor.cpu()numpy轉(zhuǎn)為CPU

tensortorch.from_numpy(numpy_test

)CPU

tensor轉(zhuǎn)為numpy數(shù)據(jù)cpu_tensor.numpy()注意:GPU

tensor不能直接轉(zhuǎn)為numpy數(shù)組,必須先轉(zhuǎn)到CPU

tensor。如果tensor是標(biāo)量的話,可以直接使用

item()

函數(shù)(只能是標(biāo)量)將值取出來:loss_output.item()一個(gè)張量tensor可以從Python的list或序列構(gòu)建一個(gè)空張量tensor可以通過規(guī)定其大小來構(gòu)建用Python的索引和切片來獲取和修改一個(gè)張量tensor中的內(nèi)容每一個(gè)張量tensor都有一個(gè)相應(yīng)的單一數(shù)據(jù)類型的一維數(shù)組torch.Storage用來保存其數(shù)據(jù)改變tensor的函數(shù)操作會(huì)用一個(gè)下劃線后綴來表示函數(shù)torch.squeeze(input,

dim=None,out=None)對(duì)數(shù)據(jù)的維度進(jìn)行壓縮數(shù)學(xué)操作函數(shù)torch.abs(inputs,out=None)用來計(jì)算輸入張量的每個(gè)元素的絕對(duì)值函數(shù)torch.add(input,value,out=None),對(duì)張量input逐元素加上標(biāo)量value后得到一個(gè)新的張量數(shù)理統(tǒng)計(jì)函數(shù)torch.mean(input),返回輸入張量所有元素的均值函數(shù)torch.mean(inpu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論