主頁 >  其他 > 飛槳論文復現挑戰賽(第四期)冠軍論文——PGAN-Paddle

飛槳論文復現挑戰賽(第四期)冠軍論文——PGAN-Paddle

2021-09-20 14:40:13 其他

0

論文復現:Progressive Growing of GANs for Improved Quality, Stability, and Variation


一、簡介

本文提出了一種新的訓練 GAN 的方法——在訓練程序中逐步增加生成器和鑒別器的卷積層:從低解析度開始,隨著訓練的進行,添加更高解析度的卷積層,對更加精細的細節進行建模,生成更高解析度和質量的影像,
0

這個方法既加快了 GAN 的訓練速度,又增加了訓練的穩定性,因為預先訓練的低解析度層能給更難收斂的高解析度層帶來更有利于訓練的隱藏編碼,

本文還提出了一種新的評估 GAN 生成影像的指標——Sliced Wasserstein Distance(SWD),來評估源圖和生成影像的質量和變化,

論文鏈接:Progressive Growing of GANs for Improved Quality, Stability, and Variation

賽場:

  • 飛槳論文復現挑戰賽(第四期)
  • 【飛槳論文復現挑戰賽(第四期)】榜單

二、復現精度

參考官方開源的 pytorch 版本代碼 https://github.com/facebookresearch/pytorch_GAN_zoo,基于 paddlepaddle 深度學習框架,對文獻演算法進行復現后,本專案達到的測驗精度,如下表所示, 參考文獻的最高精度為 CelebA MS-SSIM=0.2838, SWD=2.64(64)

指標SWD × 1 0 3 10^3 103MS-SSIM
解析度128、64、32、16128
paddle 版本精度4.46、2.61、4.98、11.410.2719
參考文獻精度4.62、2.64、3.78、6.060.2838

超引數配置如下:

詳見 PGAN-Paddle/models/trainer/standard_configurations/pgan_config.py

超引數名設定值說明
miniBatchSize32Mini batch size
initBiasToZeroTrue是否把網路的 bias 初始化為 0?
perChannelNormalizationTruePer channel normalization
lossModeWGANGPloss mode,默認
lambdaGP10.0Gradient penalty coefficient (WGANGP)
leakyness0.2Leakyness of the leakyRelU activation function
epsilonD0.001Weight penalty on D ( x ) 2 D(x)^2 D(x)2
baseLearningRate0.001Base learning rate
GDPPFalse是否使用 GDPP loss 加入訓練?

Paddle 版原始碼:https://github.com/GXU-GMU-MICCAI/PGAN-Paddle

三、資料集

本專案使用的是 celeba 資料集,(CelebA)是一個大規模人臉屬性資料集,擁有超過 20 萬張名人頭像,該資料集中的影像包含大量姿勢變化和背景噪音以及模糊,

  • 資料集概述:

    • 影像數量:202599 張人臉影像
    • 影像大小:178 × 218 解析度
    • 資料集名稱:img_align_celeba
  • 資料集鏈接:CELEBA

四、環境依賴

  • 硬體:
    • x86 cpu(RAM >= 16 GB)
    • NVIDIA GPU(VRAM >= 32 GB)
    • CUDA + cuDNN
  • 框架:
    • paddlepaddle-gpu==0.0.0(nightly build 版本)
  • 其它依賴項:
    • numpy >= 1.19.2
    • scipy = 1.6.2
    • h5py = 3.2.1
    • imageio = 2.9.0

五、快速開始

