昇思25天學習打卡營第12天|linchenfengxue

DCGAN生成漫畫頭像

通過示例代碼說明DCGAN網絡如何設置網絡、優化器、如何計算損失函數以及如何初始化模型權重。

GAN基礎原理

生成式對抗網絡(Generative Adversarial Networks,GAN)是一種生成式機器學習模型,是近年來復雜分布上無監督學習最具前景的方法之一。

最初,GAN由Ian J. Goodfellow于2014年發明,并在論文Generative Adversarial Nets中首次進行了描述,其主要由兩個不同的模型共同組成——生成器(Generative Model)和判別器(Discriminative Model):

  • 生成器的任務是生成看起來像訓練圖像的“假”圖像;

  • 判別器需要判斷從生成器輸出的圖像是真實的訓練圖像還是虛假的圖像。

GAN通過設計生成模型和判別模型這兩個模塊,使其互相博弈學習產生了相當好的輸出。

DCGAN原理

DCGAN(深度卷積對抗生成網絡,Deep Convolutional Generative Adversarial Networks)是GAN的直接擴展。不同之處在于,DCGAN會分別在判別器和生成器中使用卷積和轉置卷積層。

它最早由Radford等人在論文Unsupervised Representation Learning With Deep Convolutional Generative Adversarial Networks中進行描述。判別器由分層的卷積層、BatchNorm層和LeakyReLU激活層組成。輸入是3x64x64的圖像,輸出是該圖像為真圖像的概率。生成器則是由轉置卷積層、BatchNorm層和ReLU激活層組成。輸入是標準正態分布中提取出的隱向量𝑧𝑧,輸出是3x64x64的RGB圖像。

數據準備與處理

from download import downloadurl = "https://download.mindspore.cn/dataset/Faces/faces.zip"path = download(url, "./faces", kind="zip", replace=True)

構造網絡

當處理完數據后,就可以來進行網絡的搭建了。按照DCGAN論文中的描述,所有模型權重均應從mean為0,sigma為0.02的正態分布中隨機初始化。

生成器

生成器G的功能是將隱向量z映射到數據空間。由于數據是圖像,這一過程也會創建與真實圖像大小相同的 RGB 圖像。在實踐場景中,該功能是通過一系列Conv2dTranspose轉置卷積層來完成的,每個層都與BatchNorm2d層和ReLu激活層配對,輸出數據會經過tanh函數,使其返回[-1,1]的數據范圍內。

DCGAN論文生成圖像如下所示:

我們通過輸入部分中設置的nzngfnc來影響代碼中的生成器結構。nz是隱向量z的長度,ngf與通過生成器傳播的特征圖的大小有關,nc是輸出圖像中的通道數。

判別器

如前所述,判別器D是一個二分類網絡模型,輸出判定該圖像為真實圖的概率。通過一系列的Conv2dBatchNorm2dLeakyReLU層對其進行處理,最后通過Sigmoid激活函數得到最終概率。

DCGAN論文提到,使用卷積而不是通過池化來進行下采樣是一個好方法,因為它可以讓網絡學習自己的池化特征。

模型訓練

損失函數

當定義了DG后,接下來將使用MindSpore中定義的二進制交叉熵損失函數BCELoss。

優化器

這里設置了兩個單獨的優化器,一個用于D,另一個用于G。這兩個都是lr = 0.0002beta1 = 0.5的Adam優化器。

訓練模型

