PyTorch——非線性激活(5)

????????非線性激活函數的作用是讓神經網絡能夠理解更復雜的模式和規律。如果沒有非線性激活函數,神經網絡就只能進行簡單的加法和乘法運算,沒法處理復雜的問題。

????????非線性變化的目的就是給我們的網絡當中引入一些非線性特征


Relu 激活函數


Relu處理圖像

# 導入必要的庫
from os import close
import torch
import torchvision.datasets
from torch import nn
from torch.nn import ReLU, Sigmoid
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter# 加載CIFAR-10測試數據集,將圖像轉換為Tensor格式
dataset = torchvision.datasets.CIFAR10("./data", train=False, download=True,transform=torchvision.transforms.ToTensor())# 創建數據加載器,設置批量大小為64
dataloader = DataLoader(dataset, batch_size=64)# 定義神經網絡模型TY
class TY(nn.Module):def __init__(self):super(TY, self).__init__()# 定義ReLU激活函數層self.relu1 = ReLU()# 定義Sigmoid激活函數層(當前未在forward中使用)self.sigmod1 = Sigmoid()def forward(self, input):# 前向傳播過程,對輸入數據應用ReLU激活函數output = self.relu1(input)return output# 實例化模型
ty = TY()# 創建TensorBoard寫入器,用于可視化數據
writer = SummaryWriter("./logs_relu")# 初始化步數計數器
step = 0
# 遍歷數據加載器中的每個批次
for data in dataloader:# 獲取圖像數據和對應的標簽imgs, target = data# 向TensorBoard添加原始輸入圖像writer.add_images("input", imgs, step)# 將圖像數據輸入模型,得到經過ReLU處理后的輸出output = ty(imgs)# 向TensorBoard添加處理后的輸出圖像writer.add_images("output", output, step)# 步數計數器遞增step += 1# 關閉TensorBoard寫入器,釋放資源
writer.close()

ReLU處理圖像,效果不是很明顯


Sigmoid激活函數

from os import close
import torch
import torchvision.datasets
from torch import nn
from torch.nn import ReLU, Sigmoid
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriterdataset = torchvision.datasets.CIFAR10("./data",train=False,download=True,transform=torchvision.transforms.ToTensor())dataloader = DataLoader(dataset,batch_size=64)class TY(nn.Module):def __init__(self):super(TY,self).__init__()self.relu1=ReLU()self.sigmoid1 = Sigmoid()def forward(self,input):output = self.sigmoid1(input)return outputty = TY()writer = SummaryWriter("./logs_relu")step = 0
for data in dataloader:imgs,target=datawriter.add_images("input",imgs,step)output = ty(imgs)writer.add_images("output",output,step)step+=1writer.close()

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

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

相關文章

iOS 電子書聽書功能的實現

在 iOS 應用中實現電子書聽書(文本轉語音)功能,可以通過系統提供的 AVFoundation 框架實現。以下是詳細實現步驟和代碼示例: 核心步驟: 導入框架創建語音合成器配置語音參數實現播放控制處理后臺播放添加進度跟蹤 完整…

ES中must與filter的區別

在 Elasticsearch 的布爾查詢(bool query)中,must 和 filter 是兩個核心子句,它們的核心區別在于 是否影響相關性評分,這直接決定了它們在查詢性能、使用場景和結果排序上的差異。以下是詳細對比: 一、核心…

vscode實時預覽編輯markdown

vscode實時預覽編輯markdown 點擊vsode界面,實現快捷鍵如下: 按下快捷鍵 CtrlShiftV(Windows/Linux)或 CommandShiftV(Mac)即可在側邊欄打開 Markdown 預覽。 效果如下:

Android第十一次面試flutter篇

Flutter基礎? 在 Flutter 中,?三棵樹(Widget Tree、Element Tree、RenderObject Tree)?? 是框架的核心設計,它們協同工作以實現高效的 UI 渲染和更新機制。 ?1. Widget Tree(Widget 樹)?? ?是什么…

多線程編程中的數據競爭與內存可見性問題解析

引言 在多線程編程中,看似簡單的代碼往往隱藏著復雜的并發問題。今天我們來分析一個經典的生產者-消費者場景,看看在多核CPU環境下可能出現的各種"意外"情況。 問題代碼分析 讓我們先看看這段看似正常的C#代碼: using System; u…

Linux 與 Windows:哪個操作系統適合你?

Linux vs Windows:系統選擇的關鍵考量 在數字化轉型浪潮中,操作系統作為底層基礎設施的重要性日益凸顯。Linux與Windows作為主流選擇,其差異不僅體現在技術架構上,更深刻影響著開發效率、運維成本與安全性。本文將從??7個核心維度??展開對比分析,并提供典型應用場景建…

佰力博科技與您探討低溫介電溫譜測試儀的應用領域

低溫介電溫譜測試應用領域有如下: 一、電子材料: 低溫介電溫譜測試儀廣泛應用于電子材料的性能測試,如陶瓷材料、半導體材料、壓電材料等。通過該設備,可以評估材料在高溫或低溫環境下的介電性能,為材料的優化和應用提…