1. 訓練

  • 資料預處理

    在開始訓練之前先解壓下載的 img_align_celeba.zip 資料集,然后使用 datasets.py 腳本對解壓后的資料集進行預處理:

    每個影像會被 cropped 到 128×128 解析度

    python datasets.py celeba_cropped $PATH_TO_CELEBA/img_align_celeba/ -o $OUTPUT_DATASET
    

    處理完成后,會在專案根目錄下生成組態檔 config_celeba_cropped.json 并自動寫入了以下內容,指定了預處理資料集路徑以及逐層訓練的相應迭代次數:

    {
      "pathDB": "img_dataset/celeba_cropped",
      "config": {
        "maxIterAtScale": [
          48000,
          96000,
          96000,
          96000,
          96000,
          96000
        ]
      }
    }
    

    可以在 config 中修改訓練配置,比如調整 batch_size,它會覆寫 standard configuration 中的默認配置,以下是我的訓練配置:

    {
      "pathDB": "work/img_dataset/celeba_cropped",
      "config": {
        "miniBatchScheduler": {"1": 64, "2": 64, "3": 64, "4": 32, "5": 22},
        "configScheduler": {
          "3": {"baseLearningRate": 0.003},
          "4": {"baseLearningRate": 0.003},
          "5": {"baseLearningRate": 0.003}
        },
        "maxIterAtScale": [
          48000,
          96000,
          96000,
          96000,
          96000,
          160000
        ]
      }
    }
    

    miniBatchScheduler 中可以針對不同的 scale 設定不同的 batch_size,因為隨著 scale 的增加,需要減小 batch_size 來防止爆顯存,configScheduler 中可以針對不同的 scale 設定不同的 learning_rate,在代碼 PGAN-Paddle/models/progressive_gan.py 中我還加入了自適應學習率衰減策略(lr.ReduceOnPlateau),

  • 運行訓練

    接著運行以下命令從零開始訓練 PGAN:

    python train.py PGAN -c config_celeba_cropped.json --restart -n celeba_cropped --np_vis
    

    然后等幾天(我用 T4 和百度 AI studio 的 V100,前后跑了 6 天,所以它到底加速了什么呢 😝 ),,,各個階段訓練好的模型會被轉儲到 output_networks/celeba_cropped 中,訓練完成后應該得到 128 x 128 解析度的生成影像,

    如果訓練中斷,重啟訓練時可以把 --restart 去掉,訓練會從 output_networks/celeba_cropped 中保存的最新模型開始,如果想使用 GDPP loss,可以加入 --GDPP True

    output_networks/celeba_cropped 中會保存每個階段訓練完成的:

    • 模型:celeba_cropped_s$scale_i$iters.pdparams
    • 組態檔:celeba_cropped_s$scale_i$iters_tmp_config.json
    • refVectors:celeba_cropped_refVectors.pdparams
    • losses:celeba_cropped_losses.pkl
    • 生成的影像:celeba_cropped_s$scale_i$iters_avg.jpgceleba_cropped_s$scale_i$iters.jpg_avg.jpg 影像效果更好,預測時默認使用其來計算指標,
      2

2. 預測

訓練好的最終模型可到百度網盤自取:celeba_cropped_s5_i96000,提取碼:6nv9,將其中的檔案放到專案的 output_networks/celeba_cropped 中,在 .json 檔案中指定 refVectors.pdparams 的路徑,losses.pkl 可以沒有,

如需要運行 i80000.pdparams 模型,可以把 .json 檔案的檔案名改成對應的 i80000,因為需要通過這個檔案找到 refVectors.pdparams 的路徑,

  • 影像生成

    通過以下命令使用 output_networks/celeba_cropped 中保存的最新模型來生成影像:

    python eval.py visualization -n celeba_cropped -m PGAN --np_vis
    

    如果你想指定某個階段的模型,加入 -s $scale-i $iter

    python eval.py visualization -n celeba_cropped -m PGAN -s $SCALE -i $ITER --np_vis
    

    以上兩個命令生成的影像保存在 output_networks/celeba_cropped 中,名為:celeba_cropped_s$scale_i$iter_fullavg.jpg

    隨機生成一些影像:

    python eval.py visualization -n celeba_cropped -m PGAN --save_dataset $PATH_TO_THE_OUTPUT_DATASET --size_dataset $SIZE_OF_THE_OUTPUT --np_vis
    

    其中,$SIZE_OF_THE_OUTPUT 表示要生成多少張影像,

  • 評估指標

    SWD & MS-SSIM metric

    運行:

    python eval.py laplacian_SWD -c config_celeba_cropped.json -n celeba_cropped -m PGAN -s 5 -i 64000 --np_vis
    

    它會在 config_celeba_cropped.json 里指定的資料路徑中隨機遍歷 16000 張源影像及其生成影像來計算 SWD 指標,Merging the results 的程序會占用不少 CPU 記憶體(18 GB 左右)和時間,運行后會輸出:

    Running laplacian_SWD
    Checkpoint found at scale 5, iter 64000
    Average network found !
    202599 images found
    Generating the fake dataset...
     |####################################################################################################| 100.0% 
     |####################################################################################################| 100.0% 
    Merging the results, please wait it can take some time...
     |####################################################################################################| 100.0% 
    
         resolution               128               64               32  16 (background)
               score         0.006042         0.002615         0.004997         0.011406 
         ms-ssim score    0.2719      
    ...OK
    

    其中相應的指標數值會保存在 output_networks/celeba_cropped/celeba_cropped_swd.json 中,

