頭歌之動手學人工智能-Pytorch 之autograd

目錄

第1關:Variable

任務描述

編程要求

測試說明

沒有偉大的愿望,就沒有偉大的天才。——巴爾扎克開始你的任務吧,祝你成功!

第2關:Variable 屬性

任務描述

編程要求

測試說明

真正的科學家應當是個幻想家;誰不是幻想家,誰就只能把自己稱為實踐家。 —— 巴爾扎克開始你的任務吧,祝你成功!

第3關:梯度初探

任務描述

編程要求

測試說明

科學的界限就像地平線一樣:你越接近它,它挪得越遠。——布萊希特開始你的任務吧,祝你成功!

第4關:梯度進階

任務描述

編程要求

測試說明

真正的科學家應當是個幻想家;誰不是幻想家,誰就只能把自己稱為實踐家。 —— 巴爾扎克開始你的任務吧,祝你成功!


第1關:Variable

恭喜大家進入 ?Pytorch 最為核心的學習——autograd,這是 ?Pytorch 中區別其他機器學習庫的一個重要元素。準備好了嗎?讓我們一探它的廬山真面目吧!

  • 任務描述

本關任務:本關提供了一個張量變量tensor ,根據所給的張量創建 Variable 變量v,同時要求同學們掌握 Variable 的相關屬性,例如如何獲得 Variable 的 data 屬性。

  • 編程要求

本關涉及的代碼文件為 createVariable.py,本次編程任務是補全右側代碼片段中 Begin 至 End 中間的代碼,具體要求如下:

根據所給的張量創建 Variable 變量 v。
具體請參見后續測試樣例。

  • 測試說明

本關涉及的測試文件為 createVariable.py ,運行用戶填寫后的程序判斷正誤。

根據程序的輸出判斷程序是否正確,若正確則輸出下面的預期輸出,否則報錯。

請注意輸出格式及規范。

以下是測試樣例:

測試輸入:
預期輸出:
Variable containing:
?1 ?4 ?2
?3 ?1 ?4
[torch.FloatTensor of size 2x3]

沒有偉大的愿望,就沒有偉大的天才。——巴爾扎克
開始你的任務吧,祝你成功!
import torch
from torch.autograd import Variable
tensor = torch.FloatTensor([[1,4,2],[3,1,4]])#/********** Begin *********/
v = Variable(tensor,requires_grad=True)
#/********** End *********/
print(v)

第2關:Variable 屬性

本關將介紹 Variable 屬性方面的知識,讓同學們對其更加熟悉,便于掌握。

  • 任務描述

本關要求掌握Variable 的基本屬性及其意義,如requires_grad屬性標記著該Variable 是否需要求導。

本關任務:本關提供了一個32位浮點型的張量 x,要求同學們根據 x創建一個Variable類型的變量 y, y是由 x 的平方計算得到,并輸出y的Requires Gradiet屬性和Gradient屬性。

  • 編程要求

本關涉及的代碼文件為attributes.py,本次的編程任務是補全右側代碼片段中Begin至End中間的代碼,具體要求如下:

創建一個變量 ?y,由 ?x 的平方計算得到,并輸出;

輸出 y 的Requires Gradient屬性;

輸出 y 的Gradient屬性。

具體請參見后續測試樣例。

  • 測試說明

測試過程:

本關涉及的測試文件為attributes.py,運行用戶填寫后的程序判斷正誤。

根據程序的輸出判斷程序是否正確,若正確則輸出下面的預期輸出,否則報錯。

請注意輸出格式及規范。

以下是測試樣例:

測試輸入:
預期輸出:

Variable containing:
?1
?4
?9
[torch.FloatTensor of size 3]

Requires Gradient : True?
Gradient : None?

真正的科學家應當是個幻想家;誰不是幻想家,誰就只能把自己稱為實踐家。 —— 巴爾扎克
開始你的任務吧,祝你成功!
import torch
from torch.autograd import Variable
import warnings  
# 忽略特定警告  
warnings.filterwarnings("ignore", message="The .grad attribute of a Tensor that is not a leaf Tensor is being accessed.*") x = torch.FloatTensor([1,2,3])
x = Variable(x, requires_grad=True)#/********** Begin *********/
#創建一個變量 y,由 x 的平方計算得到
y = x * x
#按照要求輸出y相應的屬性
print(y)
print('Requires Gradient : %s ' % (y.requires_grad))
print('Gradient : %s ' % (y.grad))
#/********** End *********

