常用的loss函數,以及在訓練中的使用

文章目錄

  • KL 散度
  • L2 loss
  • 做標準化處理
  • CEloss
  • CTCLoss
  • AdaptiveAvgPool2d

KL 散度

算KL散度的時候要注意前后順序以及加log

import torhch.nn as nn
d_loss = nn.KLDivLoss(reduction=reduction_kd)(F.log_softmax(y / T, dim=1),F.softmax(teacher_scores / T, dim=1)) * T * T

蒸餾loss T 為

在這里插入圖片描述
在這里插入圖片描述

L2 loss

import torch.nn.functional as F
F.mse_loss(teacher_patience.float(), student_patience.float()).half()

做標準化處理

if normalized_patience:teacher_patience = F.normalize(teacher_patience, p=2, dim=2)student_patience = F.normalize(student_patience, p=2, dim=2)

L2 范數
在這里插入圖片描述

CEloss

分類問題

nll_loss = F.cross_entropy(y, labels, reduction=reduction_nll)

在這里插入圖片描述

CTCLoss

計算連續(未分割)時間序列和目標序列之間的損失.
torch.nn.CTCLoss(blank=0, reduction=‘mean’, zero_infinity=False)

>>> # Target are to be padded
>>> T = 50      # Input sequence length
>>> C = 20      # Number of classes (including blank)
>>> N = 16      # Batch size
>>> S = 30      # Target sequence length of longest target in batch (padding length)
>>> S_min = 10  # Minimum target length, for demonstration purposes
>>>
>>> # Initialize random batch of input vectors, for *size = (T,N,C)
>>> input = torch.randn(T, N, C).log_softmax(2).detach().requires_grad_()
>>>
>>> # Initialize random batch of targets (0 = blank, 1:C = classes)
>>> target = torch.randint(low=1, high=C, size=(N, S), dtype=torch.long)
>>>
>>> input_lengths = torch.full(size=(N,), fill_value=T, dtype=torch.long)
>>> target_lengths = torch.randint(low=S_min, high=S, size=(N,), dtype=torch.long)
>>> ctc_loss = nn.CTCLoss()
>>> loss = ctc_loss(input, target, input_lengths, target_lengths)

圖片卷積-》序列做loss
31,1,64,256 -》 31,512,3,65-》31,65,512,3-》polling-》31,65,512》》liner》31,65,103》TNC》65,31,103
在這里插入圖片描述

AdaptiveAvgPool2d

自適應池化,最后設置要輸出的H和W,B和N(C)不變
在這里插入圖片描述
在這里插入圖片描述

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

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

相關文章

Shell 在訓練模型的時候自動保存訓練文件和模型到指定文件夾

在進行深度學習訓練的過程中,往往會跑很多實驗,這就導致有的實驗設置會忘記或者記混淆,我們最好把train test model 的代碼都copy一遍到指定文件夾中,這樣后面檢查也方便。 用shell指令保存文件 #!/bin/sh GRUB_CMDLINE_LINUX&qu…

Pytorch:數據并行和模型并行,解決訓練過程中內存分配不均衡的問題

文章目錄數據并行單機多卡訓練,即并行訓練。并行訓練又分為數據并行 (Data Parallelism) 和模型并行兩種。 數據并行指的是,多張 GPU 使用相同的模型副本,但是使用不同的數據批進行訓練。而模型并行指的是,多張GPU 分別訓練模型的…

DataParallel 和 DistributedDataParallel 的區別和使用方法

1.DataParallel DataParallel更易于使用(只需簡單包裝單GPU模型)。 model nn.DataParallel(model)它使用一個進程來計算模型參數,然后在每個批處理期間將分發到每個GPU,然后每個GPU計算各自的梯度,然后匯總到GPU0中…

torch.cuda.is_available(),torch.cuda.device_count(),torch.cuda.get_device_name(0)

torch.cuda.is_available() cuda是否可用; torch.cuda.device_count() 返回gpu數量; torch.cuda.get_device_name(0) 返回gpu名字,設備索引默認從0開始; torch.cuda.current_device() 返回當前設備索引;

windows, 放方向鍵設置為vim格式,autohotkey-windows

安裝 Autohotkey https://www.autohotkey.com/download/ 設置快捷鍵 隨便找個目錄,鼠標右鍵新建一個autohotkey的腳本。 映射一個鍵——上左下右 經常打字的人都知道,我們編輯文本時要上下左右移動光標,難免要將手移到方向鍵再移回來打字。對我這樣的懶癌后期患者,這簡直不能…

window設置快捷鍵左右方向鍵

autohotkey-windows快捷鍵設置神器 使用方法 地址

Hbase數據模型及Hbase Shell

目錄 1 數據模型 1.1 相關名詞概念 1.2 模型分析 2 Hbase Shell操作 2.1 命名空間 2.2 表操作 2.2.1 創建表 2.2.2 更改表結構 2.2.3 表的其他操作 2.3 數據操作 2.3.1 添加數據(put) 2.3.2 刪除數據(delete) 2.3.3 獲取數據(get|scan) 3 過濾器 3.1 比較運算符…

非關型數據庫之Hbase

目錄 1 Hbase簡介 1.1 初識Hbase 1.2 Hbase的特性 2 HDFS專項模塊 2.1 HDFS的基本架構 2.1.1 HDFS各組件的功能: 2.2 HFDFS多種機制 2.2.1 分塊機制 2.2.2 副本機制 2.2.3 容錯機制 2.2.4 讀寫機制 3 Hbase組件及其功能 3.1 客戶端 3.2 Zookeeper 3.3 …

MongoDB Shell操作

