主頁 >  其他 > 【機器學習】李宏毅——生成式對抗網路GAN

【機器學習】李宏毅——生成式對抗網路GAN

2022-12-19 07:02:37 其他

1、基本概念介紹

1.1、What is Generator

在之前我們的網路架構中,都是對于輸入x得到輸出y,只要輸入x是一樣的,那么得到的輸出y就是一樣的,

但是Generator不一樣,它最大的特點在于多了另外一個具有隨機性的輸入,如下圖:

在這里插入圖片描述

其中輸入除了x之外,還有一個z,而z是從一個已知的分布之中進行采樣得到的,例如高斯分布等等,那么由于z具有一定的隨機性,那么由x與z獲得的輸出y也就不再只是一個確定的值,而是一個復雜的分布

1.2、Why distribution

為什么需要將輸出y變成一個分布呢?來看下面這個例子:

在這里插入圖片描述

假設我們現在正在做一個畫面預測的任務,根據以前的畫面資料預測接下來里面的小精靈會往哪里走動,但是以往的資料中可能會存在沖突的資料,即例如同一只小精靈在相同的轉角處它選擇了不同的選擇,某次向左某次向右,這就相當于告訴機器它做出向左向右的預測都是對的,但是它為了擬合這兩份資料它就可能在預測的時候直接將一只小精靈進行復制,一只向左一只向右來同時滿足最小化誤差的學習,但這在我們看來是不合理的,因此我們可以給網路增加一個輸入z,由某個分布中取樣得到的z來使得y也是一個分布,那么y就根據采樣得到的z來決定我這一次是向左轉還是向右轉

那么實際上在一些需要一定的創造力的任務中就需要輸出是一個分布,即某一些任務并不是只有唯一的答案,它面對相同的輸入可以有很多個正確的答案,那么這個時候我們就希望y可以是一個分布,如下圖:

在這里插入圖片描述

1.3、Generative Adversarial Network(GAN)

先介紹一下Contional Generation和Uncontional(無條件、無限制) Generation這兩者的差別,前者就是之前講的網路的輸入有x和z,而后者就是網路的輸入單純只有z而已,下面我們將以Uncontional Generation用來生成動漫人臉的例子來進行介紹,

需要注意的是一般來說z都是一個較為低緯度的向量,而輸出的y如果是一張圖片那么將是一個高維的向量,這中間的轉換就是由Generator來實作

在這里插入圖片描述

而在訓練這個生成器之前呢,我們還需要訓練一個discriminator,也是一個網路架構,其功能就是輸入一張圖片,然后輸出結果表示這張圖片是動漫人臉的可能性有多大,例如:

在這里插入圖片描述

其內部具體的結構取決于你自己的設計,例如是CNN或者Transformer等都可以,

1.4、Basic Idea of GAN

在最開始GAN的訓練方式是:

  • 有一個Generator和一個Discriminator,那么一開始生成器的引數基本都是隨機化的,那么它所產生的影像也很難接近真實的動漫人臉,而辨別器的主要任務就是找出生成器生成的圖片與真實的動漫圖片之間的不同,例如在下面的圖片中它第一次辨認的依據是眼睛
  • 那么第二輪呢生成器就學習到應該要產生出眼睛來騙過辨別器,那么其引數調整后就生成出有眼睛的動漫人臉,那么辨別器就需要找出更多的特別來進行辨認,例如嘴巴、頭發
  • 第三輪呢生成器就再次調整,生成出嘴巴、頭發等,那么這時候辨別器就需要再次調整尋找新的特征
  • 因此生成器和辨別器就是在這個對抗的程序中不斷進步

在這里插入圖片描述

1.5、訓練的方法

生成器和辨別器具體的訓練步驟如下所示:

Step1:隨機初始化生成器和辨別器的引數,并固定住生成器的引數,讓生成器接受向量并產生一些影像的輸出;另外在真實動漫人臉資料庫中采樣一些樣本出來標識為1,而生成器生成的假圖示識為0,然后用這些樣本去訓練辨別器,讓它輸出一個0到1之間的數值,1代表越接近于真實的圖片,如下所示:

在這里插入圖片描述

Step2:固定住辨別器的引數,讓生成器生成一張圖片并傳給辨別器得到一個輸出,代表該圖片為真實圖片的可能性,然后調整生成器的引數使辨別器的輸出越高越好,那么這里調整的方法跟普通的神經網路類似, 可以把生成器和辨別器連在一起看成一個大的網路,是接受一個向量的輸入然后輸出一個數值,那么就同樣可以采用梯度下降等的方式來調整生成器的引數,這個步驟也可以看成是生成器在學習如何欺騙辨別器

