python打卡day35@浙大疏錦行

知識點回顧:

  1. 三種不同的模型可視化方法:推薦torchinfo打印summary+權重分布可視化
  2. 進度條功能:手動和自動寫法,讓打印結果更加美觀
  3. 推理的寫法:評估模式

作業:調整模型定義時的超參數,對比下效果。

?1. 模型可視化方法

①使用torchinfo打印summary

from torchinfo import summarymodel = SimpleNN()
summary(model, input_size=(1, 784))  # 輸入尺寸

②權重分布可視化

import matplotlib.pyplot as plt# 可視化第一層權重
plt.hist(model.fc1.weight.data.numpy().flatten(), bins=50)
plt.title('FC1 Weight Distribution')
plt.show()

?2. 進度條功能

①手動寫法

from tqdm import tqdmfor epoch in range(10):with tqdm(train_loader, desc=f'Epoch {epoch}') as pbar:for data, target in pbar:# ...訓練代碼...pbar.set_postfix(loss=loss.item())

②自動寫法

from torch.utils.tensorboard import SummaryWriterwriter = SummaryWriter()
for epoch in range(10):for i, (data, target) in enumerate(train_loader):# ...訓練代碼...writer.add_scalar('Loss/train', loss.item(), epoch*len(train_loader)+i)

③推理寫法

model.eval()  # 切換到評估模式
with torch.no_grad():  # 禁用梯度計算correct = 0for data, target in test_loader:output = model(data)pred = output.argmax(dim=1)correct += (pred == target).sum().item()accuracy = correct / len(test_loader.dataset)print(f'Test Accuracy: {accuracy:.2%}')

?作業:超參數調整對比

1.模型定義示例(帶超參數)

class SimpleNN(nn.Module):def __init__(self, hidden_size=128, dropout_rate=0.2):super(SimpleNN, self).__init__()self.fc1 = nn.Linear(784, hidden_size)self.dropout = nn.Dropout(dropout_rate)self.fc2 = nn.Linear(hidden_size, 10)def forward(self, x):x = x.view(-1, 784)x = F.relu(self.fc1(x))x = self.dropout(x)x = self.fc2(x)return x

2.超參數對比實驗

hidden_sizes = [64, 128, 256]
dropout_rates = [0.0, 0.2, 0.5]for h_size in hidden_sizes:for d_rate in dropout_rates:model = SimpleNN(hidden_size=h_size, dropout_rate=d_rate)# ...訓練和評估代碼...print(f'Hidden: {h_size}, Dropout: {d_rate}, Acc: {accuracy:.2%}')

關鍵點:

1. 評估時一定要用 model.eval() 和 torch.no_grad()
2. 進度條推薦使用tqdm或tensorboard
3. 超參數調整要系統性地對比(如網格搜索)
4. 可視化有助于理解模型行為

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

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

相關文章

Python爬蟲實戰:研究Crawley 框架相關技術

1. Crawley 框架相關定義 1.1 網絡爬蟲定義 網絡爬蟲是一種按照一定的規則,自動地抓取萬維網信息的程序或者腳本。它通過 HTTP 協議與 Web 服務器進行交互,獲取網頁內容并進行解析處理,是數據采集和信息檢索的重要工具。 1.2 Crawley 框架定義 Crawley 是一個基于 Pytho…

tvalid寄存器的理解

if(!out_axis_tvalid_reg || m_axis_tready ) beginend m_axis_tready 是上拍下一級給的ready信號 out_axis_tvalid_reg是上一拍,本級給下級的valid信號 一共有四種組合,然后可以通過這個if語句,在接下來的begin ... end中,用來…

【AI實戰】從“苦AI”到“爽AI”:Magentic-UI 把“人類-多智能體協作”玩明白了!

Hello,親愛的小伙伴們!你是否曾經在深夜里,為了自動化點外賣、篩機票、抓網頁數據焦頭爛額?有沒有幻想過哪天能出個“貼心AI管家”,一鍵點菜、搞定事務、自動操作網頁,比你還懂你?更關鍵——還讓…

【東楓科技】usrp rfnoc 開發環境搭建

作者 太原市東楓電子科技有限公司 ,代理銷售 USRP,Nvidia,等產品與技術支持,培訓服務。 環境 Ubuntu 20.04 依賴包 sudo apt-get updatesudo apt-get install autoconf automake build-essential ccache cmake cpufrequtils …

Ntfs!ReadIndexBuffer函數分析之根目錄讀取索引緩沖區的一個例子

Ntfs!ReadIndexBuffer函數分析之根目錄讀取索引緩沖區的一個例子 第一部分: 0: kd> p Ntfs!ReadIndexBuffer0xdc: f7173962 e829f60300 call Ntfs!NtfsCheckIndexBuffer (f71b2f90) 0: kd> t Ntfs!NtfsCheckIndexBuffer: f71b2f90 55 p…

LumaDot (亮度可調的屏幕圓點)

應用名稱 LumaDot (源自 “Luminance”(亮度) “Dot”(圓點),強調其核心功能:亮度可調的屏幕圓點) 應用說明 LumaDot 是一款輕量級 Windows 桌面工具,專為需要屏幕標記…