訓練分為兩個主要部分:訓練判別器和訓練生成器。

  • 訓練判別器

    訓練判別器的目的是最大程度地提高判別圖像真偽的概率。按照Goodfellow的方法,是希望通過提高其隨機梯度來更新判別器,所以我們要最大化𝑙𝑜𝑔𝐷(𝑥)+𝑙𝑜𝑔(1?𝐷(𝐺(𝑧))𝑙𝑜𝑔𝐷(𝑥)+𝑙𝑜𝑔(1?𝐷(𝐺(𝑧))的值。

  • 訓練生成器

    如DCGAN論文所述,我們希望通過最小化𝑙𝑜𝑔(1?𝐷(𝐺(𝑧)))𝑙𝑜𝑔(1?𝐷(𝐺(𝑧)))來訓練生成器,以產生更好的虛假圖像。

在這兩個部分中,分別獲取訓練過程中的損失,并在每個周期結束時進行統計,將fixed_noise批量推送到生成器中,以直觀地跟蹤G的訓練進度。

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

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

相關文章

esp32 模擬藍牙鍵盤不生效一例

esp32 使用 GitHub - T-vK/ESP32-BLE-Keyboard: Bluetooth LE Keyboard library for the ESP32 (Arduino IDE compatible) 這個開源庫模擬鍵盤功能早之前已經玩過,生效,昨天再來玩的時候發覺莫名奇妙居然又不能用了,各種折騰:換了…

如何在Java中使用Kafka

如何在Java中使用Kafka 大家好,我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編,也是冬天不穿秋褲,天冷也要風度的程序猿! Kafka是一個分布式流處理平臺,廣泛用于實時數據流的處理和傳輸。本文將詳細…

什么是Web3D交互展示?有什么優勢?

在智能互聯網蓬勃發展的時代,傳統的圖片、文字及視頻等展示手段因缺乏互動性,正逐漸在吸引用戶注意力和提升宣傳效果上顯得力不從心。而Web3D交互展示技術的橫空出世,則為眾多品牌與企業開啟了一扇全新的展示之門,讓線上產品體驗從…

【C語言】extern 關鍵字

在C語言中,extern關鍵字用于聲明一個變量或函數是定義在另一個文件中的。它使得在多個文件之間共享變量或函數成為可能。extern關鍵字常見于大型項目中,通常用于聲明全局變量或函數,這些變量或函數的定義位于其他文件中。 基本用法 變量聲明…

Python基礎入門知識

目錄 引言 簡要介紹Python語言 為什么要學習Python Python的應用領域 Python安裝和環境配置 Python的下載和安裝(Windows, macOS, Linux) 配置Python環境變量 安裝和使用IDE(如PyCharm, VS Code) Python基本語法 注釋 變量和數據類型(數字,字符串,列表,元組,字典,…

P3374 【模板】樹狀數組 1

題目描述 如題,已知一個數列,你需要進行下面兩種操作: 將某一個數加上 𝑥x 求出某區間每一個數的和 輸入格式 第一行包含兩個正整數 𝑛,𝑚n,m,分別表示該數列數字的個數和操作的總個數。 …

<sa8650>sa8650 qcxserver-之-攝像頭傳感器VB56G4A驅動開發<1>

<sa8650>sa8650 qcxserver-之-攝像頭傳感器VB56G4A驅動開發 <1> 一、前言二、QCX架構三、QCX 傳感器驅動程序定制開發3.1 sensor硬件接口3.2 sensor配置文件3.2.1 cameraconfig.c3.2.2 cameraconfigsa8650_water.c3.2.3 新增編譯MK3.2.4 參數解析3.2.4.1 struct Camera…

干式電抗器的工作原理是什么

干式電抗器是電力系統中常用的無功補償設備&#xff0c;主要用于調節電網的電壓、提高功率因數、限制短路電流等。它的工作原理主要是通過在電路中引入一個與負載電流相反的磁場&#xff0c;從而產生一個與負載電流相抵消的電抗力&#xff0c;達到調節電壓和功率因數的目的。 干…

常微分方程算法之編程示例十-兩點狄利克雷邊值問題(理查德森外推法)

目錄 一、研究問題 二、C++代碼 三、計算結果 一、研究問題 本節我們采用理查德森法對示例八中的兩點狄利克雷邊值問題進行外推求解,相應的原理及推導思路請參考: 常微分方程算法之高精度算法(Richardson法+緊差分法)_richardson外推法-CSDN博客https://blog.csdn.net/…

20_系統測試與維護

目錄 測試基礎知識 測試原則 動態測試 靜態測試 測試策略 測試階段 測試用例設計 黑盒測試用例設計 白盒測試用例設計 McCabe度量法 魯棒性測試 缺陷探測率(Defect Detection Percentage,DDP) 調試 系統維護基礎 系統轉換 系統維護指標 軟件容錯技術 嵌入式安…

Stream流學習mapping

Stream流學習mapping 一、前言1. 基本用法2. 結合 Collectors.mapping3. 自定義轉換函數4.總結 一、前言 在Java的Stream API中&#xff0c;mapping 是一個非常有用的中間操作&#xff0c;它可以將流中的元素映射成其他形式。通常與 Collectors.groupingBy 或者 Collectors.ma…

【AI 大模型訓練數據白皮書 2024】

文末有福利&#xff01; 自《中共中央國務院關于構建數據基礎制度更好發揮數據要素作用的意見》發布以來&#xff0c;我國數據要素建設不斷深入&#xff0c;在國家數據局等 17 部門聯合印發的《“數據要素 ” 三年行動計劃&#xff08;2024 - 2026 年&#xff09;》進一步明確…

z-index的工作原理

z-index的工作原理 HTML文檔中的元素卻是存在于三個維度之中。除了大家熟知的平面畫布中的x軸和y軸&#xff0c;還有控制第三維度的z軸。 像 margin , float , offset 這些屬性&#xff0c;控制著元素在x軸和y軸上的表現形式一樣。 z-index 這個屬性控制著元素在z軸上的表現形…

不使用AMap.DistrictSearch,通過poi數據繪制省市縣區塊

個人申請高德地圖key時無法使用AMap.DistrictSearch&#xff0c;可以通過poi數據繪制省市縣區塊 1.進入POI數據網站找到需要的省市縣&#xff0c;下載對應的GeoJson文件 &#xff0c;此處為poi數據網站鏈接 2.? 處理geoJson數據&#xff0c;可以直接新建json文件&#xff0c;…

FIPS PUB 196 ENTITY AUTHENTICATION USING PUBLIC KEY CRYPTOGRAPHY

部分原文 3.3 Mutual authentication protocol The following mutual entity authentication protocol is based on Section 522. “Three pass authentication”, ofISO/IEC 9798-3. Certain authentication token fields and protocol steps are specified in greater deta…

在Windows命令行中設置定時關機

在Windows命令行中設置定時關機&#xff0c;你可以使用shutdown命令。下面是幾個實用的例子&#xff1a; 立即關機: shutdown /s /t 0延遲關機: 假設你想在30分鐘后關機&#xff0c;可以使用&#xff08;30分鐘等于1800秒&#xff09;:shutdown /s /t 1800定時關機: 如果你想在…

【機器學習】在【Pycharm】中的實踐教程:使用【邏輯回歸模型】進行【乳腺癌檢測】

目錄 案例背景 具體問題 1. 環境準備 小李的理解 知識點 2. 數據準備 2.1 導入必要的庫和數據集 小李的理解 知識點 2.2 數據集基本信息 小李的理解 知識點 注意事項 3. 數據預處理 3.1 劃分訓練集和測試集 小李的理解 知識點 注意事項 3.2 數據標準化 小李…

controller不同的后端路徑對應vue前端傳遞數據發送請求的方式,vue請求參數 param 與data 如何對應后端參數

目錄 案例一&#xff1a; 為什么使用post發送請求&#xff0c;參數依舊會被拼接帶url上呢&#xff1f;這應該就是param 與data傳參的區別。即param傳參數參數會被拼接到url后&#xff0c;data會以請求體傳遞 補充&#xff1a;后端controller 參數上如果沒寫任何注解&#xff0c…

第二高的薪水

第二高的薪水&#xff1a; 描述 查詢并返回 Employee 表中第二高的薪水 。如果不存在第二高的薪水&#xff0c;查詢應該返回 null(Pandas 則返回 None) pandas import pandas as pddef second_highest_salary(employee: pd.DataFrame):# 1. 刪除所有重復的薪水.employee emp…

第一后裔進不去游戲怎么辦 第一后裔免費加速器推薦

Steam年度最熱心愿榜單第五的游戲終于上線了&#xff0c;包好玩的新游&#xff0c;第一后裔&#xff0c;為什么說他肯定好玩呢&#xff1f;因為游戲第一次測試在兩年前就開始了&#xff0c;中間也斷斷續續測試了好多次&#xff0c;很多小伙伴都是體驗過游戲的&#xff0c;經過多…