目錄 1 數據庫操作 2 集合操作 3 文檔操作 3.1 插入文檔(insert|insertOne|insertMany) 3.2插入、刪除的循環操作 3.2 刪除文檔(remove|deleteOne|deleteMany) 3.3 更新文檔(update|save) 3.4 查詢文檔(find) 4 游標 5 索引 6 聚合 1 數據庫操作 當新創建的數據庫里…

MongoDB副本集、分片集的偽分布式部署(保姆級教程)

目錄 1 集群架構(概念篇) 1.1 MongoDB核心組件 1.2 主從復制 1.3 副本集 1.4 分片集 2 集群搭建 2.1 部署副本集(偽分布式) 2.2 分片集部署(偽分布式) 2.3 副本集與分片集區別 1 集群架構(概念篇) MongoDB有三種集群部署模式,分別是主從復制(Master-Slave)…

非關型數據庫之MongoDB

目錄 1 MongoDB簡介 1.1 初識MongoDB 1.2 MongoDB與傳統的關系型數據庫的區別 1.3 MongoDB存儲結構 1.4 BSON支持的數據類型 2 MongoDB Shell操作 3 MongoDB集群操作 1 MongoDB簡介 1.1 初識MongoDB MongoDB來源自英文單詞"Humongous”,譯為“龐大的”…

【手把手 腦把腦】教會你使用idea基于MapReduce的統計數據分析(從問題分析到代碼編寫)

目錄 1 編程前總分析 1.1 數據源 1.2 需要掌握的知識 1.2.1 Hadoop對比java的數據類型 1.2.2 MapReduce流程簡介 1.3.3 MapReduce流程細分 2 編碼階段 2.1 導入依賴 2.2 mapper 2.3 reducer 2.4 main 1 編程前總分析 1.1 數據源 英語,李沐,85,男,20 數學,李沐,54,男…

【細節拉滿】Hadoop課程設計項目,使用idea編寫基于MapReduce的學生成績分析系統(附帶源碼、項目文件下載地址)

目錄 1 數據源(學生成績.csv) 2 hadoop平臺上傳數據源 3 idea代碼 3.1 工程框架 3.2 導入依賴 3.3 系統主入口(menu) 3.4 六個mapreduce 3.4.1 計算每門成績的最高分、最低分、平均分(Mma) 3.4.2 計算每個學生的總分及平均成績并進行排序(Sas) 3.4.3 統計所有學生的信…

【單位換算】存儲單位(bit Byte KB MB GB TB PB EB ZB YB BB)時間單位(ms μs ns ps)長度單位(dm cm mm μm nm pm fm am zm ym)

存儲單位 相鄰單位相差2?,記憶時可以此類推 一字節等于八比特 1 Byte 8 bit 1KB 1024 B 2? B 1MB 1024 KB 2? B 1GB 1024 MB 2? B 1TB 1024 GB 2?? B 1PB 1024 TB 2?? B 1EB 1024 PB 2?? B 1ZB 1024 EB 2?? B 1YB 1024 ZB 2?? B 1B…

Git 的安裝、使用、分支、命令 一篇博客全都學會

目錄 1 版本控制 1.1 什么是版本控制 1.2 為什么需要版本控制 2 Git概述 2.1 Git的工作機制 2.2 分布式版本控制工具與集中式的區別 2.3 Git是如何誕生的 3 Git的安裝 4 Git常用命令 4.1 用戶簽名的設置和修改 4.2 查看用戶簽名的設置 4.3 初始化本地庫 4.4 添加、…

生成一個GitHub的token用于git推送本地庫至遠程庫

1 一步步選擇設置 2 使用鏈接直接跳轉到最后一步的設置頁 git push 的時候需要token,所以在GitHub上生成一個臨時的token 1 一步步選擇設置 2 使用鏈接直接跳轉到最后一步的設置頁 前提是你已經在這個瀏覽器上登陸了GitHub https://github.com/settings/tokens

都2021年了,還不會使用GitHub創建、推送、拉取、克隆遠程庫、團隊協作開發?

1 對自己的遠程庫操作 1.1 在GitHub上創建遠程庫 1.2 推送本地庫至遠程庫 1.3 拉取遠程庫到本地庫 1.4 克隆遠程倉庫到本地 2 對別人的遠程庫兩種操作方式 2.1 使用GitHub進行團隊內協作開發 2.2 使用GitHub進行跨團隊協作開發 眾所周知,GitHub是一個大型的國…

2021 最新 IDEA集成Gitee、Gitee遷移GitHub【圖文講解】

1 創建遠程庫 2 IDEA集成Gitee 2.1 安裝gitee插件并綁定賬號 2.2 IDEA推送本地庫至遠程庫的兩種方式 2.3 修改后推送本地庫至遠程庫 2.4 拉取遠程庫 2.5 使用IDEA克隆遠程庫 3 Gitee遷移GitHub的遠程庫的兩種方式 3.1 自己的賬戶之間遷移 3.2 使用鏈接進行遷移 3.3 強制刷…

只需五步學會Maven 3.6.1OR 3.6.3及其他版本的下載安裝與配置【圖文詳解】

第一步,下載并解壓縮包 ?第二步,配置兩個環境變量 ?第三步,測試是否安裝成功 ?第四步,指定本地倉庫的路徑 第五步,修改鏡像倉庫 第一步,下載并解壓縮包 Maven官方下載地址:https://mav…

只需四步完成java JDK1.8的下載安裝與配置【圖文詳解】

第一步,下載安裝包并安裝 第二步,安裝JDK 第三步,配置三個環境變量 第四步,測試是否安裝成功 第一步,下載安裝包并安裝 Oracle的官方下載地址:https://www.oracle.com/java/technologies/downloads/#ja…