HarmonyOS 鴻蒙應用開發基礎:EventHub,優雅解決跨組件通信難題

EventHub是鴻蒙開發中用于線程內通信的事件中心模塊,基于發布訂閱模式實現組件間的高效通信。它完美解決了傳統回調方式在多層嵌套場景下的痛點,使得組件間的通信更加靈活和易于管理。 核心特性 事件中心機制:通過事件名進行通信&#xff0c…

前端框架token相關bug,前后端本地聯調

今天我搭建框架的時候,我想請求我自己的本地!然后我自己想鏈接我自己的本地后端,我之前用的前端項目,都是鏈別人的后端,基本上很少情況會鏈接自己的后端!所以我當時想的是,我前后端接口一樣&…

【數據結構初階】順序表專題

文章目錄 順序表1.數據結構相關概念1、什么是數據結構2、為什么需要數據結構? 2.順序表1、順序表的概念及結構2、順序表分類3、動態順序表的實現1.定義一個動態順序表2.順序表的初始化3.順序表的銷毀4.順序表達的尾插5.順序表的頭插6.空間大小檢查函數7.順序表的尾刪…

從神經生物學到社會心理學:游戲沉迷機制的深度解構

你是否曾在深夜放下手機時驚覺:"明明只想玩10分鐘,怎么天都亮了?"這不是意志力薄弱的表現,而是價值數十億美元的游戲產業用神經科學精心設計的認知陷阱。 當《王者榮耀》的Victory音效讓你心跳加速,當《原神…

15.集合框架的學習

一、簡介 集合框架(Collection Framework) 是 Java 提供的一套用于存儲、操作和處理數據集合的標準化架構。它主要位于 java.util 包中,提供了一組 接口 和 實現類,用于操作不同類型的數據集合,如列表(List…

【方案分享】展廳智能講解:基于BLE藍牙Beacon的自動講解觸發技術實現

【方案分享】展廳智能講解:基于BLE藍牙Beacon的自動講解觸發技術實現 讓觀眾靠近展品即可自動彈出講解頁面,是智能展廳的核心功能之一。本文將從軟硬件技術、BLE Beacon原理、微信小程序實現、優劣對比與拓展方案五個維度,系統講解“靠近展臺…

微前端架構:從單體到模塊化的前端新革命

在信息技術(IT)的迅猛發展中,前端開發領域正迎來一場顛覆性的變革 —— 微前端架構(Micro - Frontends)。2025 年,隨著 Web 應用的復雜性激增、團隊協作需求的增長以及用戶對無縫體驗的期待,微前…

React中常用的鉤子函數:

一. 基礎鉤子 (1)useState 用于在函數組件中添加局部狀態。useState可以傳遞一個參數,做為狀態的初始值,返回一個數組,數組的第一個元素是返回的狀態變量,第二個是修改狀態變量的函數。 const [state, setState] useState(ini…

如何在 Windows 11 或 10 上通過 PowerShell 安裝 Docker Desktop

了解如何使用 PowerShell 或命令提示符在 Windows 11 或 10 上安裝 Docker CLI 和 Docker Desktop GUI,以創建容器運行虛擬機。無需手動訪問網站下載安裝程序,所有操作都將在命令終端完成。 Docker 是一個強大的容器化平臺,允許開發人員將應用程序及其依賴項打包為輕量級容…

Python實例題:人機對戰初體驗Python基于Pygame實現四子棋游戲

目錄 Python實例題 題目 代碼實現 實現原理 游戲邏輯: AI 算法: 界面渲染: 關鍵代碼解析 游戲棋盤渲染 AI 決策算法 勝利條件檢查 使用說明 安裝依賴: 運行游戲: 游戲操作: 擴展建議 增強…

一文詳解 HLS

1 HLS的簡介 1.1 HLS的背景 從 RTMP(Real-Time Messaging Protocol,實時消息傳輸協議) 到 HLS(HTTP Live Streaming,HTTP直播流) 的技術演進,本質上是直播協議從 專有協議 向 通用 Web 協議 的…

go 訪問 sftp 服務 github.com/pkg/sftp 的使用踩坑,連接未關閉(含 sftp 服務測試環境搭建)

前言 最近在使用 sftp 服務時,被告知發起了海量的連接,直接把服務器搞崩,ip 被封了。 這是啥情況? golang 寫的代碼,我就正常的訪問 sftp 服務,連接使用過后也都關閉了,咋會出現連接一直連著…

Android 直接通過 app_process 啟動的應用如何使用 Context

文章目錄 一、問題背景二、代碼實現三、代碼詳解 一、問題背景 在 Android 中,可以使用 Android Studio 編寫 Java 應用程序,通過編譯打包成 apk 文件,然后將文件推送至 /data/local/tmp 等可執行的目錄或安裝打包出來的應用,隨后…

【數據結構與算法】LeetCode 每日三題

如果你已經對數據結構與算法略知一二,現在正在復習數據結構與算法的一些重點知識 ------------------------------------------------------------------------------------------------------------------------- 點贊收藏🌈,每天更新總結文…