在這里插入圖片描述

Step3:不斷重復Step1和Step2的訓練,直到生成器輸出的圖片能夠滿足要求

在這里插入圖片描述

更有趣的應用,如果我們用來訓練產生真實人臉,可以實作兩張人臉之間的過度,具體我們可以看下圖,就是在兩張人臉對應的向量之間做插值,我相信這個效果也有很多小伙伴在網路上看過,我也是此刻才明白具體的原理,也就是用各式各樣的GAN來實作,

在這里插入圖片描述

2、GAN的理論

2.1、基礎理論介紹

在GAN中,我們可以把我們的目標進行簡化,就比如下圖,我們希望能夠找到一組G的引數,它能夠對分布z的輸入產生對應的分布\(P_G\),而假設我們真實的分布為\(P_{data}\),我們希望它們能夠越接近越好,即:

在這里插入圖片描述

其中Div可以用來衡量兩個分布之間的距離,例如KL散度等等,但是目前的問題是這個Div很可能寫出來是一個非常復雜的積分等等,因為我們根本不知道兩個分布是什么,我們根據就不知道怎么表示出來或者說怎么進行最小化,因此這也是GAN在訓練的時候會遇到的常見問題,而GAN告訴我們的解決方案就是:不需要知道兩個分布的具體函式,只需要有辦法能夠從分布中進行采樣即可,即\(P_G\)\(P_{data}\)只需要知道怎么采樣即可,如下圖:

在這里插入圖片描述

具體的實作還是有辨別器來做到的,見下圖:

在這里插入圖片描述

在訓練辨別器的時候,像我們之前說到的,使用了從真實資料中采樣的資料和生成的假的資料來分別加上標簽進行訓練,然后重點就在于損失函式的確定,從圖中可以看到損失函式的具體是式子為:

\[V(G,D)=E_{y-P_{data}}[logD(y)]+E_{y-P_G}[log(1-D(y))] \]

那么實際上\(V(G,D)\)就是加了負號的交叉熵,那我們希望最大化\(V(G,D)\)就相當于最小化交叉熵,也就相當于將辨別器看成一個二分類的貝葉斯分類器來訓練,而另外一個需要注意的點是當你最大化\(V(G,D)\)的時候,解出來的這個\(V(G,D)\)的值實際上和\(JS ~divergence\)是有關的,這個觀點可以直觀地進行理解:

在這里插入圖片描述

  • 當兩個分布很接近的時候,即它們之間的divergence很小的時候,辨別器很難完全地將它們分開,因此實際上它訓練引數之后得到的最大化的\(V(G,D)\)還是比較小的,那么跟divergence比較小是對應的
  • 當兩個分布不接近,即它們之間的divergence很大的時候,辨別器就能夠輕易地將它們分開,因此實際上它訓練引數之后得到的最大化的\(V(G,D)\)就會比較大的,那么跟divergence比較大是對應的

因此,divergence的值和\(V(G,D)\)的值之間可以認為存在一定的正比例關系,那么我們在一開始中用到Div的目標函式就可以用\(V(G,D)\)進行替換,即:

在這里插入圖片描述

而我們之前說到了G和D之間對抗不斷調整的程序實際上就是這個新的目標函式的求解程序,

2.2、JS divergence is not suitable

我們需要先了解一下為什么JS divergence存在問題,之后再來了解著名的WGAN,

首先,我們要明確\(P_G\)\(P_{data}\)它們之間相交的部分實在是太少了,具體的理由有兩個:

  • 它們都是高維空間中的能夠表示為圖片(或者說我們想要的動漫人臉)的向量,但是在高維空間中滿足條件的向量只占非常小的一部分,例如可以認為它們分別只占二維空間中的一條直線或者曲線,那么它們之間相交之處只能是幾個點而已(除非它們重合),那么就可以認為它們之間相交的部分實在特別少
  • 我們是對真實的兩個分布之間進行采樣的,就算原始的真正的分布它們之間存在重疊的部分,但如果我們采樣的不是特別多,不能夠完全地描述出兩個原來的分布,那還是可以找到一個分界將這兩類采樣出來的點完全分開,那么也可以認為它們是沒有相交的部分的,

而JS divergence的特性在于如果兩個分布沒有交疊,計算出來永遠時log2,可以看下圖:

在這里插入圖片描述

從圖中可以看到,第二個情況明明比第一個情況更加接近,但是實際上JS計算出來的值還是一直都是log2,除非它們真的出現了交疊,才會計算出新的值,這樣就導致假設我們在分布中采樣的樣本數不是非常非常多,那我們用之前類似于貝葉斯的思想來訓練分類器的時候可以發現我們總是100%的正確率,因為根據這個JS就無法提供指導性的作用,它無法告訴機器說讓兩個分布越來越接近可以讓損失函式越來越小,因此無法訓練成功