第3關:梯度初探

接下來讓我們一探神秘的梯度求導吧!

  • 任務描述

結合上一關卡所介紹的Variable屬性,我們將進一步學習Variable的反向傳播函數backward,從而計算出其梯度的大小。

本關任務:

本關提供了一個 Variable 類型的變量x,并將x的 requires_grad設置為True,以便后續的求導操作。在 x 基礎上進行相應的運算得到y ,在 y的基礎上進行運算得到z,令變量out為 z 的平均值,計算out 的梯度并輸出x的梯度值。求導計算的步驟如下所示:

  • 編程要求

本關涉及的代碼文件為gradient.py,本次編程任務是補全右側代碼片段中Begin至End中間的代碼,具體要求如下:

在 x 基礎上進行運算, y = x + 2;

在 y 基礎上進行運算, z = y * y * 3;

令變量out為 z 的平均值并輸出;

計算 out 的梯度并輸出x的梯度值;

具體請參見后續測試樣例。

  • 測試說明

測試過程:

本關涉及的測試文件為gradient.py,運行用戶填寫后的程序判斷正誤。

根據程序的輸出判斷程序是否正確,若正確則輸出下面的預期輸出,否則報錯。

請注意輸出格式及規范。

以下是測試樣例:

測試輸入:
預期輸出:

output:
?Variable containing:
?40.5000
[torch.FloatTensor of size 1]

Variable containing:
?3.0000
?4.5000
?6.0000
?7.5000
[torch.FloatTensor of size 4]

科學的界限就像地平線一樣:你越接近它,它挪得越遠。——布萊希特
開始你的任務吧,祝你成功!

import torch
from torch.autograd import Variable x = Variable(torch.Tensor(range(4)), requires_grad=True)
#/********** Begin *********/
#在 x 基礎上進行運算, y = x + 2
y = x + 2
#在 y 基礎上進行運算, z = y * y * 3
z = y * y * 3
#令變量 out 為 z 的平均值并輸出
out = z.mean()#計算 out 的梯度并輸出x的梯度值
out.backward(retain_graph=True)
print('output:')
print(out.item())print(x.grad)
#/********** End *********

第4關:梯度進階

在上一關卡中,我們學習了利用.backward ()對Variable 變量進行反向傳播求導,本關將介紹另一種求解梯度的方法——torch.autograd.grad。

  • 任務描述

本關任務:

本關提供了Variable 類型的變量x和Variable 類型的變量y,并將x 和y的requires_grad設置為True以便后續的求導操作。在 x和y的基礎上進行運算得到z,利用torch.autograd.grad方法求梯度 dz_dx和dz_dy。

  • 編程要求

本關涉及的代碼文件為autograd_grad.py,本次編程任務是補全右側代碼片段中Begin至End中間的代碼,具體要求如下:

計算 z = x*x + 3*y;

求梯度 dz_dx和dz_dy 并輸出;

具體請參見后續測試樣例。

  • 測試說明

測試過程:

本關涉及的測試文件為autograd_grad.py,運行用戶填寫后的程序判斷正誤;

根據程序的輸出判斷程序是否正確,若正確則輸出下面的預期輸出,否則報錯;

請注意輸出格式及規范。

以下是測試樣例:

dz_dx:?
?(Variable containing:
? 2 ? 4 ? 6
? 8 ?10 ?12
[torch.FloatTensor of size 2x3]
,)
dz_dy:?
?(Variable containing:
?3 ?3 ?3
?3 ?3 ?3
[torch.FloatTensor of size 2x3]
,)

真正的科學家應當是個幻想家;誰不是幻想家,誰就只能把自己稱為實踐家。 —— 巴爾扎克
開始你的任務吧,祝你成功!
import torch
from torch.autograd import Variablex = Variable(torch.unsqueeze(torch.linspace(1, 6, 6), dim = 1).view(2, 3), requires_grad=True)y = Variable(torch.Tensor(2, 3).uniform_(-1, 1), requires_grad=True)#/********** Begin *********/
#計算 z = x*x + 3*y
z = x*x + 3*y#求dz_dx和dz_dy 并輸出
dz_dx = torch.autograd.grad(z, x, grad_outputs=torch.ones_like(z))
dz_dy = torch.autograd.grad(z, y, grad_outputs=torch.ones_like(z))
print("dz_dx: \n",dz_dx)
print("dz_dy: \n",dz_dy)
#/********** End *********/ 

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/82687.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/82687.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/82687.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