Windows 下徹底刪除 VsCode

徹底刪除 VS Code (Visual Studio Code) 意味著不僅要卸載應用程序本身,還要刪除所有相關的配置文件、用戶數據、插件和緩存。這可以確保你有一個完全干凈的狀態,方便你重新安裝或只是徹底移除它。 重要提示: 在執行以下操作之前&#xff0c…

STM32與GD32標準外設庫深度對比

近年來,隨著全球芯片短缺和市場價格波動,工程師們開始尋求對常用MCU的替代方案。在STM32因產能受限而頻頻漲價的背景下,GD32作為國產替代的重要選項,獲得了越來越多的關注。尤其是GD32F103系列,由于其在硬件封裝、功能特性乃至軟件支持上的“高相似度”,成為STM32F103的熱…

使用Redis的四個常見問題及其解決方案

Redis 緩存穿透 定義:redis查詢一個不存在的數據,導致每次都查詢數據庫 解決方案: 如果查詢的數據為空,在redis對應的key緩存空數據,并設置短TTL。 因為緩存穿透通常是因為被惡意用不存在的查詢參數進行壓測攻擊&…

Java高級 | 【實驗一】Spring Boot安裝及測試 最新

隸屬文章:Java高級 | (二十二)Java常用類庫-CSDN博客 目錄 一、SpringBoot的特點 二、Spring Boot安裝及測試 (一)安裝Intellij IDEA (二)安裝MySQL (三)安裝postma…

Oracle RMAN自動恢復測試腳本

說明 此恢復測試腳本,基于rman備份腳本文章使用的fullbak.sh做的備份。 數據庫將被恢復到RESTORE_LO參數設置的位置。 在恢復完成后,執行一個測試sql,確認數據庫恢復完成,數據庫備份是好的。恢復測試數據庫的參數,比如SGA大小都…

從Java的JDK源碼中學設計模式之裝飾器模式

裝飾器模式是一種極具彈性的結構型設計模式,它允許我們通過組合的方式動態擴展對象功能而無需修改原有結構。本文將通過JDK源碼中的實際應用和通俗易懂的代碼示例,帶你深入了解這一強大模式的精髓。 裝飾器模式核心原理 裝飾器模式的核心思想&#xff…

調教 DeepSeek - 輸出精致的 HTML MARKDOWN

【序言】 不知道是不是我閑的蛋疼,對百度AI 和 DeepSeek 的回答都不太滿意。 DeepSeek 回答句子的引用鏈接,始終無法準確定位。有時鏈接只是一個域名,有時它給的鏈接是搜索串如: baidu.com/?q"搜索內容"。 百度AI 回答句子的引用…

第1章_數據分析認知_知識點筆記

來自:數據分析自學課程-戴戴戴師兄 逐字稿:【課程4.0】第1章_分析認知_知識點筆記 【課程4.0】第1章 分析認知 知識點總結 一、數據分析的本質認知 數據分析是什么? 不是酷炫看板、復雜模型或升值秘籍,而是認知世界的基礎方法。…

【從0-1的HTML】第2篇:HTML標簽

文章目錄 1.標題標簽2.段落標簽3.文本標簽brbstrongsubsup 4.超鏈接標簽5.圖片標簽6.表格標簽7.列表標簽有序列表ol無序列表ul定義列表dl 8.表單標簽9.音頻標簽10.視頻標簽11.HTML元素分類塊級元素內聯元素 12.HTML布局13.內聯框架13.內聯框架 1.標題標簽 標題標簽&#xff1a…

快速排序(Quick Sort)算法詳解(遞歸與非遞歸)

引言 在計算機科學中,排序算法是最基礎且重要的算法之一。快速排序(Quick Sort)作為一種高效的排序算法,在實際應用中被廣泛使用。平均時間復雜度為 (O(n log n)),最壞情況下為 (O(n^2))。本文將詳細介紹快速排序算法…

修改 vscode 左側導航欄的文字大小 (更新版)

新增, 個人常用 按 Ctrl Shift P 打開命令面板 輸入并選擇 : Developer: Toggle Developer Tools 打開開發者工具。 1. 起因, 目的: 問題: vscode 左側的文字太小了!!!我最火的一篇文章,寫的就是這個…

Kerberos面試內容整理-Kerberos 的配置與排障

正確配置 Kerberos 對其正常工作至關重要。在Linux/Unix環境下,Kerberos配置通常通過編輯配置文件(例如 /etc/krb5.conf)完成。其中指定了Realm名稱、KDC和管理員服務器地址、默認域到Realm的映射等參數。管理員需要在KDC端初始化數據庫并創建主體(可以使用 kadmin 等工具添…

Windows + CPU也能跑時序預測:TSLib框架快速上手與踩坑避雷

在時序預測領域,選擇一個成熟的框架往往能讓我們事半功倍。最近接手了一個緊急的時序預測項目,經過一番調研后,我選擇了TSLib(Time-Series-Library)這個優秀的開源框架來快速搭建整個預測流程。 由于開發環境限制在Windows平臺且沒有GPU支持,整個部署過程還是遇到了一些…