




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《深度學(xué)習(xí)案例教程》1深度學(xué)習(xí)簡(jiǎn)介2.PyTorch深度學(xué)習(xí)框架3簡(jiǎn)單全連接網(wǎng)絡(luò)的手寫數(shù)字識(shí)別4使用卷積網(wǎng)絡(luò)實(shí)現(xiàn)圖像分類5目標(biāo)檢測(cè)6文本分類7文本翻譯8基于深度學(xué)習(xí)的代碼搜索9語音識(shí)別原理以及模型全套可編輯PPT課件
本課件是可編輯的正常PPT課件深度學(xué)習(xí)簡(jiǎn)介第一章本課件是可編輯的正常PPT課件01理解深度學(xué)習(xí)的概念和發(fā)展歷程02了解深度學(xué)習(xí)在各種應(yīng)用場(chǎng)景中的應(yīng)用03掌握深度學(xué)習(xí)的特點(diǎn)和優(yōu)勢(shì)04熟悉深度學(xué)習(xí)框架、選擇合適的框架進(jìn)行開發(fā)學(xué)習(xí)目標(biāo)CONTENTS05理解機(jī)器學(xué)習(xí)的相關(guān)概念本課件是可編輯的正常PPT課件01分析思維02創(chuàng)新能力03團(tuán)隊(duì)合作04問題解決能力素質(zhì)目標(biāo)CONTENTS05學(xué)習(xí)意愿和持續(xù)學(xué)習(xí)本課件是可編輯的正常PPT課件人工智能三者關(guān)系能夠感知、推理、行動(dòng)和適應(yīng)的程序機(jī)器學(xué)習(xí)能夠隨著數(shù)據(jù)量的增加不斷改進(jìn)性能的算法深度學(xué)習(xí)利用多層神經(jīng)網(wǎng)絡(luò)從大量數(shù)據(jù)中進(jìn)行學(xué)習(xí)第一節(jié)
人工智能與機(jī)器學(xué)習(xí)、深度學(xué)習(xí)的關(guān)系
本課件是可編輯的正常PPT課件20世紀(jì)50年代當(dāng)時(shí),計(jì)算機(jī)科學(xué)家們開始研究如何創(chuàng)建能夠像人類一樣思考和決策的計(jì)算機(jī)系統(tǒng)。最初的人工智能系統(tǒng)是基于規(guī)則的。80年代初期基于專家系統(tǒng)的人工智能技術(shù)曾經(jīng)一度風(fēng)靡一時(shí)。近年來深度學(xué)習(xí)技術(shù)的出現(xiàn)使得人工智能的發(fā)展又迎來了一個(gè)重要的時(shí)期。90年代初期人工神經(jīng)網(wǎng)絡(luò)和機(jī)器學(xué)習(xí)技術(shù)開始受到關(guān)注。發(fā)展歷程本課件是可編輯的正常PPT課件機(jī)器學(xué)習(xí)在形式上,近似于在數(shù)據(jù)對(duì)象中通過統(tǒng)計(jì)或推理的方法尋找一個(gè)適用特定輸入和預(yù)期輸出功能的函數(shù)機(jī)器學(xué)習(xí)的定義機(jī)器學(xué)習(xí)收集數(shù)據(jù)準(zhǔn)備數(shù)據(jù)選擇模型訓(xùn)練模型模型評(píng)估參數(shù)設(shè)置結(jié)果預(yù)測(cè)機(jī)器學(xué)習(xí)是通過"學(xué)習(xí)"來改善自己,并因此在執(zhí)行任務(wù)時(shí)變得越來越熟練。機(jī)器學(xué)習(xí)的過程將被分解為以下7個(gè)步驟機(jī)器學(xué)習(xí)是英文名稱MachineLearning(簡(jiǎn)稱ML)的直譯。機(jī)器學(xué)習(xí)涉及概率論、統(tǒng)計(jì)
學(xué)、逼近論、凸分析、算法復(fù)雜度理論等多門學(xué)科。本課件是可編輯的正常PPT課件監(jiān)督學(xué)習(xí)監(jiān)督學(xué)習(xí)是利用已知類別的樣本,調(diào)整分類器的參數(shù),訓(xùn)練得到一個(gè)最優(yōu)模型,再利用這個(gè)訓(xùn)練后的模型,將所有的輸入映射為相應(yīng)的輸出,對(duì)輸出進(jìn)行簡(jiǎn)單的判斷,從而實(shí)現(xiàn)分類的目的。無監(jiān)督學(xué)習(xí)無監(jiān)督學(xué)習(xí)中模型所學(xué)習(xí)的數(shù)據(jù)都是無標(biāo)簽的,根據(jù)類別未知的訓(xùn)練樣本解決模式識(shí)別中的各種問題。半監(jiān)督學(xué)習(xí)半監(jiān)督學(xué)習(xí)是介于監(jiān)督學(xué)習(xí)與無監(jiān)督學(xué)習(xí)之間一種機(jī)器學(xué)習(xí)方式,主要考慮如何利用少量的樣本和大量的未標(biāo)注樣本進(jìn)行訓(xùn)練和分類的問題。機(jī)器學(xué)習(xí)的分類強(qiáng)化學(xué)習(xí)強(qiáng)化學(xué)習(xí)就是智能系統(tǒng)從環(huán)境到行為映射的學(xué)習(xí),強(qiáng)化學(xué)習(xí)中由環(huán)境提供的強(qiáng)化信號(hào)是對(duì)產(chǎn)生動(dòng)作的好壞作一種評(píng)價(jià)(通常為標(biāo)量信號(hào))。本課件是可編輯的正常PPT課件深度學(xué)習(xí)的定義第二節(jié)
深度學(xué)習(xí)深度學(xué)習(xí)是高度數(shù)據(jù)依賴型的算法,它的性能通常隨著數(shù)據(jù)量的增加而不斷增強(qiáng),即它的可擴(kuò)展性(Scalability)顯著優(yōu)于傳統(tǒng)的機(jī)器學(xué)習(xí)算法。但如果訓(xùn)練數(shù)據(jù)比較少,深度學(xué)習(xí)的性能并不見得就比傳統(tǒng)機(jī)器學(xué)習(xí)好。本課件是可編輯的正常PPT課件生成型深度結(jié)構(gòu)生成型深度結(jié)構(gòu)旨在模式分析過程中描述觀測(cè)數(shù)據(jù)的高階相關(guān)特征,或者描述觀測(cè)數(shù)據(jù)與其相關(guān)類別的聯(lián)合概率分布,這方便了先驗(yàn)概率和后驗(yàn)概率的估計(jì),通常使用無監(jiān)督學(xué)習(xí)處理該結(jié)構(gòu)的學(xué)習(xí)。判別型深度結(jié)構(gòu)判別型深度結(jié)構(gòu)旨在提供對(duì)模式分類的區(qū)分性能力,通常描述數(shù)據(jù)的后驗(yàn)分布。卷積神經(jīng)網(wǎng)絡(luò)是第一個(gè)真正成功訓(xùn)練多層網(wǎng)絡(luò)結(jié)構(gòu)的學(xué)習(xí)算法,它屬于判別型訓(xùn)練算法?;旌闲蜕疃冉Y(jié)構(gòu)混合型深度結(jié)構(gòu)的目的是對(duì)數(shù)據(jù)類型進(jìn)行判別、分類,該學(xué)習(xí)過程包含兩個(gè)部分:生成部分和區(qū)分部分。深度學(xué)習(xí)的分類本課件是可編輯的正常PPT課件深度前饋網(wǎng)絡(luò)深度前饋網(wǎng)絡(luò)(DeepFeedforwardNetwork),也被稱為前饋神經(jīng)網(wǎng)絡(luò)或多層感知器(MultilayerPerceptron,MLP),是深度學(xué)習(xí)領(lǐng)域中最基本和最經(jīng)典的模型之一。深度學(xué)習(xí)的分類本課件是可編輯的正常PPT課件卷積神經(jīng)網(wǎng)絡(luò)在深度學(xué)習(xí)中,卷積神經(jīng)網(wǎng)絡(luò)(CNN或ConvNet)是一類深度神經(jīng)網(wǎng)絡(luò),最常用于分析視覺圖像。CNN使用多層感知器的變體設(shè)計(jì),需要最少的預(yù)處理。它們也被稱為移位不變或空間不變?nèi)斯ど窠?jīng)網(wǎng)絡(luò)(SIANN),基于它們的共享權(quán)重架構(gòu)和平移不變性特征。深度學(xué)習(xí)的分類本課件是可編輯的正常PPT課件遞歸神經(jīng)網(wǎng)絡(luò)遞歸神經(jīng)網(wǎng)絡(luò)(RNN)是一個(gè)特殊的神經(jīng)網(wǎng)絡(luò)系列,旨在處理序列數(shù)據(jù),例如一系列的文本或者股票市場(chǎng)的波動(dòng)?,F(xiàn)實(shí)問題中存在著很多序列型的數(shù)據(jù),例如文本、語音以及視頻等。深度學(xué)習(xí)的分類本課件是可編輯的正常PPT課件20世紀(jì)50年代到70年代初人工智能發(fā)展尚處于推理期,這一時(shí)期的機(jī)器學(xué)習(xí)只能稱為感知,即認(rèn)為只要給機(jī)器賦予邏輯推理能力,機(jī)器就具有了智能,開始進(jìn)入推理期。20世紀(jì)70年代中期人工智能進(jìn)入了知識(shí)期。20世紀(jì)90年代2006年Hinton教授和他的學(xué)生Salakhutdinov在《科學(xué)》上發(fā)表了一篇有關(guān)人工神經(jīng)網(wǎng)絡(luò)的論文,提出了無監(jiān)督貪心逐層訓(xùn)練(LayerwisePre-Training)算法,進(jìn)入了快速發(fā)展期。加拿大多倫多大學(xué)的GeoffreyHinton教授發(fā)明了適用于多層感知機(jī)的人工神經(jīng)網(wǎng)絡(luò)算法——反向傳播算法(BackPropagation,BP),進(jìn)入了學(xué)習(xí)期。第三節(jié)
深度學(xué)習(xí)的發(fā)展CNN網(wǎng)絡(luò)架構(gòu)的AlexNet在ImageNet圖像識(shí)別備受關(guān)注,進(jìn)入到爆發(fā)期。2012年本課件是可編輯的正常PPT課件推理期知識(shí)期學(xué)習(xí)期快速發(fā)展期爆發(fā)期圍繞著人工智能如何理解關(guān)于世界的知識(shí),科學(xué)家用不同的方法進(jìn)行了不同的探索和嘗試。在國(guó)際上,學(xué)者們對(duì)機(jī)器學(xué)習(xí)的發(fā)展階段并沒有非常明確的劃分規(guī)則,將機(jī)器學(xué)習(xí)的發(fā)展劃分為推理期、知識(shí)期、學(xué)習(xí)期、快速發(fā)展期和爆發(fā)期。階段模型特點(diǎn)深度學(xué)習(xí)的發(fā)展本課件是可編輯的正常PPT課件應(yīng)用領(lǐng)域第四節(jié)
深度學(xué)習(xí)的領(lǐng)域深度學(xué)習(xí)作為一種重要的人工智能技術(shù),在各個(gè)領(lǐng)域都有廣泛的應(yīng)用。它在計(jì)算機(jī)視覺領(lǐng)域可以進(jìn)行圖像識(shí)別、目標(biāo)檢測(cè)、人臉識(shí)別等任務(wù),為自動(dòng)駕駛、安防監(jiān)控、醫(yī)學(xué)影像分析等提供強(qiáng)大支持;在自然語言處理領(lǐng)域能夠?qū)崿F(xiàn)機(jī)器翻譯、文本生成、情感分析等任務(wù),應(yīng)用于智能助理、社交媒體分析、智能客服等場(chǎng)景。本課件是可編輯的正常PPT課件語音識(shí)別行車導(dǎo)航軟件通過語音合成技術(shù)為司機(jī)指引道路、播報(bào)路況,人們甚至可以選擇用自己喜歡的明星的聲音來播報(bào)軟件內(nèi)容。智能家居系統(tǒng)利用語音合成技術(shù)能夠?qū)崿F(xiàn)與用戶的實(shí)時(shí)交流,人們可以從智能家居的“嘴”中得知家中的一些基本情況,大大提高了生活質(zhì)量。在智能教學(xué)領(lǐng)域,學(xué)生能夠利用語音合成技術(shù)跟讀單詞、句子,語音輔導(dǎo)軟件的出現(xiàn)大大方便了教學(xué)過程,提高了教學(xué)質(zhì)量。語音識(shí)別(SpeechRecognition)是一門交叉學(xué)科,
近十幾年進(jìn)步顯著。除了需要數(shù)字信號(hào)
處理,
模式識(shí)別,概率論等理論知識(shí),深度學(xué)習(xí)的發(fā)展也使其有了很大幅度的效果提升。本課件是可編輯的正常PPT課件語音識(shí)別信號(hào)處理與特征提取音頻信號(hào)中通常包含著非常豐富的特征參數(shù),不同的特征向量表征著不同的聲學(xué)意義,從音頻信號(hào)中選擇有效的音頻表征的過程就是語音特征提取。本課件是可編輯的正常PPT課件二一四三目標(biāo)檢測(cè)語義分割行人重識(shí)別超分辨率重建第五節(jié)
深度學(xué)習(xí)的應(yīng)用場(chǎng)景-計(jì)算機(jī)的視覺本課件是可編輯的正常PPT課件目標(biāo)檢測(cè)目標(biāo)檢測(cè)(ObjectDetection)的任務(wù)是找出圖像中所有感興趣的目標(biāo)(物體),確定它們的類別和位置,是計(jì)算機(jī)視覺領(lǐng)域的核心問題之一。由于各類物體有不同的外觀、形狀和姿態(tài),加上成像時(shí)光照、遮擋等因素的干擾,目標(biāo)檢測(cè)一直是計(jì)算機(jī)視覺領(lǐng)域最具有挑戰(zhàn)性的問題。第五節(jié)
深度學(xué)習(xí)的應(yīng)用場(chǎng)景-計(jì)算機(jī)的視覺本課件是可編輯的正常PPT課件語義分割語義分割(SemanticSegmentation)旨在將圖像中的物體作為可解釋的語義類別,該類別將是DNN學(xué)習(xí)的特征聚類得到。第五節(jié)
深度學(xué)習(xí)的應(yīng)用場(chǎng)景-計(jì)算機(jī)的視覺本課件是可編輯的正常PPT課件超分辨率重建超分辨率重建(SuperResolutionConstruction)的主要任務(wù)是通過軟件和硬件的方法,從觀測(cè)到的低分辨率圖像重建出高分辨率圖像。第五節(jié)
深度學(xué)習(xí)的應(yīng)用場(chǎng)景-計(jì)算機(jī)的視覺本課件是可編輯的正常PPT課件行人重識(shí)別行人重識(shí)別(PersonRe-identification)也稱行人再識(shí)別,是利用計(jì)算機(jī)視覺技術(shù)判斷圖像或者視頻序列中是否存在特定行人的技術(shù)。第五節(jié)
深度學(xué)習(xí)的應(yīng)用場(chǎng)景-計(jì)算機(jī)的視覺本課件是可編輯的正常PPT課件自然語言第六節(jié)
深度學(xué)習(xí)的應(yīng)用場(chǎng)景-自然語言處理自然語言處理(NLP)是計(jì)算機(jī)科學(xué)和人工智能領(lǐng)域的方向之一,它是以一種智能高效的方式對(duì)人類創(chuàng)造的文本數(shù)據(jù)進(jìn)行系統(tǒng)地分析、理解和提取信息的過程,研究能實(shí)現(xiàn)人與計(jì)算機(jī)之間用自然語言進(jìn)行有效通信的各種理論和方法。本課件是可編輯的正常PPT課件詞法分析詞法分析就是以詞為單位對(duì)數(shù)據(jù)進(jìn)行分析,這是NLP中最基本的工作。常見的詞性標(biāo)注和拼寫校正任務(wù)就屬于詞法分析。句子分析句子分析就是以句子為單位的分析任務(wù)。語義分析語義分析就是通過對(duì)文本數(shù)據(jù)的分析,生成對(duì)應(yīng)文本數(shù)據(jù)的語義信息的形式化表示,常見任務(wù)有詞義消歧等。自然語言的分類信息抽取信息抽取是NLP任務(wù)中應(yīng)用最廣泛的一個(gè),簡(jiǎn)單理解就是從非結(jié)構(gòu)化的文本數(shù)據(jù)中抽取出用戶所需的結(jié)構(gòu)化信息。頂層任務(wù)頂層任務(wù)就是直接面向用戶的任務(wù),比如機(jī)器翻譯或文本摘要,它需要多種任務(wù)結(jié)合生成對(duì)應(yīng)的可以直接讀取的輸出結(jié)果。本課件是可編輯的正常PPT課件第七節(jié)
深度學(xué)習(xí)的特點(diǎn)自適應(yīng)性非線性建模分層抽象表示多樣化的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)可擴(kuò)展性數(shù)據(jù)量大調(diào)試和驗(yàn)證計(jì)算資源要求高本課件是可編輯的正常PPT課件第八節(jié)
深度學(xué)習(xí)框架
概述深度學(xué)習(xí)框架是指一類軟件工具,用于構(gòu)建、訓(xùn)練和部署深度學(xué)習(xí)模型。本課件是可編輯的正常PPT課件第八節(jié)
深度學(xué)習(xí)框架
概述2017年1月,F(xiàn)acebook人工智能研究院(FacebookArtificialIntelligenceResearch,FAIR)團(tuán)隊(duì)在GitHub(代碼托管平臺(tái))上開源了PyTorch機(jī)器學(xué)習(xí)庫,并迅速占領(lǐng)GitHub熱度榜榜首。PyTorch的歷史可追溯到2002年,其誕生于紐約大學(xué)的Torch。Torch使用了一種不是很“大眾”的語言Lua作為接口。Lua簡(jiǎn)潔高效,但由于其過于“小眾”,以至于很多人聽說要掌握Torch必須新學(xué)一門語言就望而卻步。2017年10月18日,PyTorch的熱度已然超越了其他2個(gè)框架(Caffe、Theano),并且其熱度還在持續(xù)上升中。PyTorch最大的優(yōu)勢(shì)是建立的神經(jīng)網(wǎng)絡(luò)是動(dòng)態(tài)的,可以非常容易地輸出每一步的調(diào)試結(jié)果.相比于其他框架來說,調(diào)試起來十分方便。本課件是可編輯的正常PPT課件PyTorch框架
特點(diǎn)與優(yōu)勢(shì)1.PyTorch可以看作加入了GPU支持的NumPy(Python的一個(gè)擴(kuò)展程序庫)。TensorFlow與Caffe都是命令式的編程語言,而且是靜態(tài)的。2.PyTorch的設(shè)計(jì)思路是線性、直觀且易于使用的。3.相對(duì)于TensorFlow而言,PyTorch的代碼更加簡(jiǎn)潔、直觀。4.PyTorch的設(shè)計(jì)追求最少的封裝,盡量避免“重復(fù)造輪子”。5.PyTorch的源碼只有TensorFlow的十分之一左右,更少的抽象、更直觀的設(shè)計(jì)使得PyTorch的源碼十分易于閱讀和理解。本課件是可編輯的正常PPT課件謝謝您的聆聽結(jié)束本課件是可編輯的正常PPT課件PyTorch深度學(xué)習(xí)框架第二章本課件是可編輯的正常PPT課件01理解PyTorch框架的基本原理和核心概念02搭建PyTorch開發(fā)環(huán)境并配置所需的軟件和庫03使用PyTorch框架創(chuàng)建和操作張量,進(jìn)行數(shù)
學(xué)運(yùn)算和數(shù)理統(tǒng)計(jì)04利用PyTorch框架構(gòu)建和訓(xùn)練簡(jiǎn)單的線性回歸模型學(xué)習(xí)目標(biāo)CONTENTS本課件是可編輯的正常PPT課件01學(xué)習(xí)和掌握深度學(xué)習(xí)框架的能力02培養(yǎng)良好的編程習(xí)慣和實(shí)踐能力03提高問題分析和解決問題的能力04培養(yǎng)團(tuán)隊(duì)合作和溝通能力素質(zhì)目標(biāo)CONTENTS05培養(yǎng)持續(xù)學(xué)習(xí)的意識(shí)和能力本課件是可編輯的正常PPT課件設(shè)計(jì)模型訓(xùn)練模型實(shí)踐任務(wù)準(zhǔn)備數(shù)據(jù)預(yù)測(cè)數(shù)據(jù)認(rèn)識(shí)線性回歸本課件是可編輯的正常PPT課件2.1PyTorch介紹2.1.1PyTorch概述2.1.2使用計(jì)算圖本課件是可編輯的正常PPT課件2.1PyTorch介紹1.PyTorch概述PyTorch是一個(gè)基于Torch的Python開源機(jī)器學(xué)習(xí)庫,用于自然語言處理等應(yīng)用程序。它主要由Facebook的人工智能研究小組開發(fā)。PyTorch的動(dòng)態(tài)圖使得開發(fā)者可以更加直觀地定義和調(diào)試復(fù)雜的神經(jīng)網(wǎng)絡(luò)模型,這也是PyTorch在深度學(xué)習(xí)領(lǐng)域日益流行的原因之一。本課件是可編輯的正常PPT課件2.1PyTorch介紹2.使用計(jì)算圖計(jì)算圖是一個(gè)由節(jié)點(diǎn)和邊組成的有向無環(huán)圖(DAG)。節(jié)點(diǎn)表示計(jì)算操作,邊表示數(shù)據(jù)依賴關(guān)系。計(jì)算圖可以把模型中的計(jì)算過程可視化出來,讓我們更容易理解模型的計(jì)算邏輯。計(jì)算圖也可以被用來自動(dòng)計(jì)算梯度,這在訓(xùn)練深度學(xué)習(xí)模型時(shí)非常有用。本課件是可編輯的正常PPT課件2.2環(huán)境搭建2.2.1anaconda安裝2.2.2pytorch安裝2.2.3pycharm安裝本課件是可編輯的正常PPT課件2.2.1Anaconda安裝Anaconda是專注于數(shù)據(jù)分析的Python發(fā)行版本。包含了Conda、Python等一大批科學(xué)包及其依賴項(xiàng)。在安裝Anaconda時(shí)預(yù)先集成了Numpy、pandas、scikit-learn等數(shù)據(jù)分析常用包,在Anaconda中可以建立多個(gè)虛擬環(huán)境,用于隔離不同項(xiàng)目所需的不同版本的工具包,以防止版本上的沖突??傊?,anaconda是一個(gè)分析利器。本課件是可編輯的正常PPT課件(1)訪問Anaconda官網(wǎng)(),選擇適合自己的版本下載,如選擇下載Windows系統(tǒng)下的Python3.10版本,如圖所示。2.2.1Anaconda安裝本課件是可編輯的正常PPT課件(2)下載完成后,根據(jù)提示安裝Anaconda,如圖所示。2.2.1Anaconda安裝本課件是可編輯的正常PPT課件(2)下載完成后,根據(jù)提示安裝Anaconda,如圖所示。2.2.1Anaconda安裝本課件是可編輯的正常PPT課件(2)下載完成后,根據(jù)提示安裝Anaconda,如圖所示。2.2.1Anaconda安裝本課件是可編輯的正常PPT課件(2)下載完成后,根據(jù)提示安裝Anaconda,如圖所示。2.2.1Anaconda安裝本課件是可編輯的正常PPT課件(2)下載完成后,根據(jù)提示安裝Anaconda,如圖所示。2.2.1Anaconda安裝本課件是可編輯的正常PPT課件(3)安裝成功后設(shè)置系統(tǒng)環(huán)境變量的PATH值:右擊【計(jì)算機(jī)】,選擇【屬性】,進(jìn)入【高級(jí)系統(tǒng)設(shè)置】,選擇【環(huán)境變量】,雙擊【PATH】,設(shè)置Anaconda的環(huán)境變量,如圖所示2.2.1Anaconda安裝本課件是可編輯的正常PPT課件(3)安裝成功后設(shè)置系統(tǒng)環(huán)境變量的PATH值:右擊【計(jì)算機(jī)】,選擇【屬性】,進(jìn)入【高級(jí)系統(tǒng)設(shè)置】,選擇【環(huán)境變量】,雙擊【PATH】,設(shè)置Anaconda的環(huán)境變量,如圖所示2.2.1Anaconda安裝本課件是可編輯的正常PPT課件(4)完成安裝和設(shè)置后,打開命令提示符,輸入“conda--versoin”,可以看到其版本信息和Anaconda的字樣,說明Anaconda安裝成功,如圖所示。2.2.1Anaconda安裝本課件是可編輯的正常PPT課件Anaconda安裝成功之后,我們?cè)谙到y(tǒng)菜單中找到【anacondanavigator】進(jìn)入該界面首先是登陸界面,如圖所示。2.2.1Anaconda安裝本課件是可編輯的正常PPT課件選擇【Environments】后發(fā)現(xiàn)系統(tǒng)默認(rèn)創(chuàng)建了base環(huán)境,如圖所示。2.2.1Anaconda安裝本課件是可編輯的正常PPT課件點(diǎn)擊【Create】按鈕創(chuàng)建名為pytorch的虛擬環(huán)境,如圖所示。2.2.1Anaconda安裝本課件是可編輯的正常PPT課件如圖所示,pytorch虛擬環(huán)境創(chuàng)建完成。2.2.1Anaconda安裝本課件是可編輯的正常PPT課件2.2.2PyTorch安裝PyTorch安裝起來比較方便,根據(jù)系統(tǒng)環(huán)境選擇安裝方式,本書選用Conda方式安裝PyTorch,使用安裝好的Anaconda,能夠在同一臺(tái)機(jī)器上創(chuàng)建多個(gè)互不影響的Python環(huán)境。首先我們?nèi)yTorch的網(wǎng)站選擇合適的安裝環(huán)境,如圖所示。PyTorch官網(wǎng):本課件是可編輯的正常PPT課件2.2.2PyTorch安裝如果電腦有GPU可以查看版本后選擇CUDA,沒有就選擇CPU。復(fù)制以下命令。condainstallpytorchtorchvisiontorchaudiopytorch-cuda=11.7-cpytorch-cnvidia打開命令行窗口,使用condaactivate環(huán)境名稱,的命令來激活環(huán)境,如圖所示本課件是可編輯的正常PPT課件我們進(jìn)入python命令環(huán)境,導(dǎo)入pytorch,輸出其版本信息進(jìn)行驗(yàn)證,如圖所示2.2.2PyTorch安裝也可以使用pip命令進(jìn)行安裝,安裝的Anaconda中包含了python環(huán)境,選擇pip安裝方式復(fù)制后面的命令,然后將下載地址改為清華大學(xué)TUNA提供的鏡像地址,下載速度會(huì)比較快。本課件是可編輯的正常PPT課件2.2.3Pycharm安裝在Python開發(fā)領(lǐng)域中,最常用的兩種集成開發(fā)環(huán)境是JupyterNotebook和PyCharm。本課件是可編輯的正常PPT課件2.2.3Pycharm安裝JupyterNotebookJupyterNotebook是一個(gè)交互式筆記本,支持40多種編程語言。其本質(zhì)是一個(gè)Web應(yīng)用程序,便于創(chuàng)建和共享文字化程序文檔,支持實(shí)時(shí)代碼、數(shù)學(xué)方程、可視化和Markdown,包含自動(dòng)補(bǔ)全、自動(dòng)縮進(jìn),支持bashshell命令等。其主要用途包括數(shù)理和轉(zhuǎn)換、數(shù)值模擬、統(tǒng)計(jì)建模、機(jī)器學(xué)習(xí)等。本課件是可編輯的正常PPT課件2.2.3Pycharm安裝PyCharmPyCharm是JetBrains公司開發(fā)的Python集成開發(fā)環(huán)境。PyCharm的功能十分強(qiáng)大,包括調(diào)試、項(xiàng)目管理、代碼跳轉(zhuǎn)、智能提示、自動(dòng)補(bǔ)充、單元測(cè)試、版本控制等。對(duì)編程有非常大的幫助作用,十分適合開發(fā)較大型的項(xiàng)目,也非常適合初學(xué)者。本課件是可編輯的正常PPT課件(1)訪問PyCharm官網(wǎng)(/pycharm/),進(jìn)入下載頁面,有兩個(gè)版本的PyCharm供下載,分別是專業(yè)版(Professional)和社區(qū)版(Community),由于專業(yè)版收費(fèi),而社區(qū)版足以滿足初學(xué)者幾乎所有的需求,可以下載社區(qū)版,如圖所示。2.2.3Pycharm安裝本課件是可編輯的正常PPT課件(2)載完成后,根據(jù)提示安裝pycharm,如圖所示。2.2.3Pycharm安裝本課件是可編輯的正常PPT課件(2)載完成后,根據(jù)提示安裝pycharm,如圖所示。2.2.3Pycharm安裝本課件是可編輯的正常PPT課件(2)載完成后,根據(jù)提示安裝pycharm,如圖所示。2.2.3Pycharm安裝本課件是可編輯的正常PPT課件(3)創(chuàng)建Python項(xiàng)目,選擇項(xiàng)目路徑和配置Python解釋器,并且將其和Anaconda關(guān)聯(lián),如圖所示。2.2.3Pycharm安裝本課件是可編輯的正常PPT課件(3)創(chuàng)建Python項(xiàng)目,選擇項(xiàng)目路徑和配置Python解釋器,并且將其和Anaconda關(guān)聯(lián),如圖所示。2.2.3Pycharm安裝本課件是可編輯的正常PPT課件(4)點(diǎn)擊【AddInterpreter】添加Anaconda中的已經(jīng)存在的運(yùn)行環(huán)境,如圖所示??梢栽谑褂靡呀?jīng)存在的環(huán)境中切換Anaconda中的base環(huán)境和pytorch環(huán)境2.2.3Pycharm安裝本課件是可編輯的正常PPT課件(5)創(chuàng)建項(xiàng)目后,會(huì)自動(dòng)進(jìn)入項(xiàng)目界面,如圖所示。2.2.3Pycharm安裝本課件是可編輯的正常PPT課件(6)在項(xiàng)目中添加Python文件,如圖所示。2.2.3Pycharm安裝本課件是可編輯的正常PPT課件(7)在main.py文件中,輸入python程序,運(yùn)行后,如圖所示??梢詮膱D中看到程序能夠使用pytorch庫2.2.3Pycharm安裝本課件是可編輯的正常PPT課件2.3PyTorch基本使用2.3.1張量2.3.2數(shù)學(xué)運(yùn)算2.3.3數(shù)理統(tǒng)計(jì)本課件是可編輯的正常PPT課件2.3.1張量PyTorch的運(yùn)算單元叫作張量(tensor)。我們可以將張量理解為一個(gè)多維數(shù)組,一階張量即為一維數(shù)組,通常叫作向量(vector);二階張量即為二維數(shù)組,通常叫作矩陣(matrix);三階張量即為三維數(shù)組;n階張量即為n維數(shù)組,如圖所示。張量的定義圖2.18本課件是可編輯的正常PPT課件32位浮點(diǎn)型torch.FloatTensor。64位整型
torch.LongTensor。32位整型torch.IntTensor。Tensor的基本數(shù)據(jù)類型16位整型torch.ShortTensor。64位浮點(diǎn)型torch.DoubleTensor。本課件是可編輯的正常PPT課件1.初始化張量(1)通過基礎(chǔ)構(gòu)造函數(shù)創(chuàng)建張量(2)通過數(shù)據(jù)創(chuàng)建張量(3)根據(jù)另一個(gè)張量創(chuàng)建(4)使用隨機(jī)或恒定值創(chuàng)建本課件是可編輯的正常PPT課件1.初始化張量(1)通過基礎(chǔ)構(gòu)造函數(shù)創(chuàng)建張量例如:構(gòu)造一個(gè)3×4的張量,代碼如下:importtorchtensor=torch.Tensor(3,4)print(tensor)運(yùn)行結(jié)果如下:tensor([[0.0000e+00,0.0000e+00,0.0000e+00,0.0000e+00],[-1.7160e+18,0.0000e+00,0.0000e+00,0.0000e+00],[0.0000e+00,0.0000e+00,0.0000e+00,0.0000e+00]])本課件是可編輯的正常PPT課件1.初始化張量(2)通過數(shù)據(jù)創(chuàng)建張量張量可以直接從數(shù)據(jù)中創(chuàng)建,其數(shù)據(jù)類型是自動(dòng)推斷的,代碼如下:importtorchdata=[[3,4],[5,6]]t_data=torch.tensor(data)print(f"TensorfromData:\n{t_data}\n")程序運(yùn)行結(jié)果如下:TensorfromData:tensor([[3,4],[5,6]])本課件是可編輯的正常PPT課件1.初始化張量(3)根據(jù)另一個(gè)張量創(chuàng)建新張量保留參數(shù)張量的屬性(形狀、數(shù)據(jù)類型),除非顯式覆蓋。data=[[3,4],[5,6]]t_data=torch.tensor(data)t_ones=torch.ones_like(t_data)#保留原有張量的形狀和數(shù)據(jù)類型print(f"t_onesTensor:\n{t_ones}\n")t_rand=torch.rand_like(t_data,dtype=torch.float)#顯式更改張量的數(shù)據(jù)類型print(f"t_randTensor:\n{t_rand}\n")程序運(yùn)行結(jié)果如下:t_onesTensor:tensor([[1,1],[1,1]])t_randTensor:tensor([[0.2152,0.6244],[0.1523,0.7312]])本課件是可編輯的正常PPT課件1.初始化張量(4)使用隨機(jī)或恒定值創(chuàng)建使用隨機(jī)或恒定值創(chuàng)建張量,其中參數(shù)shape是張量維度的元組,它決定了輸出張量的形狀。代碼如下:shape=(2,3,)#創(chuàng)建2行3列的張量rand_tensor=torch.rand(shape)ones_tensor=torch.ones(shape)zeros_tensor=torch.zeros(shape)#輸出各個(gè)張量的值print(f"rand_tensor:\n{rand_tensor}\n")print(f"ones_tensor:\n{ones_tensor}\n")print(f"zeros_tensor:\n{zeros_tensor}")程序運(yùn)行代碼如下:rand_tensor:tensor([[0.1750,0.1384,0.7738],[0.8761,0.5739,0.1595]])ones_tensor:tensor([[1.,1.,1.],[1.,1.,1.]])zeros_tensor:tensor([[0.,0.,0.],[0.,0.,0.]])本課件是可編輯的正常PPT課件2.張量相關(guān)的屬性張量屬性包括形狀、數(shù)據(jù)類型和存儲(chǔ)設(shè)備等,下面我們通過程序輸出相關(guān)的屬性,代碼如下:importtorchtensor=torch.rand(2,4)print(f"Shapeoftensor:{tensor.shape}")print(f"Datatypeoftensor:{tensor.dtype}")print(f"Devicetensorisstoredon:{tensor.device}")程序運(yùn)行代碼如下:Shapeoftensor:torch.Size([2,4])Datatypeoftensor:torch.float32Devicetensorisstoredon:cpu本課件是可編輯的正常PPT課件3.張量的操作(1)將張量移動(dòng)到GPU上(2)索引和切片操作(3)連接張量本課件是可編輯的正常PPT課件3.張量的操作(1)將張量移動(dòng)到GPU上,代碼如下:tensor=torch.rand(2,4)print(f"Shapeoftensor:{tensor.shape}")print(f"Datatypeoftensor:{tensor.dtype}")print(f"Devicetensorisstoredon:{tensor.device}")#將張量移動(dòng)到GPU上iftorch.cuda.is_available():tensor=tensor.to("cuda")#輸出張量所在存儲(chǔ)設(shè)備print(f"Devicetensorisstoredon:{tensor.device}")程序運(yùn)行代碼如下:Shapeoftensor:torch.Size([2,4])DShapeoftensor:torch.Size([2,4])Datatypeoftensor:torch.float32Devicetensorisstoredon:cpuDevicetensorisstoredon:cuda:0本課件是可編輯的正常PPT課件3.張量的操作(2)索引和切片操作張量的索引和切片類似numpy的索引和切片,代碼如下:#索引和切片data=[[1,2,3],[4,5,6],[7,8,9]]t_data=torch.tensor(data)print(f"張量數(shù)據(jù)為:\n{t_data}\n")print(f"第一行:{t_data[0]}")print(f"第一列:{t_data[:,0]}")print(f"最后一列:{t_data[...,-1]}")t_data[:,1]=0#將第二列的數(shù)據(jù)賦值為0print(t_data)程序運(yùn)行代碼如下:張量數(shù)據(jù)為:tensor([[1,2,3],[4,5,6],[7,8,9]])第一行:tensor([1,2,3])第一列:tensor([1,4,7])最后一列:tensor([3,6,9])tensor([[1,0,3],[4,0,6],[7,0,9]])本課件是可編輯的正常PPT課件3.張量的操作(3)連接張量在程序中可以用torch.cat或torch.stack來拼接張量,代碼如下:。data=[[1,2,3],[4,5,6],[7,8,9]]t_data=torch.tensor(data)t1=torch.cat([t_data,t_data,t_data],dim=1)#在第1個(gè)維度拼接,即水平方向print(t1)程序輸出結(jié)果如下:tensor([[1,2,3,1,2,3,1,2,3],[4,5,6,4,5,6,4,5,6],[7,8,9,7,8,9,7,8,9]])本課件是可編輯的正常PPT課件4.張量與Numpy在CPU上的張量和NumPy數(shù)組共享它們的內(nèi)存位置,改變一個(gè)會(huì)導(dǎo)致另一個(gè)數(shù)據(jù)也變化。張量轉(zhuǎn)換為NumPy數(shù)組的代碼如下:importtorchimportnumpyasnptensor=torch.ones(2,3)print(f"tensor的值為:{tensor}")num=tensor.numpy()print(f"num的值為:{num}")程序運(yùn)行結(jié)果如下:tensor的值為:tensor([[1.,1.,1.],[1.,1.,1.]])num的值為:[[1.1.1.][1.1.1.]]本課件是可編輯的正常PPT課件4.張量與Numpy改變張量的值,numpy數(shù)組的值也隨之更改,代碼如下:importtorchimportnumpyasnptensor=torch.ones(2,3)print(f"tensor的值為:{tensor}")num=tensor.numpy()print(f"num的值為:{num}")#改變第二行的值tensor[1,:]=3print(f"修改后tensor的值為:{tensor}")print(f"修改后num的值為:{num}")程序運(yùn)行結(jié)果如下:tensor的值為:tensor([[1.,1.,1.],[1.,1.,1.]])num的值為:[[1.1.1.][1.1.1.]]修改后tensor的值為:tensor([[1.,1.,1.],[3.,3.,3.]])修改后num的值為:[[1.1.1.][3.3.3.]]本課件是可編輯的正常PPT課件4.張量與Numpy將NumPy數(shù)組num轉(zhuǎn)換為張量,代碼如下:tensor1=torch.from_numpy(num)print(f"tensor1的值:{tensor1}")改變numpy數(shù)組的值,張量的值也會(huì)發(fā)生改變,代碼如下:tensor1=torch.from_numpy(num)print(f"tensor1的值:{tensor1}")np.add(num,3,out=num)print(f"修改后num的值:{num}")print(f"修改后tensor1的值:tensor1")程序運(yùn)行結(jié)果如下:tensor1的值:tensor([[1.,1.,1.],[3.,3.,3.]])修改后num的值:[[4.4.4.][6.6.6.]]修改后tensor1的值:tensor([[4.,4.,4.],[6.,6.,6.]])本課件是可編輯的正常PPT課件5.單元素張量只有一個(gè)值的張量,可以通過item屬性轉(zhuǎn)換為數(shù)值,接著上面的操作添加如下代碼:agg=tensor1.sum()agg_item=agg.item()print(agg_item,type(agg_item))程序運(yùn)行結(jié)果為:30.0<class'float'>本課件是可編輯的正常PPT課件2.3.1
張量(1)初始化張量(2)張量的相關(guān)屬性(3)張量的操作(4)張量與numpy(5)單元素張量本課件是可編輯的正常PPT課件2.3.2數(shù)學(xué)運(yùn)算(1)矩陣相加(2)矩陣相乘(3)矩陣對(duì)應(yīng)元素相乘(4)絕對(duì)值函數(shù)(5)就地操作本課件是可編輯的正常PPT課件(1)矩陣相加在PyTorch中可以通過“+”和“torch.add(參數(shù))”方法實(shí)現(xiàn)矩陣相加操作,代碼如下:importtorcht1=torch.ones(2,3)t2=torch.ones(2,3)t3=t1+t2;print(t3)t4=torch.add(t1,t2)print(t4)程序運(yùn)行結(jié)果如下:tensor([[2.,2.,2.],[2.,2.,2.]])tensor([[2.,2.,2.],[2.,2.,2.]])2.3.2數(shù)學(xué)運(yùn)算本課件是可編輯的正常PPT課件(2)矩陣相乘矩陣相乘可以使用@,或者matmul方法,示例代碼如下:importtorchtensor=torch.ones(3,3)#矩陣相乘,y1、y2和y3的值相同y1=tensor@tensor.Ty2=tensor.matmul(tensor.T)y3=torch.rand_like(tensor)torch.matmul(tensor,tensor.T,out=y3)print(y1)print(y2)print(y3)程序運(yùn)行結(jié)果如下:tensor([[3.,3.,3.],[3.,3.,3.],[3.,3.,3.]])tensor([[3.,3.,3.],[3.,3.,3.],[3.,3.,3.]])tensor([[3.,3.,3.],[3.,3.,3.],[3.,3.,3.]])2.3.2數(shù)學(xué)運(yùn)算本課件是可編輯的正常PPT課件(3)矩陣對(duì)應(yīng)元素相乘矩陣中相對(duì)應(yīng)位置上的元素相乘可以使用“*”或mul方法來實(shí)現(xiàn),代碼如下:z1=y1*y2z2=y2.mul(y1)print(z1)print(z2)程序運(yùn)行結(jié)果如下:tensor([[9.,9.,9.],[9.,9.,9.],[9.,9.,9.]])tensor([[9.,9.,9.],[9.,9.,9.],[9.,9.,9.]])2.3.2數(shù)學(xué)運(yùn)算本課件是可編輯的正常PPT課件(4)絕對(duì)值函數(shù)計(jì)算輸入張量中每個(gè)元素的絕對(duì)值可以采用torch.abs(input,out=None),代碼如下:t1=torch.abs(torch.FloatTensor([-8,-2,-4]))print(t1)程序運(yùn)行結(jié)果如下:tensor([8.,2.,4.])2.3.2數(shù)學(xué)運(yùn)算本課件是可編輯的正常PPT課件(5)就地操作將結(jié)果存儲(chǔ)到操作數(shù)中的操作稱為就地操作。它們由_后綴表示。例如:x.copy_(y),x.t_(),會(huì)變x的值。t1=torch.abs(torch.FloatTensor([-8,-2,-4]))print(t1)t1.add_(4)print(t1)程序運(yùn)行結(jié)果如下:tensor([8.,2.,4.])tensor([12.,6.,8.])2.3.2數(shù)學(xué)運(yùn)算本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)2.分布函數(shù)3.隨機(jī)函數(shù)2.3.3數(shù)理統(tǒng)計(jì)本課件是可編輯的正常PPT課件(1)最小值(2)最大值(3)中位數(shù)(4)平均值(5)標(biāo)準(zhǔn)差(6)方差(7)眾數(shù)(8)分位數(shù)(9)累計(jì)求積1.統(tǒng)計(jì)函數(shù)本課件是可編輯的正常PPT課件(1)最小值:min()/amin()/argmin()/minimum()min返回最小值和對(duì)應(yīng)的索引,amin返回最小值,argmin返回索引。函數(shù)如下:torch.min(input,dim,keepdim=False,*,out=None)torch.amin(input,dim,keepdim=False,*,out=None)torch.argmin(input,dim=None,keepdim=False)1.統(tǒng)計(jì)函數(shù)本課件是可編輯的正常PPT課件示例代碼如下:importtorchx=torch.tensor([[6,3,9],[4,5,6]])#返回每行中的最小值和索引values,index=torch.min(x,dim=1)print(values,index)#返回每行中的最小值values=torch.amin(x,dim=1)print(values)#返回每行中最小值的索引index=torch.argmin(x,dim=1)print(index)程序運(yùn)行結(jié)果如下:tensor([3,4])tensor([1,0])tensor([3,4])tensor([1,0])1.統(tǒng)計(jì)函數(shù)本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)比較兩個(gè)張量,并返回對(duì)應(yīng)位置的最小值,使用minimum()函數(shù),示例代碼如下:importtorcha=torch.tensor((6,3,9))b=torch.tensor((4,5,6))c=torch.minimum(a,b)print(c)程序運(yùn)行結(jié)果如下:tensor([4,3,6])本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)(2)最大值:max()/amax()/argmax()/maximum()max返回最大值和對(duì)應(yīng)的索引,amax返回最大值,argmax返回索引.函數(shù)定義如下:torch.max(input,dim,keepdim=False,*,out=None)torch.amax(input,dim,keepdim=False,*,out=None)torch.argmax(input,dim=None,keepdim=False)本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)示例代碼如下:x=torch.tensor([[6,3,9],[4,5,6]])#返回每行中的最大值和索引values,index=torch.max(x,dim=1)print(values,index)#返回每行中的最大值values=torch.amax(x,dim=1)print(values)#返回每行中最大值的索引index=torch.argmax(x,dim=1)print(index)運(yùn)行結(jié)果如下:tensor([9,6])tensor([2,2])tensor([9,6])tensor([2,2])本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)比較兩個(gè)張量,返回對(duì)應(yīng)位置上的最大值使用maximum()函數(shù),代碼如下:a=torch.tensor((6,3,9))b=torch.tensor((4,5,6))c=torch.maximum(a,b)print(c)運(yùn)行結(jié)果如下:tensor([6,5,9])本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)該函數(shù)支持廣播機(jī)制,可返回兩個(gè)不同形狀的張量中相同位置的最大值,代碼如下:importtorchx1=torch.tensor([[1,2,4],[10,11,12]])x2=torch.tensor([[4,5,6]])y=torch.maximum(x1,x2)print(y)運(yùn)行結(jié)果如下:tensor([[4,5,6],[10,11,12]])本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)(3)中位數(shù):median()/nanmedian()median()函數(shù)用于返回所有元素的中位數(shù)函數(shù)定義如下:torch.median(input,dim=-1,keepdim=False,*,out=None)本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)示例代碼如下:importtorchx=torch.tensor([[1.0,2.0,3.0]])y=torch.median(x)print(y)#tensor(2.)本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)如果共有偶數(shù)個(gè)元素,則會(huì)有兩個(gè)中位數(shù),返回較小的那一個(gè)。importtorchx=torch.tensor([[1.0,2.0,3.0,4.0]])y=torch.median(x)print(y)#tensor(2.)本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)返回指定維度的元素的中位數(shù)。importtorchx=torch.tensor([[1,-3,5],[7,0,2]])y=torch.median(x,1)print(y[0])#tensor([1,2])中位數(shù)print(y[1])#tensor([0,2])對(duì)應(yīng)的索引本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)如果元素中有nan,則返回nan。importtorchx=torch.tensor([1.0,torch.nan,2.0])y=torch.median(x)print(y)#tensor(nan)本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)如果張量中有nan元素,則忽略,采用nanmedian()函數(shù),代碼如下:importtorchx=torch.tensor([1.0,torch.nan,2.0])y=torch.nanmedian(x)print(y)#tensor(1.)本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)(4)平均值mean()/nanmean()計(jì)算所有元素或指定維度的元素的均值采用mean()函數(shù)其定義如下:torch.mean(input,dim,keepdim=False,*,dtype=None,out=None)本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)示例代碼如下:importtorchx=torch.tensor([[1.0,2.0],[3.0,2.0]])y=torch.mean(x)#y=x.mean()print(y)#tensor(2.)importtorchx=torch.tensor([[1.0,2.0],[3.0,2.0]])y=torch.mean(x,axis=1)#y=x.mean(dim=1)print(y)#tensor([1.5000,2.5000])本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)如果值中有nan,則均值返回nan,代碼如下。importtorchx=torch.tensor([[torch.nan,2.0],[3.0,2.0]])y=torch.mean(x)print(y)#tensor(nan)本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)計(jì)算指定維度的非nan元素的均值,可以采用nanmean()函數(shù),代碼如下:importtorchx=torch.tensor([[torch.nan,2.0],[3.0,2.0]])y=torch.nanmean(x,dim=1)#y=x.nanmean(dim=1)print(y)#tensor([2.0000,2.5000])本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)(5)求和
sum()/nansum()/cumsum()計(jì)算指定維度的元素的和,采用sum()函數(shù)其定義如下:torch.sum(input,dim,keepdim=False,*,dtype=None)示例代碼如下:importtorchx=torch.tensor([[1,2],[3.,4.]])y=torch.sum(x,axis=0)print(y)#tensor([4.,6.])本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)計(jì)算指定維度的非nan元素的和,采用nansum()函數(shù)示例代碼如下:importtorchx=torch.tensor([[1,2],[3.,float("nan")]])y=torch.nansum(x)print(y)#tensor(6.)本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)在指定的維度累計(jì)求和需要指定dim參數(shù),示例代碼如下:importtorchx=torch.tensor([[1,2],[3.,float("nan")]])y=torch.nansum(x,dim=1)print(y)#tensor([3.,3.])本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)累計(jì)求和采用cumsum函數(shù),cumsum函數(shù)示例代碼如下:importtorchx=torch.tensor([[1,2],[3.,4.]])y=torch.cumsum(x,axis=0)print(y)#tensor([[1.,2.],[4.,6.]])本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)(6)標(biāo)準(zhǔn)差:std()定義如下:torch.std(input,dim,unbiased,keepdim=False,*,out=None)示例代碼如下:importtorchx=torch.tensor([[1,2],[3.,4.]])y=torch.std(x,dim=0)print(y)#tensor([1.4142,1.4142])本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)(7)方差:var()定義如下:torch.var(input,dim,unbiased,keepdim=False,*,out=None)示例代碼如下:importtorchx=torch.tensor([[1,2],[3.,4.]])y=torch.var(x,dim=0)print(y)#tensor([2.,2.])本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)(8)眾數(shù):mode()torch.mode(input,dim)返回的是指定維度的眾數(shù)的還有該眾數(shù)的索引;示例代碼如下:importtorchx=torch.tensor([1,2,2,3,3,3])values,index=torch.mode(x)print(values)#tensor(3)眾數(shù)print(index)#tensor(5)最后一次出現(xiàn)的位置本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)(9)分位數(shù)quantile()/unquantile()定義如下:torch.quantile(input,q,dim=None,keepdim=False,*,out=None)示例代碼如下:importtorchx=torch.tensor([1.,2.,3.,4.,5.])q=torch.tensor([0.25,0.5,0.75])y=torch.quantile(x,q,dim=0,keepdim=True)print(y)#tensor([[2.],[3.],[4.]])本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)使用nanquantile()函數(shù)忽略掉nan值,去求分位數(shù),示例代碼如下:importtorchx=torch.tensor([1.,2.,3.,4.,5.,float('nan')])q=torch.tensor([0.25,0.5,0.75])y=torch.quantile(x,q,dim=0,keepdim=True)print(y)#tensor([[2.],[3.],[4.]])本課件是可編輯的正常PPT課件1.統(tǒng)計(jì)函數(shù)(10)累計(jì)求積:prod()定義如下:d(input,dim,keepdim=False,*,dtype=None)示例代碼如下:importtorchx=torch.tensor([1.,2.,3.])y=d(x)print(y)#tensor(6.)#計(jì)數(shù):count_nonzero()#torch.count_nonzero(input,dim=None)importtorchx=torch.tensor([[1,2,0],[3.,4.,0]])y=torch.count_nonzero(x,dim=0)print(y)#tensor([2,2,0])本課件是可編輯的正常PPT課件2.分布函數(shù)(1)正態(tài)分布函數(shù)(2)伯努利分布函數(shù)(3)泊松分布函數(shù)(4)多元正態(tài)分布函數(shù)本課件是可編輯的正常PPT課件2.分布函數(shù)(1)正態(tài)分布:normal()正態(tài)分布函數(shù)mormal()的定義如下:torch.normal(mean,std,*,generator=None,out=None)該函數(shù)返回一個(gè)張量,包含從給定參數(shù)means,std的離散正態(tài)分布中抽取隨機(jī)數(shù)。使用該函數(shù)的示例代碼如下:importtorchx=torch.normal(mean=torch.arange(1.,6.),std=torch.arange(1,0,-0.2))print(x)#tensor([1.7975,1.8425,3.0575,3.3935,5.3791])本課件是可編輯的正常PPT課件2.分布函數(shù)共享均值的代碼如下:importtorchx=torch.normal(mean=1.,std=torch.arange(1,0,-0.2))print(x)#tensor([1.9187,1.1210,0.3641,0.9876,1.2493])共享標(biāo)準(zhǔn)差的代碼如下:importtorchx=torch.normal(mean=torch.arange(1,0,-0.2),std=1.)print(x)#tensor([0.5276,1.8708,-1.4019,-0.7807,1.0124])本課件是可編輯的正常PPT課件2.分布函數(shù)(2)伯努利分布:bernoulli()伯努利分布函數(shù)bernoulli()的定義如下:torch.bernoulli(input,*,generator=None,out=None)根據(jù)隨機(jī)矩陣,值為(0,1),產(chǎn)生隨機(jī)數(shù)0或1。importtorchx=torch.empty(3,3).uniform_(0,1)y=torch.bernoulli(x)print(x)print(y)運(yùn)行結(jié)果:tensor([[0.8473,0.8749,0.6483],[0.2148,0.9493,0.0121],[0.1809,0.1877,0.2927]])tensor([[1.,1.,1.],[0.,1.,0.],[1.,1.,1.]])本課件是可編輯的正常PPT課件2.分布函數(shù)對(duì)于1值輸入,伯努利返回的也是1值。importtorchx=torch.ones(2,2)y=torch.bernoulli(x)print(x)print(y)運(yùn)行結(jié)果:tensor([[1.,1.],[1.,1.]])tensor([[1.,1.],[1.,1.]])本課件是可編輯的正常PPT課件2.分布函數(shù)對(duì)于0值輸入,伯努利返回的也是0值。importtorchx=torch.zeros(2,2)y=torch.bernoulli(x)print(x)print(y)運(yùn)行結(jié)果:tensor([[0.,0.],[0.,0.]])tensor([[0.,0.],[0.,0.]])本課件是可編輯的正常PPT課件2.分布函數(shù)(3)泊松分布:poisson()泊松分布函數(shù)的定義如下:torch.poisson(input,generator=None)使用泊松分布的示例代碼如下:importtorchx=torch.rand(2,2)*5y=torch.poisson(x)print(x)#tensor([[2.0526,3.9384],[1.0724,2.4068]])本課件是可編輯的正常PPT課件2.分布函數(shù)(4)多元正態(tài)分布:multinomial()多元正態(tài)分布函數(shù)的定義與說明如下:torch.multinomial(input,num_samples,replacement=False,*,generator=None,out=None)參數(shù)說明如下:input:輸入的張量num_samples:每行的取值次數(shù),該值不能大于每一行的元素?cái)?shù),否則會(huì)報(bào)錯(cuò)。replacement:布爾值表示取樣時(shí)有無放回,True是有放回,F(xiàn)alse無放回。本課件是可編輯的正常PPT課件2.分布函數(shù)對(duì)于無放回抽樣的示例代碼如下:importtorchweights=torch.tensor([10,20,30],dtype=torch.float)x=torch.multinomial(weights,3)print(x)#tensor([1,2,0])本課件是可編輯的正常PPT課件2.分布函數(shù)對(duì)于有放回抽樣的示例代碼如下:importtorchweights=torch.tensor([10,20,30],dtype=torch.float)x=torch.multinomial(weights,4,replacement=True)print(x)#tensor([0,1,1,2])本課件是可編輯的正常PPT課件2.分布函數(shù)對(duì)于多維張量的抽樣代碼如下:importtorchweights=torch.tensor([[10,20,30],[50,60,70]],dtype=torch.float)x=torch.multinomial(weights,2)print(x)#tensor([[1,2],[2,0]])本課件是可編輯的正常PPT課件3.隨機(jī)函數(shù)(1)隨機(jī)種子函數(shù)(2)返回隨機(jī)數(shù)種子函數(shù)本課件是可編輯的正常PPT課件3.隨機(jī)函數(shù)(1)隨機(jī)種子:seed()/manual_seed()/使用seed()的代碼如下:torch.seed()#13778702264380944972在需要生成隨機(jī)數(shù)的實(shí)驗(yàn)中,確保每次運(yùn)行.py文件時(shí),使用manual_seed(seed)生成的隨機(jī)數(shù)都是固定的,這樣每次實(shí)驗(yàn)結(jié)果顯示也就一致了,其函數(shù)定義如下:torch.manual_seed(seed)使用該函數(shù)生成隨機(jī)數(shù),示例代碼如下:importtorchtorch.manual_seed(1)x=torch.rand(1,2)print(x)#tensor([[0.7576,0.2793]])本課件是可編輯的正常PPT課件3.隨機(jī)函數(shù)(2)返回隨機(jī)數(shù)種子:initial_seed()示例代碼如下:importtorchtorch.manual_seed(3)x=torch.initial_seed()print(x)#3本課件是可編輯的正常PPT課件2.3PyTorch基本使用2.3PyTorch基本使用2.3.1張量(1)初始化張量(2)張量的相關(guān)屬性(3)張量的操作(4)張量與numpy(5)單元素張量2.3.2數(shù)學(xué)運(yùn)算(1)矩陣相加(2)矩陣相乘(3)矩陣對(duì)應(yīng)元素相乘(4)絕對(duì)值函數(shù)(5)就地操作2.3.3數(shù)理統(tǒng)計(jì)1.統(tǒng)計(jì)函數(shù)(1)最小值(2)最大值(3)中位數(shù)(4)平均值(5)標(biāo)準(zhǔn)差(6)方差(7)眾數(shù)(8)分位數(shù)(9)累計(jì)求積2.分布函數(shù)(1)正態(tài)分布函數(shù)(2)伯努利分布函數(shù)(3)泊松分布函數(shù)(4)多元正態(tài)分布函數(shù)3.隨機(jī)函數(shù)(1)隨機(jī)種子函數(shù)(2)返回隨機(jī)數(shù)種子函數(shù)本課件是可編輯的正常PPT課件2.4實(shí)踐任務(wù)任務(wù)1認(rèn)識(shí)線性回歸任務(wù)2準(zhǔn)備數(shù)據(jù)任務(wù)3設(shè)計(jì)模型任務(wù)4訓(xùn)練模型任務(wù)5預(yù)測(cè)數(shù)據(jù)本課件是可編輯的正常PPT課件任務(wù)1認(rèn)識(shí)線性回歸線性回歸是利用數(shù)理統(tǒng)計(jì)中回歸分析,來確定兩種或兩種以上變量間相互依賴的定量關(guān)系的
一種統(tǒng)計(jì)分析方法,
運(yùn)用十分廣泛?;貧w分析中,只包括一個(gè)自變量和一個(gè)因變量,且二者的關(guān)系可用一條直線近似表示,這種回歸分析稱為一元線性回歸分析。如果回歸分析中包括兩個(gè)或兩個(gè)以上的自變量,且因變量和自變量之間是線性關(guān)系,則稱為多元線性回歸分析。本課件是可編輯的正常PPT課件任務(wù)1認(rèn)識(shí)線性回歸線性回歸屬于回歸算法,表達(dá)監(jiān)督學(xué)習(xí)的過程。通過屬性的線性組合來預(yù)測(cè)函數(shù),其線性模型基本形式為:一般向量形式寫成:
其中w=(w1;w2;…;wd)。w1;w2;…;wd為模型訓(xùn)練數(shù)據(jù)中學(xué)習(xí)到的參數(shù),或賦予每個(gè)變量的“權(quán)值”。b也是一個(gè)學(xué)習(xí)到的參數(shù),這個(gè)線性函數(shù)中的常量也稱為模型的偏置。本課件是可編輯的正常PPT課件任務(wù)2準(zhǔn)備數(shù)據(jù)為了更好地理解前面所講的概念,本節(jié)將引入一個(gè)案例:根據(jù)程序員的編程代碼量來預(yù)測(cè)其編程水平測(cè)試的成績(jī)。我們將實(shí)現(xiàn)一個(gè)線性回歸模型,并用梯度下降算法求解該模型,從而給出預(yù)測(cè)直線。這個(gè)實(shí)例問題是:假如有歷史編程代碼量和成績(jī)的數(shù)據(jù),我們應(yīng)如何預(yù)測(cè)未來某個(gè)程序員的編程水平成績(jī)呢?針對(duì)這個(gè)問題,我們的求解步驟包括:準(zhǔn)備數(shù)據(jù)、設(shè)計(jì)模型、訓(xùn)練和預(yù)測(cè)。
本課件是可編輯的正常PPT課件任務(wù)2準(zhǔn)備數(shù)據(jù)首先,我們編造一批代碼量的數(shù)據(jù)。代碼量數(shù)據(jù)就可以為0,1,2,3…,每個(gè)數(shù)表示以百行為單位,例如3表示300行代碼量
本課件是可編輯的正常PPT課件任務(wù)2準(zhǔn)備數(shù)據(jù)
我們可以用PyTorch的linspace來構(gòu)造0~100之間的均勻數(shù)字作為代碼量的變量x:本課件是可編輯的正常PPT課件任務(wù)2準(zhǔn)備數(shù)據(jù)然后,我們生成對(duì)應(yīng)的編程成績(jī)數(shù)據(jù),假設(shè)它就是在x的基礎(chǔ)上加上一定的噪聲,實(shí)現(xiàn)代碼如下:本課件是可編輯的正常PPT課件任務(wù)2準(zhǔn)備數(shù)據(jù)這樣我們就構(gòu)造了一個(gè)數(shù)據(jù)集,x表示代碼量,y表示編程水平成績(jī)。在這100個(gè)不同的代碼量????和每一個(gè)成績(jī)????對(duì)應(yīng),其中,每個(gè)<????,????>稱為一個(gè)樣本點(diǎn)。本課件是可編輯的正常PPT課件任務(wù)2準(zhǔn)備數(shù)據(jù)下面,我們將數(shù)據(jù)集切分成訓(xùn)練集和測(cè)試集兩部分。本課件是可編輯的正常PPT課件任務(wù)2準(zhǔn)備數(shù)據(jù)接下來,我們對(duì)訓(xùn)練數(shù)據(jù)點(diǎn)進(jìn)行可視化:圖2.19模擬編程水平數(shù)據(jù)集的散點(diǎn)圖本課件是可編輯的正常PPT課件任務(wù)3設(shè)計(jì)模型并讓它盡可能地小。本課件是可編輯的正常PPT課件任務(wù)3設(shè)計(jì)模型
本課件是可編輯的正常PPT課件任務(wù)3設(shè)計(jì)模型在計(jì)算的過程中,我們需要計(jì)算出??對(duì)??、??的偏導(dǎo)數(shù),利用PyTorch的:
backward()可以非常方便地將這兩個(gè)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 草房子讀后感成長(zhǎng)中的困惑與希望
- 節(jié)約用水產(chǎn)品推廣合作協(xié)議
- 數(shù)據(jù)驅(qū)動(dòng)的智能營(yíng)銷策略推廣合同
- 紅色經(jīng)典故事紅巖讀后感
- 社交電商大數(shù)據(jù)驅(qū)動(dòng)平臺(tái)
- 專利使用費(fèi)支付協(xié)議
- 桃花源記情景劇教案
- 農(nóng)業(yè)生產(chǎn)資源節(jié)約與環(huán)境保護(hù)行動(dòng)計(jì)劃
- 產(chǎn)品設(shè)計(jì)思路表格
- 高考語文的文言文翻譯誤區(qū)分析
- GB/T 17421.2-2023機(jī)床檢驗(yàn)通則第2部分:數(shù)控軸線的定位精度和重復(fù)定位精度的確定
- 重慶市渝北區(qū)大灣鎮(zhèn)招錄村綜合服務(wù)專干模擬預(yù)測(cè)(共500題)筆試參考題庫+答案詳解
- 矢量分析和場(chǎng)論基礎(chǔ)
- 進(jìn)步粘滯流體阻尼器埋件的一次驗(yàn)收合格率
- 小升初面試英語自我介紹范文4篇
- 高職院校創(chuàng)新創(chuàng)業(yè)教育數(shù)字化轉(zhuǎn)型和改革研究
- 酒店住宿水單模板-可修改
- 合作公司變更函范文(必備6篇)
- 全國(guó)2017年10月自考00043經(jīng)濟(jì)法概論(財(cái)經(jīng)類)試題及答案
- 2023年山東力明科技職業(yè)學(xué)院?jiǎn)握忻嬖嚹M試題及答案解析
- 少兒美術(shù)繪本教案課件-3-6歲 《100層巴士》
評(píng)論
0/150
提交評(píng)論