篇章二 數據結構——前置知識(二)

目錄 1. 包裝類 1.1 包裝類的概念 1.2 基本數據類型和對應的包裝類 1.3 裝箱和拆箱 1.4 自動裝箱和自動拆箱 1.5 練習 —— 面試題 2. 泛型 2.1 如果沒有泛型——會出現什么情況&#xff1f; 2.2 語法 2.3 裸類型 1.沒有寫<> 但是沒有報錯為什么&#xff1f; …

Git典型使用場景相關命令

Git典型使用場景相關命令 1 建立本地倉庫與遠程倉庫的聯系2 作為開發者參與項目的常用命令2-1 一般步驟2-2 **合并與同步主分支改動**2-3 **查看日志和差異**2-4 **提交后想修改或撤銷**2-5 分支管理2-6 清除未被追蹤的文件&#xff08;謹慎使用&#xff09; 3 作為遠程倉庫管理…

redis緩存-更新策略-三大緩存問題

緩存&#xff1a;數據交換的緩沖區&#xff0c;存儲的數據的臨時地方&#xff0c;讀寫性能較高。 步驟&#xff1a; 先從redis里面查詢 緩存命中&#xff1a;直接返回結果緩存未命中 從數據庫里面查詢 沒有數據&#xff1a;返回null有數據&#xff1a;存到redis里面&#xff…

[TriCore] 01.QEMU 虛擬化 TriCore 架構中的寄存器 指令

目錄 1.寄存器宏 - FIELD() 2.寄存器操作 - FIELD_SETTER() & FIELD_GETTER() 3.指令輔助方法 - HELPER() 3.1.輔助宏 3.2.指令示例 3.3.函數調用 4.PSW 寄存器讀寫 - psw_read() & psw_write() 1.寄存器宏 - FIELD() FIELD() 宏定義寄存器 MASK // include/hw…

《軟件工程》第 4 章 - 需求獲取

在軟件工程中&#xff0c;需求獲取是挖掘用戶真實需求的關鍵步驟&#xff0c;它為后續的設計、開發和測試提供堅實基礎。本章將圍繞需求獲取的流程、方法及工具展開&#xff0c;結合實際案例與 Java 代碼&#xff0c;深入講解這一重要環節。 4.1 軟件需求的初始表示 4.1.1 用例…

react diff 算法

diff 算法作為 Virtual DOM 的加速器&#xff0c;其算法的改進優化是 React 整個界面渲染的基礎和性能的保障&#xff0c;同時也是 React 源碼中最神秘的&#xff0c;最不可思議的部分 diff 算法會幫助我們就算出 VirtualDOM 中真正變化的部分&#xff0c;并只針對該部分進行原…

Gin項目腳手架與標配組件

文章目錄 前言設計思想和原則? 技術棧視頻實況教程sponge 內置了豐富的組件(按需使用)幾個標配常用組件主要技術點另一個參考鏈接 前言 軟件和汽車一樣&#xff0c;由多個重要零部件組裝而成。 本文堆積了一些常用部件&#xff0c;還沒來得及好好整理。先放著。 神兵利器雖多…

【Webtrees 手冊】第 10章 - 用戶體驗

Webtrees 手冊/用戶體驗 < Webtrees 手冊 跳轉到導航跳轉到搜索 信息 手冊部分仍在建設中 請耐心等待或隨意貢獻自己的力量:-)。 第 10 章 - 用戶體驗 <- 章節概述 目錄 1多位系譜學家的合作 1.1家庭研究模型1.2“孤膽戰士”模型1.3示范“本地家庭書”1.4模特“俱樂部”…

Linux 進程概念(下)

目錄 前言 4.進程狀態 一.普遍的操作系統層面上宏觀概念&#xff1a; 二.具體的Linux操作系統的狀態&#xff1a; 5.進程優先級&#xff08;了解&#xff09; 6.其他概念 進程切換 前言 本篇是接著上一篇的內容繼續往下了解進程相關的一些概念&#xff01; 4.進程狀態 運…

使用java實現word轉pdf,html以及rtf轉word,pdf,html

word,rtf的轉換有以下方案&#xff0c;想要免費最靠譜的是LibreOffice方案, LibreOffice 是一款 免費、開源、跨平臺 的辦公軟件套件&#xff0c;旨在為用戶提供高效、全面的辦公工具&#xff0c;適用于個人、企業和教育機構。它支持多種操作系統&#xff08;Windows、macOS、…