2.3、Wasserstein distance

Wasserstein distance是另一種衡量兩個分布之間的距離,可以通俗的想象成兩個分布分別是兩堆土,如下圖:

在這里插入圖片描述

那么兩個分布之間的距離就是用推土機將分布P推到分布Q的位置時經過的距離,但實際上的分布可能更復雜一點:

在這里插入圖片描述

例如上圖,那么從分布P經過推土機的操作得到分布Q可以有很多種方式,可以認為每一種方式的d都不一樣,那么Wasserstein distance的定義就是窮舉所有的d,選取里面最小的d來作為真正的Wasserstein distance,那么也就是說我們還需要解這個Wasserstein distance的優化問題,

那么將計算距離更換為Wasserstein distance,便可以讓我們發現在兩個分布越來越接近的時候計算出來的距離越來越小,這樣就可以指導我們的網路往這個方向去調整

在這里插入圖片描述

2.4、WGAN

當用Wasserstein distance取代JS divergence的時候,此時的GAN就稱為WGAN,那么現在的問題就在于Wasserstein distance這個距離應該怎么距離計算呢?推導過于復雜,結論就是解下面這個函式,最終得到的值(目標函式的值)就是我們要計算的兩個分布之前的Wasserstein distance

\[max_{D\in 1-Lipschitz}~\{E_{y-P_{data}}[D(x)]-E_{y-P_G}[D(x)]\} \]

這跟前面那個將目標函式Div更換成貝葉斯那個是同理的,

但是此處對于評估函式D還是有限制的,要求它是足夠平滑的,不能夠是具有劇烈變化的,否則例如下圖:

在這里插入圖片描述

只要這兩堆沒有重疊,就會將取值推向兩個無窮的極端,

3、生成器效能評估與條件式生成

3.1、訓練的問題

雖然已經將評估分布的距離更換成Wasserstein distance,但實際上GAN還是很難訓練的,主要原因是生成器和辨別器它們彼此之間是相互砥礪、相互進步的,只要其中有一個訓練發生了差錯,那么另外一個肯定也無法繼續提升,即只要其中一個在某次更新程序中沒有更新,那么可能整個訓練程序就壞掉了,無法再繼續提升下去了,

特別是在將GAN用于生成文字的時候更難訓練,例如在下圖的模型中,我們產生了一段文字然后讓辨別器查看文字是否是機器生成的并且打分,那么如果采用梯度下降的方法我們給生成器的引數帶來了一點微小的變動,但由于各個輸出向量都是采用取那個概率最大的文字作為輸出的方式,因此微小的變化計算能夠改變各個概率的值,但一般不會使得概率最大的文字改變,也就是輸出沒有發生改變,那么也就沒有辦法進行微分

在這里插入圖片描述

另外一個需要注意的點是應該如何評估GAN這種模型所生成結果的好壞呢

3.2、評估生成器的好壞

這個問題沒有一個標注性的答案,在GAN剛出現的時候,對于生成結果都是由人們自己來判斷效果,這樣主觀性太強而且不夠穩定,

現在對于生成影像的系統,可以再另外訓練一個影像辨識系統來進行驗證,例如生成的都是狗的圖片,那么在這個影像辨識系統中接受輸入,并且輸出是概率分布,那我們就希望這個概率分布能夠有一個分類,其概率能夠越接近于1越好,就說明大部分圖片我們將其歸為一類,這樣就說明可能生成效果還是不錯的;而如果分成了很多類而且概率都差不多,那么說明生成效果就不好了,但是在這個評估策略中可能會遇到一個問題,稱為Mode Collapse,可以通過下圖直觀理解,這種問題就是說雖然能夠產生出效果比較好的結果,但可能那些結果具有很高的相似性,例如左下方的紅色星星都集中的同一個點,很難像真實的分布能夠較為廣闊;在右邊的例子中很可能產生的影像越來越相似,例如我指出來的那幾張基本上都一樣了,這種情況可能訓練到最后只能夠輸出這一張圖片而已

在這里插入圖片描述

產生這個現象的原因可以直觀理解為:例如左下方的例子中,聚集的地方可以稱為辨別器的盲點,只要產生在這附近的結果那么辨別器就無法辨認出來是假的,因此生成器就會不斷產生這附近的圖片,

另外一個問題是Mode Dropping,它比上一個問題更難偵測到,先來直觀說明問題的內容,看下圖:

在這里插入圖片描述

