Pytorch基礎(六)——激活函數

一、概念

激活函數顧名思義,就是一種可以給神經網絡注入靈魂的一種方法,也可以稱之為激活層。其計算就是將線性的函數轉變為非線性函數的過程,只有這樣,我們制作的深層神經網絡才能無限逼近真實值。
自神經網絡發展到目前為止,已經出現了很多種激活函數。應用多的包括ReLU,Sigmoid,Tanh,Softmax等,都有各自的優缺點,Sigmoid和Tanh都存在梯度爆炸和梯度消失的問題,RELU的收斂速度快,但是存在Dead ReLU Problem,我們可以再pytorch官網去查看詳細的介紹,這里就不做過多介紹,只用簡單的例子做下demo。

ReLU
在這里插入圖片描述
在這里插入圖片描述
Softmax的公式:
在這里插入圖片描述

二、Pytorch示例

import torch
import torchvision.datasets
from torch import nn
from torch.nn import ReLU, Sigmoid, Tanh, Softmax
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriterdataset = torchvision.datasets.CIFAR10("../dataset", train=False, download=True,transform=torchvision.transforms.ToTensor())
dataloader = DataLoader(dataset, batch_size=64)class Wzh(nn.Module):def __init__(self):super(Wzh, self).__init__()self.relu1 = ReLU()self.sigmoid1 = Sigmoid()self.tanh1 = Tanh()self.Softmax1 = Softmax()def forward(self, input):output = self.Softmax1(input)return outputwzh = Wzh()
w = SummaryWriter("Softmax")
i = 0
for data in dataloader:imgs, targets = dataoutput1 = wzh(imgs)w.add_images("input", imgs, i)w.add_images("output", output1, i)i = i + 1w.close()

運行上面的小demo,我們可以分別得到不同的激活函數的圖像效果。
原圖:
在這里插入圖片描述

Relu: 目前使用最多的激活函數,可以看出來,和原圖沒有變化。
在這里插入圖片描述

sigmond: 由于輸出在[0,1] 之間,所以圖像整體會變暗。
在這里插入圖片描述
tanh: 會稍微變暗。
在這里插入圖片描述
softmax: 經過激活函數變換,只能看出輪廓。
在這里插入圖片描述

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

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

相關文章

android數據的五種存儲方式

Android提供了5種方式存儲數據1 使用SharedPreferences存儲數據它的本質是基于XML文件存儲key-value鍵值對數據&#xff0c;通常用來存儲一些簡單的配置信息。其存儲位置在/data/data/< >/shared_prefs目錄下。SharedPreferences對象本身只能獲取數據而不支持存儲和修改&…

【NOIP 模擬題】[T1] 等差數列(dp)

【題解】【dp】 【f[i][j]表示以i為結尾&#xff0c;j為公差的子序列個數】 【要注意有負數&#xff0c;所以將公差1000】 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int const p9901; int f[1010][2010],n,a[1010]; lo…

走在網頁游戲開發的路上(十)

頁游資源管理 現在頁游的規模越來越來大&#xff0c;游戲內容豐富&#xff0c;資源管理變得很重要。現在一款SNS頁游的所有資源可達50M&#xff0c;MMO頁游更高達幾百M&#xff0c;不可能把資源放到一個文件里面、也不可能一次性加載完所有資源。按200kb/s的下載速度來算&#…

Pytorch基礎(七)——線性層(全連接層)

一、概念 在神經網絡中&#xff0c;我們通常用線性層來完成兩層神經元間的線性變換。 按照官網的解釋&#xff0c;Linear.weight也即A&#xff0c; 我們可以稱之為權重矩陣&#xff0c;對其轉置后乘以輸入數據(一般都是一維張量)&#xff0c;加上Linear.bias即b偏置。 二、P…

跨線程取出控件的值的寫法(不是跨線程賦予控件值)

//這個方法是跨線程取出控件的值&#xff0c;不是跨線程賦予控件值private delegate void DelegateGetControl(各種參數);private void GetControl(各種參數&#xff0c;和委托的參數是一樣的){try{if (this.InvokeRequired){//如果是跨線程的控件&#xff0c;就調用委托去實現…

使系統生成50個0-9之間的隨機數,將每個數字出現的次數 存入一個一維數組中,統計出現次數最多和出現次數最少的數字,及出現次數 和出現頻率。...

