在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>PyTorch教程3.2之面向對象的設計實現

PyTorch教程3.2之面向對象的設計實現

2023-06-05 | pdf | 0.22 MB | 次下載 | 免費

資料介紹

在我們對線性回歸的介紹中,我們介紹了各種組件,包括數據、模型、損失函數和優化算法事實上,線性回歸是最簡單的機器學習模型之一。然而,訓練它使用許多與本書中其他模型所需的組件相同的組件。因此,在深入了解實現細節之前,有必要設計一些貫穿本書的 API深度學習中的組件視為對象,我們可以從為這些對象及其交互定義類開始。這種面向對象的實現設計將極大地簡化演示,您甚至可能想在您的項目中使用它。

受PyTorch Lightning等開源庫的啟發,在高層次上我們希望擁有三個類:(i)Module包含模型、損失和優化方法;(ii)DataModule提供用于訓練和驗證的數據加載器;(iii) 兩個類結合使用該類 Trainer,這使我們能夠在各種硬件平臺上訓練模型。本書中的大部分代碼都改編自Moduleand DataModuleTrainer只有在討論 GPUCPU、并行訓練和優化算法時,我們才會涉及該類。

import time
import numpy as np
import torch
from torch import nn
from d2l import torch as d2l
import time
import numpy as np
from mxnet.gluon import nn
from d2l import mxnet as d2l
import time
from dataclasses import field
from typing import Any
import jax
import numpy as np
from flax import linen as nn
from flax.training import train_state
from jax import numpy as jnp
from d2l import jax as d2l
No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)
import time
import numpy as np
import tensorflow as tf
from d2l import torch as d2l

3.2.1. 公用事業

我們需要一些實用程序來簡化 Jupyter 筆記本中的面向對象編程挑戰之一是類定義往往是相當長的代碼塊。筆記本電腦的可讀性需要簡短的代碼片段,穿插著解釋,這種要求與 Python 庫常見的編程風格不相容。第一個實用函數允許我們在創建類后將函數注冊為類中的方法。事實上,即使我們已經創建了類的實例,我們也可以這樣做!它允許我們將一個類的實現拆分成多個代碼塊。

def add_to_class(Class): #@save
  """Register functions as methods in created class."""
  def wrapper(obj):
    setattr(Class, obj.__name__, obj)
  return wrapper

讓我們快速瀏覽一下如何使用它。我們計劃 A用一個方法來實現一個類do我們可以先聲明類并創建一個實例,而不是在同一個代碼塊中A同時 擁有兩者的代碼doAa

class A:
  def __init__(self):
    self.b = 1

a = A()

do接下來我們像往常一樣 定義方法,但不在 classA的范圍內。相反,我們add_to_class用類A作為參數來裝飾這個方法。這樣做時,該方法能夠訪問 的成員變量,A正如我們所期望的那樣,如果它已被定義為 的A定義的一部分。讓我們看看當我們為實例調用它時會發生什么a

@add_to_class(A)
def do(self):
  print('Class attribute "b" is', self.b)

a.do()
Class attribute "b" is 1
@add_to_class(A)
def do(self):
  print('Class attribute "b" is', self.b)

a.do()
Class attribute "b" is 1
@add_to_class(A)
def do(self):
  print('Class attribute "b" is', self.b)

a.do()
Class attribute "b" is 1
@add_to_class(A)
def do(self):
  print('Class attribute "b" is', self.b)

a.do()
Class attribute "b" is 1

第二個是實用程序類,它將類 __init__方法中的所有參數保存為類屬性。這使我們無需額外代碼即可隱式擴展構造函數調用簽名。

class HyperParameters: #@save
  """The base class of hyperparameters."""
  def save_hyperparameters(self, ignore=[]):
    raise NotImplemented

我們將其實施推遲到第 23.7 節HyperParameters要使用它,我們定義繼承自該方法并調用 save_hyperparameters該方法的類__init__