六、代碼結構與詳細說明

6.1 代碼結構

├── logs                    # 訓練日志檔案
├── models                    # 包含模型定義、損失函式、資料集讀取、訓練測驗方法
│   ├── datasets              # 讀取資料集
│   ├── eval                  # 使用預訓練模型進行預測、指標評估
│   ├── loss_criterions       # 損失函式定義
│   ├── metrics               # 評估指標
│   ├── networks              # 網路模型定義
│   ├── trainer               # 訓練策略封裝
│   ├── utils                 # 工具包
│   ├── UTs                   # 未使用
│   ├── base_GAN.py           # GAN父類
│   ├── gan_visualizer.py     # GAN 訓練中間影像保存
│   ├── progressive_gan.py    # PGAN
│   ├── README.md             # models' readme
├── output_networks           # 保存訓練和預測結果
├── visualization             # 可視化、影像保存
├── CODE_OF_CONDUCT.md              
├── config_celeba_cropped.json   # 資料預處理后生成的組態檔
├── CONTRIBUTING.md            
├── datasets.py                # 資料預處理腳本
├── eval.py                    # 預測、生成影像腳本
├── hubconf.py                 # 用于加載預訓練的參考代碼,未使用
├── LICENSE                    # 開源協議
├── README.md                  # 主頁 readme
├── requirements.txt           # 專案的其它依賴
├── save_feature_extractor.py    # 未使用
├── train.py                     # 訓練腳本

6.2 引數說明

見 二、復現精度

6.3 訓練流程

見 五、快速開始

執行訓練開始后,將得到類似如下的輸出,每 100 個迭代會列印當前 [scale: iters] 以及生成器損失、辨別器損失,

一個 scale 代表添加了一層,scale = len(maxIterAtScale)maxIterAtScale 指定了逐層訓練的每層相應迭代次數,
config_celeba_cropped.json

{
  "pathDB": "img_dataset/celeba_cropped",
  "config": {
    "maxIterAtScale": [
      48000,
      96000,
      96000,
      96000,
      96000,
      96000
    ]
  }
}

開頭的 loss 會比較大,大小與設定的 batch_size 成正比,到 3000 個迭代后 loss 趨于穩定,穩下來的時間或許也跟設定的 batch_size 大小有關,

Running PGAN
size 10
202599 images found
202599 images detected
size (4, 4)
202599 images found
Changing alpha to 0.000
[0 :    100] loss G : 614.970 loss D : 750532.237
[0 :    200] loss G : 1535.155 loss D : 322471.667
[0 :    300] loss G : 1557.878 loss D : 211534.072
[0 :    400] loss G : 1459.596 loss D : 155299.552
[0 :    500] loss G : 1289.707 loss D : 108436.870
[0 :    600] loss G : 926.709 loss D : 85481.609
[0 :    700] loss G : 616.158 loss D : 55485.711
[0 :    800] loss G : 521.535 loss D : 37811.031
[0 :    900] loss G : 426.269 loss D : 31965.410
[0 :   1000] loss G : 330.425 loss D : 24301.256
[0 :   1100] loss G : 183.268 loss D : 19704.261
[0 :   1200] loss G : 53.901 loss D : 16482.146
[0 :   1300] loss G : -63.348 loss D : 11397.357
[0 :   1400] loss G : 22.371 loss D : 8459.339
[0 :   1500] loss G : -13.653 loss D : 6577.623
[0 :   1600] loss G : 8.768 loss D : 6329.811
[0 :   1700] loss G : -2.990 loss D : 4607.002
[0 :   1800] loss G : 29.571 loss D : 3684.394
[0 :   1900] loss G : 27.713 loss D : 3607.460
[0 :   2000] loss G : -43.031 loss D : 2106.303
[0 :   2100] loss G : -95.974 loss D : 1928.345
[0 :   2200] loss G : -74.860 loss D : 2405.030
[0 :   2300] loss G : -65.015 loss D : 1664.527
[0 :   2400] loss G : -62.593 loss D : 1063.161
[0 :   2500] loss G : -12.376 loss D : 1379.406
[0 :   2600] loss G : 36.092 loss D : 549.926
[0 :   2700] loss G : 49.579 loss D : 691.503
[0 :   2800] loss G : 49.356 loss D : 52.687
[0 :   2900] loss G : 31.852 loss D : 570.363
[0 :   3000] loss G : 54.769 loss D : 382.479
[0 :   3100] loss G : 62.957 loss D : 491.729
[0 :   3200] loss G : 39.215 loss D : 37.412
[0 :   3300] loss G : 29.801 loss D : 215.652
[0 :   3400] loss G : 20.525 loss D : 27.800
[0 :   3500] loss G : 18.882 loss D : 338.726
[0 :   3600] loss G : 39.331 loss D : 128.357
[0 :   3700] loss G : -11.004 loss D : 93.745
[0 :   3800] loss G : 4.962 loss D : 205.661
[0 :   3900] loss G : 10.032 loss D : 187.112
[0 :   4000] loss G : 15.935 loss D : 11.016
[0 :   4100] loss G : 43.358 loss D : 183.713
[0 :   4200] loss G : 5.674 loss D : 5.614
[0 :   4300] loss G : -21.695 loss D : 285.515
[0 :   4400] loss G : 5.493 loss D : 9.029