就是雖然產生的資料能夠不集中于某一處,分布看起來也還行,但是只學習到真實分布的一部分,另外一部分完全沒有學習到,從下圖的例子中可以很明顯地看出來,雖然在兩次產生的影像集中看起來好像有分布得很均勻,但是我們可以發現第一次只有白人,第二次只有黃種人,這就說明它沒有學習到真正的分布,只學習到其中某一部分的分布,黑色人種的圖片完全沒有學習到,

在這里插入圖片描述

那么評估結果多樣性的一個思路是:將產生的所有圖片都丟進去一個影像分類系統之中,那么每張圖片就會產生對應的分布,我們再將所有分布求和取平均,那么如果得到的最終分布越平坦,就說明多樣性越好,如下圖:

在這里插入圖片描述

另外一種測量指標成為FID,其具體的做法為:將圖片放進去影像辨識系統之后,由于要進行分類因此肯定最后會經過一個softmax環節,我們將進入softmax之前的最后一層的的輸出的這個向量,用來代表這個圖片,那么對于真實的圖片和生成的圖片就都可以得到很多的向量,再將這些向量來計算FID(具體的計算方法就不拓展了),那么FID的評價標準是兩個分布越接近其數值就越小,不過計算程序中會假設兩個都是高斯分布,這個方法還有一個問題就是為了模擬出真實的分布,它需要很多的樣本經過影像辨識系統得到的向量,因此計算量會很大,

在這里插入圖片描述

4、Conditional Generator

Conditional GAN就是輸入的時候除了之前從分布中采樣得到的z之外,還有一個x,它可以用x來指定y的輸出,例如應用于文字轉影像的例子:

在這里插入圖片描述

那么這種情況下的訓練程序也要進行調整,在訓練辨別器的時候不僅僅要輸入產生的圖片,更要輸入原始輸入x,并且需要將它們進行配對,才能夠讓機器學習到看到這樣配對的文字和影像才能夠給高分,而往往在訓練辨別器時還要加入一部分特殊的訓練資料,即我們將原本資料中圖和文字已經配對好的樣本,都進行打亂,使得文字和影像并沒有關系,那么用這種樣本告訴機器說看到這樣的樣本也要給低分,那么機器才能夠一方面學習到影像要接近于真實動漫人臉,還學習到要滿足我們的輸入x,如下圖:

在這里插入圖片描述

還有另外一種應用是輸入x是一張影像,然后希望能夠產生另一張圖片來滿足我們的需求,例如:

在這里插入圖片描述

還有例如聽一段聲音然后產生一張圖片,即:

在這里插入圖片描述

5、Cycle GAN

在之前的各種普通的網路結構中,一般樣本都是有對應的標注的,即x和y之前的成對的,但是在一些訓練任務中它們之間并沒有成對,例如下圖的影像風格轉換的任務中,x是真實的人臉,而y要求是人臉的動漫版本,那么在這個任務中就不具有成對的x和y來進行訓練了:

在這里插入圖片描述

那么實際上,GAN在這種不成對的樣本的訓練任務中是可以發揮作用的,那么應該怎么應用呢?如果直接套用GAN的思想,如下圖:

在這里插入圖片描述

因為GAN的辨別器要求是辨別你生成器的輸出是不是y的那個分布,那這個就會導致生成器發現只要生成一張是動漫人臉的圖片就可以讓辨別器打高分,而這個動漫人臉是否和輸入的人臉相似這并不重要,可以說生成器完全忽略了輸入,那么怎么解決這個問題呢?就用到了Cycle GAN,其具體的做法可以看下圖:

在這里插入圖片描述

其最重要的特點在于訓練了兩個生成器,多出來的生成器用于將第一個生成器生成的動漫人臉還原成真實的人臉,而我們訓練的時候會要求原先的人臉和還原的人臉越接近越好

但這個Cycle GAN好像并沒有限制中間產生的動漫人臉必須和原先的人臉非常地相像,例如機器可能學習到原始人臉戴著眼鏡就將眼睛去掉然后加上一顆痣,第二個生成器就學習到看到一顆痣就將痣去掉然后加上一副眼鏡,這說明在Cycle GAN是沒有對原始輸入和產生的動漫人臉的相似度進行限制,但在實際訓練中這種情況其實很少發生,可以認為網路架構不會去做這么復雜的問題,它會盡量去輸出相似的東西而已,這也是在理論上和實際上的不同,

并且這個Cycle GAN可以是雙向的,例如下圖:

在這里插入圖片描述

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/540246.html

標籤:其他

上一篇:【機器學習】李宏毅——Transformer

下一篇:高可用系列文章之二 - 傳統分層架構技術方案

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more