# Call the fully implemented HyperParameters class saved in d2l
class B(d2l.HyperParameters):
  def __init__(self, a, b, c):
    self.save_hyperparameters(ignore=['c'])
    print('self.a =', self.a, 'self.b =', self.b)
    print('There is no self.c =', not hasattr(self, 'c'))

b = B(a=1, b=2, c=3)
self.a = 1 self.b = 2
There is no self.c = True
# Call the fully implemented HyperParameters class saved in d2l
class B(d2l.HyperParameters):
  def __init__(self, a, b, c):
    self.save_hyperparameters(ignore=['c'])
    print('self.a =', self.a, 'self.b =', self.b)
    print('There is no self.c =', not hasattr(self, 'c'))

b = B(a=1, b=2, c=3)
self.a = 1 self.b = 2
There is no self.c = True
# Call the fully implemented HyperParameters class saved in d2l
class B(d2l.HyperParameters):
  def __init__(self, a, b, c):
    self.save_hyperparameters(ignore=['c'])
    print('self.a =', self.a, 'self.b =', self.b)
    print('There is no self.c =', not hasattr(self, 'c'))

b = B(a=1, b=2, c=3)
self.a = 1 self.b = 2
There is no self.c = True
# Call the fully implemented HyperParameters class saved in d2l
class B(d2l.HyperParameters):
  def __init__(self, a, b, c):
    self.save_hyperparameters(ignore=['c'])
    print('self.a =', self.a, 'self.b =', self.b)
    print('There is no self.c =', not hasattr(self, 'c'))

b = B(a=1, b=2, c=3)
self.a = 1 self.b = 2
There is no self.c = True

最后一個實用程序允許我們在實驗進行時以交互方式繪制實驗進度。為了尊重更強大(和復雜)的TensorBoard,我們將其命名為ProgressBoard實現推遲到 第 23.7 節現在,讓我們簡單地看看它的實際效果。

該方法在圖中 draw繪制一個點,并在圖例中指定。可選的僅通過顯示來平滑線條(x, y)labelevery_n1/n圖中的點。他們的價值是從平均n原始圖中的鄰居點。

class ProgressBoard(d2l.HyperParameters): #@save
  """The board that plots data points in animation."""
  def __init__(self, xlabel=None, ylabel=None, xlim=None,
         ylim=None, xscale='linear', yscale='linear',
         ls=['-', '--', '-.', ':'], colors=['C0', 'C1', 'C2', 'C3'],
         fig=None, axes=None, figsize=(3.5, 2.5), display=True):
    self.save_hyperparameters()

  def draw(self, x, y, label, every_n=1):
    raise NotImpleme

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 丁香啪啪天堂激情婷婷 | 久国产精品久久精品国产四虎 | 精品免费视在线观看 | 日本亚洲一区二区 | 美国69bjfree18vide视频 | 亚洲天堂资源网 | 狠狠色噜噜狠狠狠 | 久99频这里只精品23热 视频 | 奇米影视亚洲春色77777 | 国产一级aaa全黄毛片 | 韩国三级理论在线看中文字幕 | 国产成人三级经典中文 | 天天狠天天透天干天天怕处 | 亚洲欧美v视色一区二区 | 色先峰 | 国产嫩草影院在线观看 | 一区二区三区视频网站 | 97影院午夜午夜伦不卡 | 添人人躁日日躁夜夜躁夜夜揉 | 一区二区三区高清不卡 | 国产精品永久免费自在线观看 | www在线视频在线播放 | 在线播放你懂 | 深爱五月激情五月 | 成年啪啪网站免费播放看 | 男人j进女人j的一进一出视频 | 4虎最新地址| 日本不卡一区二区三区视频 | 人人草97| 精品在线一区二区 | 看一级特黄a大片日本片 | 可以看黄色的网站 | 中日韩毛片| 澳门三级bd高清 | 免费一级特黄特色大片 | 午夜伦理片在线观看 | 性国产精品 | 免费人成网555www | 成人在线免费电影 | 国产精品午夜自在在线精品 | 五月激情婷婷丁香 |