6.4 測驗流程

見 五、快速開始

使用最終的預訓練模型 celeba_cropped_s5_i96000.pdparams 生成的影像如下:
3

七、實驗資料比較及復現心得

5
miniBatchSize
原文的實驗中,PGAN 的 batch_size 配置是 64,不是原始碼中默認設定的 16,batch_size = 16 的配置在論文中是在添加高解析度層之后才下調的(也起到降低顯存的效果),如果從頭到尾都使用 batch_size=16 會導致影像生成的效果不好,

但是我復現時沒有注意到此處,復現的 paddle 版本直接使用原始碼默認的 batch_size=16 進行訓練,發現顯存還剩余很多,于是改成 batch_size=32,發現開頭的 loss 變得很大,但是也很快收斂到穩定的 20 以內,訓練到 scale=5 時,PGAN 增加的高解析度層會導致 32 GB 的顯存爆滿,需要將 batch_size 下調至 16 或更小,

SWD metric
預測程序會在整個 celeba_cropped 資料集中隨機采樣 16000 張影像來預測并計算一個模型的不同 scale 下每對影像(輸入影像和對應的生成影像)的 SWD 指標,用同樣的模型每次計算得到的指標結果有所不同,如果把采樣數改成幾千或更少,SWD 的值會很大,但是采樣數在 16000 左右,SWD 就基本不變了,既然都是在訓練集中采樣的,模型應該是擬合了所有 20 多萬張頭像的資訊,為何采樣數量少的情況下 SWD 指標會變大,我暫時不明白,

MS-SSIM metric
由于源代碼沒有提供 MS-SSIM 的實作,我參考 GitHub 的開源 pytorch 版本 https://github.com/VainF/pytorch-msssim/blob/master/pytorch_msssim/ssim.py 來計算 MS-SSIM 指標,得到的結果跟論文中在 celeba 資料集上的測驗結果差不多,論文中說 SWD 指標能更好反映影像質量以及結構的差異和變化,而 MS-SSIM 只測量輸出之間的變化,不會反映生成影像和訓練集的差異,所以在生成影像發生了明顯改善后,MS-SSIM 指標也幾乎沒有變化,SWD 指標的結果變好了一點,

生成效果
論文中說明在規定的迭代次數內網路并沒有完全收斂,而是達到指定迭代次數后就停止訓練,所以生成的影像還不夠完美,如果想要生成更完美的影像,那得再等上好幾天?

API 轉換
將 pytorch 版本代碼轉為 paddle 有些 API 在 paddle 中是沒有的,但是 numpy 里是肯定都有的 😄,找不到的 API 用 numpy 來搭個橋,這是很不錯的復現辦法,

八、模型資訊

資訊說明
發布者絕絕子
時間2021.09
框架版本paddlepaddle 0.0.0 (develop 版本)
應用場景GAN 影像生成
支持硬體GPU、CPU(RAM >= 16 GB)
CELEBA資料集下載CELEBA
AI Studio 地址https://aistudio.baidu.com/aistudio/projectdetail/2351963

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

標籤:其他

上一篇:OpenCV-美食—鮮美濾鏡

下一篇:OpenCV-影像色溫

標籤雲
其他(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