int [] numsnew int[10]; for(int i0;i<50;i){ int num(int)(Math.random()*10);//隨機生成0-9 nums[num];//生成隨機數 對應下標位置 自增 } int maxIndex0;//存儲出現最多次數的下標 int minIndex0;//存儲出現最少次數的下標 //循環數組 for(int i1;i<nums.length;i){ …

PureMVC(AS3)剖析:吐槽

PureMVC&#xff08;AS3&#xff09;剖析&#xff1a;吐槽 寫在前面 世上沒有銀彈——不存在適用于所有情況的框架&#xff0c;只有適合的框架。再者任何一個好的東西&#xff08;語言、框架等&#xff09;最終還取決于用的人&#xff0c;語言和框架本身并不能保證用戶的代碼清…

Pytorch基礎(八)——正則化

一、概念 正則化在深度學習領域是為了防止訓練結果過擬合而采取的一種方法。 1.1 過擬合 過擬合表示模型的泛化能力較差&#xff0c;體現在實際訓練模型上就是在訓練集表現很好&#xff0c;但是在測試集的效果一般。 過擬合的原因&#xff1a;1&#xff0c;模型過于復雜。2&…

uva 11997 K Smallest Sums 優先隊列處理多路歸并問題

題意&#xff1a;K個數組每組K個值&#xff0c;每次從一組中選一個&#xff0c;共K^k種&#xff0c;問前K個小的。 思路&#xff1a;優先隊列處理多路歸并&#xff0c;每個狀態含有K個元素。詳見劉汝佳算法指南。 1 #include<iostream>2 #include<cstdio>3 #includ…

.net生成隨機字符串

生成隨機字符串的工具類&#xff1a; /// <summary>/// 隨機字符串工具類/// </summary>public class RandomTools{/// <summary>/// 隨機系數/// </summary>public static int _RandIndex 0;#region 獲取某個區間的一個隨機數/// <summary>///…

【圖像處理】——Python鼠標框選ROI(感興趣)區域并且保存(含鼠標事件)

鼠標交互切割矩形 接下來,就是本文重點了。先吐個槽,網上有資源,但搜到的都是C++的。本來有點氣餒的,還好,有官網在,文檔寫得很清楚,而且接口函數名字變化不大,稍微做下修改就行了。 import cv2global img global point1, point2 def on_mouse(event, x, y, flags, pa…

c++ 11 override final

C 11添加了兩個繼承控制關鍵字&#xff1a;override和final。 override確保在派生類中聲明的重載函數跟基類的虛函數有相同的簽名。final阻止類的進一步派生和虛函數的進一步重載 出處&#xff1a;http://www.cnblogs.com/zhangdongsheng/ 作者&#xff1a;張東升

泛型方法與橋方法

Java泛型中有存在一種方式叫做類型擦除&#xff0c;也就是說泛型在編譯期間進行類型檢驗上做到有效安全&#xff0c;但是在運行當中&#xff0c;會將該泛型類型用頂層父類&#xff08;若無繼承關系則用Object&#xff09;代替&#xff0c;然后再進行強轉換成目標類型&#xff0…

Pytorch基礎(九)——損失函數

一、概念 損失函數在深度學習領域是用來計算搭建模型預測的輸出值和真實值之間的誤差。 具體實現過程&#xff1a;在一個批次&#xff08;batch&#xff09;前向傳播完成后&#xff0c;得到預測值&#xff0c;然后損失函數計算出預測值和真實值之間的差值&#xff0c;反向傳播…

用程序猿思維、程序設計師思維兩種方式寫求斐波那契數列的方法。

//用Java實現斐波那契數列(Fibonacci) public class Test {public int f(int n)//n代表第幾個數字。程序返回它相應的值{return n>2?f(n-1)f(n-2):1;//看似如此優雅的一句程序}//程序設計師的思維&#xff1a;會重構上面的代碼。讓他們更易讀。推薦&#xff01;&#xff01…

【圖像處理】——圖像的差集、并集、補集、交集以及兩個圖像相減出現負數的處理方法

目錄 目錄 1、交集 2、差集 3、并集 4、補集 5、差為負值,和超過255的解決辦法

Pytorch基礎(十)——優化器(SGD,Adagrad,RMSprop,Adam,LBFGS等)

一、概念 Pytorch中優化器的目的&#xff1a;將損失函數計算出的差值Loss減小。 優化過程&#xff1a;優化器計算網絡參數的梯度&#xff0c;然后使用一定的算法策略來對參數進行計算&#xff0c;用新的參數來重新進行訓練&#xff0c;最終降低Loss。 其中官網提供了13種優化算…

【圖像處理】——改變圖像的大小(降采樣重采樣)下采樣和上采樣

轉載自:https://jingyan.baidu.com/article/a3a3f81139be1f8da2eb8ade.html 上采樣、下采樣和金字塔加速參考:https://blog.csdn.net/Eastmount/article/details/89341077 目錄 1、拉伸圖片——重采樣 2、縮小圖片 1)三次插值法cv2.INTER_CUBIC

一段代碼到可執行程序所有經歷

如果你寫的代碼是hello.c&#xff0c;你的程序將經歷下面的步驟到達硬盤或者內存成為可執行文件。 第一步&#xff1a;hello.c&#xff08;文本&#xff09;經過預編譯生成hello.i&#xff08;文本&#xff09; 第二步&#xff1a;hello.i&#xff08;文本&#xff09;經過編譯…