IP證書的作用與申請全解析:從安全驗證到部署實踐

在網絡安全領域&#xff0c;IP證書&#xff08;IP SSL證書&#xff09;作為傳統域名SSL證書的補充方案&#xff0c;專為公網IP地址提供HTTPS加密與身份驗證服務。本文將從技術原理、應用場景、申請流程及部署要點四個維度&#xff0c;系統解析IP證書的核心價值與操作指南。 一…

GitLab 18.0 正式發布,15.0 將不再受技術支持,須升級【三】

GitLab 是一個全球知名的一體化 DevOps 平臺&#xff0c;很多人都通過私有化部署 GitLab 來進行源代碼托管。極狐GitLab 是 GitLab 在中國的發行版&#xff0c;專門為中國程序員服務。可以一鍵式部署極狐GitLab。 學習極狐GitLab 的相關資料&#xff1a; 極狐GitLab 官網極狐…

超簡單Translation翻譯模型部署

Helsinki-NLP/opus-mt-{en}-{zh}系列翻譯模型可以實現200多種語言翻譯&#xff0c;Helsinki-NLP/opus-mt-en-zh是其中英互譯模型。由于項目需要&#xff0c;在本地進行搭建&#xff0c;并記錄下搭建過程&#xff0c;方便后人。 1. 基本硬件環境 CPU&#xff1a;N年前的 Intel…

Go語言JSON 序列化與反序列化 -《Go語言實戰指南》

JSON&#xff08;JavaScript Object Notation&#xff09;是一種常見的數據交換格式。Go 標準庫提供了 encoding/json 包&#xff0c;用于方便地將結構體與 JSON 之間互轉。 一、序列化&#xff08;Marshal&#xff09; 將 Go 中的數據結構&#xff08;如結構體、map、slice 等…

免費PDF工具-PDF24V9.16.0【win7專用版】

【百度】https://pan.baidu.com/s/1H7kvHudG5JTfxHg-eu2grA?pwd8euh 提取碼: 8euh 【夸克】https://pan.quark.cn/s/92080b2e1f4c 【123】https://www.123912.com/s/0yvtTd-XAHjv https://creator.pdf24.org/listVersions.php

網絡 :序列和反序列化

網絡 &#xff1a;序列和反序列化 &#xff08;一&#xff09;序列和反序列 概念&#xff08;二&#xff09;實例1. 封裝socket 接口2. 制定協議&#xff08;用于實現序列和反序列化&#xff09;3. 計算(實現計算器功能)4. 服務器(將上面所有的類功能調用起來)5. 服務端6.客戶端…

LiveQing 視頻點播流媒體 RTMP 推流服務功能:搭建 RTMP 視頻流媒體服務詳細指南

LiveQing視頻點播流媒體RTMP推流服務功能&#xff1a;搭建RTMP視頻流媒體服務詳細指南 一、流媒體服務搭建二、推流工具準備三、創建鑒權直播間四、獲取推流地址五、配置OBS推流六、推流及播放七、獲取播放地址7.1 頁面查看視頻源地址7.2 接口查詢 八、相關問題解決8.1 大疆無人…

UE5 Niagara 如何讓四元數進行旋轉

Axis Angle中&#xff0c;X,Y,Z分別為旋轉的軸向&#xff0c;W為旋轉的角度&#xff0c;在這里旋轉角度不需要除以2&#xff0c;因為里面已經除了&#xff0c;再將計算好的四元數與要進行旋轉的四元數進行相乘&#xff0c;結果就是按照原來的角度繞著某一軸向旋轉了某一角度

【微服務】SpringBoot 對接飛書審批流程使用詳解

目錄 一、前言 二、前置準備 2.1 開通企業飛書賬戶 2.2 確保賬戶具備多維表操作權限 2.3 獲取飛書開放平臺文檔 2.4 創建應用 2.5 發布應用 2.6 應用添加操作權限 2.7 獲取SDK 三、審批流程對接過程 3.1 配置流程審批定義(流程審批模型) 3.2 自定義應用添加審批AP…

主鍵與唯一鍵詳解:概念、區別與面試要點

主鍵與唯一鍵詳解:概念、區別與面試要點 一、核心概念解析 1.1 主鍵(Primary Key) 主鍵是數據庫表中用于唯一標識每一行記錄的列或列組合,具有以下核心特性: 唯一性:主鍵值在整個表中必須唯一,不允許重復非空性:主鍵列不允許包含NULL值不可變性:主鍵值一旦確立,原則…