涵蓋18+ SOTA GAN實現,這個圖像生成領域的PyTorch庫火了

2021-03-02 機器之心

GAN 自從被提出後,便迅速受到廣泛關注。我們可以將 GAN 分為兩類,一類是無條件下的生成;另一類是基於條件信息的生成。近日,來自韓國浦項科技大學的碩士生在 GitHub 上開源了一個項目,提供了條件 / 無條件圖像生成的代表性生成對抗網絡(GAN)的實現。

近日,機器之心在 GitHub 上看到了一個非常有意義的項目 PyTorch-StudioGAN,它是一個 PyTorch 庫,提供了條件 / 無條件圖像生成的代表性生成對抗網絡(GAN)的實現。據主頁介紹,該項目旨在提供一個統一的現代 GAN 平臺,這樣機器學習領域的研究者可以快速地比較和分析新思路和新方法等。該項目的作者為韓國浦項科技大學的碩士生,他的研究興趣主要包括深度學習、機器學習和計算機視覺。

項目地址:https://github.com/POSTECH-CVLab/PyTorch-StudioGAN

提供了大量 PyTorch 框架的 GAN 實現;

基於 CIFAR 10、Tiny ImageNet 和 ImageNet 數據集的 GAN 基準;

相較原始實現的更好的性能和更低的內存消耗;

提供完全最新 PyTorch 環境的預訓練模型;

支持多 GPU(DP、DDP 和多節點 DDP)、混合精度、同步批歸一化、LARS、Tensorboard 可視化和其他分析方法。

對於這個 PyTorch GAN 庫,有網友表示:「看上去很不錯!如果可以提供 top-k 等現代訓練實踐以及各種增強方法就更棒了。」對此,項目作者稱其會在 NeurIPS 論文提交截止日期之後,添加一些改進的方法,如 Sinha 等人的 Tok-K 訓練以及 Langevin 採樣和 SimCLR 增強。

此外,有網友詢問是否可以將該項目用於圖像之外的其他領域。作者表示可以,即使無法使用一些穩定器(如 diffaug、ada 等),依然可以通過調整 dataLoader 來訓練自己的模型。

如下圖所示,項目作者提供了 18 + 個 SOTA GAN 的實現,包括 DCGAN、LSGAN、GGAN、WGAN-WC、WGAN-GP、WGAN-DRA、ACGAN、ProjGAN、SNGAN、SAGAN、BigGAN、BigGAN-Deep、CRGAN、ICRGAN、LOGAN、DiffAugGAN、ADAGAN、ContraGAN 和 FreezeD。

cBN:條件批歸一化;AC:輔助分類器;PD:Projection 判別器;CL:對比學習。下圖中 StyleGAN2 為即將實現的 GAN 網絡,其中 AdaIN 表示自適應實例歸一化(Adaptive Instance Normalization)。

Anaconda

Python >= 3.6

6.0.0 <= Pillow <= 7.0.0

scipy == 1.1.0

sklearn

seaborn

h5py

tqdm

torch >= 1.6.0 

torchvision >= 0.7.0

tensorboard

5.4.0 <= gcc <= 7.4.0

torchlars 

conda env create -f environment.yml -n studiogan

docker pull mgkang/studiogan:latest

以下是創建名字為「studioGAN」容器的命令,同樣也可以使用埠號為 6006 來連接 tensoreboard。
docker run -it --gpus all --shm-size 128g -p 6006:6006 --name studioGAN -v /home/USER:/root/code --workdir /root/code mgkang/studiogan:latest /bin/bash

使用 GPU 0 的情況下,在 CONFIG_PATH 中對於模型的訓練「-t」和評估「-e」進行了定義:
CUDA_VISIBLE_DEVICES=0 python3 src/main.py -t -e -c CONFIG_PATH

在使用 GPU (0, 1, 2, 3) 和 DataParallel 情況下,在 CONFIG_PATH 中對於模型的訓練「-t」和評估「-e」進行了定義:
CUDA_VISIBLE_DEVICES=0,1,2,3 python3 src/main.py -t -e -c CONFIG_PATH

在 python3 src/main.py 程序中查看可用選項,通過 Tensorboard 可以監控 IS、FID、F_beta、Authenticity Accuracies 以及最大奇異值:
~ PyTorch-StudioGAN/logs/RUN_NAME>>> tensorboard --logdir=./ --port PORT

StudioGAN 支持圖像可視化、k 最近鄰分析、線性差值以及頻率分析。所有的結果保存在「./figures/RUN_NAME/*.png」中。
CUDA_VISIBLE_DEVICES=0,...,N python3 src/main.py -iv -std_stat --standing_step STANDING_STEP -c CONFIG_PATH --checkpoint_folder CHECKPOINT_FOLDER --log_output_path LOG_OUTPUT_PATH

k 最近鄰分析,這裡固定 K=7,第一列中是生成的圖像:
CUDA_VISIBLE_DEVICES=0,...,N python3 src/main.py -knn -std_stat --standing_step STANDING_STEP -c CONFIG_PATH --checkpoint_folder CHECKPOINT_FOLDER --log_output_path LOG_OUTPUT_PATH

線性插值(僅適用於有條件的 Big ResNet 模型 )的代碼和示例如下:
CUDA_VISIBLE_DEVICES=0,...,N python3 src/main.py -itp -std_stat --standing_step STANDING_STEP -c CONFIG_PATH --checkpoint_folder CHECKPOINT_FOLDER --log_output_path LOG_OUTPUT_PATH

參考連結:https://www.reddit.com/r/MachineLearning/comments/lu9gen/p_pytorch_gan_library_that_provides/

AWS白皮書《策略手冊:數據、 分析與機器學習》

曾存儲過 GB 級業務數據的組織現在發現,所存儲的數據量現已達 PB 級甚至 EB 級。要充分利用這 些海量數據的價值,就需要利用現代化雲數據基礎設施,從而將不同的信息豎井融合統一。無論您處於數據現代化改造過程中的哪個階段,本行動手冊都能幫助您完善策略,在整個企業範圍內高效擴展數據、分析和機器學習,從而加快創新並推動業務發展。

點擊閱讀原文,免費領取白皮書。

© THE END 

轉載請聯繫本公眾號獲得授權

投稿或尋求報導:content@jiqizhixin.com

相關焦點

  • 輕鬆構建 PyTorch 生成對抗網絡(GAN)
    本文的課題是用機器學習方法『模仿手寫字體』,為了完成這個課題,您將親手體驗生成對抗網絡的設計和實現。另外,您也可以通過 File > New > Notebook 菜單路徑,並選擇 conda_pytorch_p36 作為 Kernel 來創建這個筆記本。
  • 資源|帶自注意力機制的生成對抗網絡,實現效果怎樣?
    在前一段時間,Han Zhang 和 Goodfellow 等研究者提出添加了自注意力機制的生成對抗網絡,這種網絡可使用全局特徵線索來生成高解析度細節。本文介紹了自注意力生成對抗網絡的 PyTorch 實現,讀者也可以嘗試這一新型生成對抗網絡。
  • 雲計算必備知識-基於PyTorch機器學習構建生成對抗網絡
    本文的課題是用機器學習方法『模仿手寫字體』,為了完成這個課題,您將親手體驗生成對抗網絡的設計和實現。生成對抗網絡模型 算法原理DCGAN模型的生成網絡包含10層,它使用跨步轉置卷積層來提高張量的解析度,輸入形狀為 (batchsize, 100) ,輸出形狀為 (batchsize, 64, 64, 3)。換句話說,生成網絡接受噪聲向量,然後經過不斷變換,直到生成最終的圖像。
  • 在圖像生成領域裡,GAN這一大家族是如何生根發芽的
    我們可以發現,擁有最頂尖效果的模型,通常都有非常美妙的想法,這對於理解整個任務或領域非常重要。但是如果從另一個角度,探討這些頂尖模型的關係與演化,我們能獲得另一種全局體驗。為了獲得這種全局概覽,我們探索了 SOTA 項目中圖像生成領域的頂級模型。根據機器之心的 SOTA 模型統計,在圖像生成領域 58 個頂尖模型中,有 32 個模型在命名中帶了「GAN」。
  • 庫、教程、論文實現,這是一份超全的PyTorch資源列表(Github 2.2K星)
    項目地址:https://github.com/lium-lst/nmtpytorch13.pytorch-wavenet:快速語音生成 WaveNet 的實現。其中第 4 個項目可以用於將你的定製圖像分類模型和當前最佳模型進行對比,快速知道你的項目到底有沒有希望,作者戲稱該項目為「Project Killer」。1.pytorch vision:計算機視覺領域的數據集、轉換和模型。
  • 能生成Deepfake也能診斷癌症,GAN與惡的距離
    那天晚上他提出的方法現在叫做GAN,即生成對抗網絡(generative adversarial network)。Goodfellow自己可能沒想到這個領域會發展得如此迅速,GAN的應用會如此廣泛。下面我們先來看幾張照片。
  • 別人家的高中生:入大學前,Ta詳細梳理了GAN的發展脈絡
    博客地址:https://blog.floydhub.com/gans-story-so-far/作者在梳理過程中發現,GAN 的確是一個發展迅速的領域,短短五年就從模糊的灰度像素陣列發展到高度逼真的生成圖像,讓人無法一眼識別是真是假。
  • 經典GAN實戰教程:理解並運行自己的GAN生成手寫數字
    這步操作可以通過尋找一組GAN unit(稱為神經元)與輸出圖像中的概念(例如樹、天空、雲等)之間的協議來實現。因此,我們能夠識別出對某些物體(如建築物或雲)起作用的神經元。將這種粒度級別放入神經元中,可以允許通過強制激活和去激活(消融)這些對象的相應unit,來編輯現有圖像(例如,添加或移除圖像中所示的樹)。
  • 科普 | ​生成對抗網絡(GAN)的發展史
    它可以生成高質量的圖像,圖片增強,從文本生成圖像,將圖像從一個域轉換為另一個域,隨年齡增長改變臉部外觀等等。這個名單是遠遠不夠的。我們將在本文中介紹一些流行的GAN架構。第三,圍繞GAN不斷的研究是如此令人著迷,以至於它吸引了其他所有行業的注意力。我們將在本文後面部分討論重大技術突破。誕生生成對抗網絡(GAN)具有兩個網絡,生成器網絡和鑑別器網絡。
  • GAN(生成對抗網絡)萬字長文綜述
    PatchGAN:準確來說 PatchGAN 並不是用於穩定訓練,但這個技術被廣泛用於圖像翻譯當中,PatchGAN 相當於對圖像的每一個小 Patch 進行判別,這樣可以使得生成器生成更加銳利清晰的邊緣。
  • 萬字綜述之生成對抗網絡(GAN)
    PatchGAN:準確來說 PatchGAN 並不是用於穩定訓練,但這個技術被廣泛用於圖像翻譯當中,PatchGAN 相當於對圖像的每一個小 Patch 進行判別,這樣可以使得生成器生成更加銳利清晰的邊緣。
  • GitHub趨勢榜第一:TensorFlow+PyTorch深度學習資源大匯總
    :https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/cnn/cnn-resnet18-mnist.ipynbResNet-18 Gender Classifier Trained on CelebAPyTorch:https
  • 不僅僅是生成二次元萌妹子,來看 GAN 模型還有哪些有趣應用吧!
    它的全稱是 Generator adversarial networks,中文是生成對抗網絡,是一種生成式模型,由 good fellow 在 14 年提出,近四年來被 AI 研究者瘋狂研(guan)究(shui),更有大神建立一個 GAN zoo,收集了上百種不同的GAN:https://github.com/hindupuravinash/the-gan-zoo
  • 2012年至今,細數深度學習領域這些年取得的經典成果
    搭建DCGAN,https://pytorch.org/tutorials/beginner/dcgan_faces_tutorial.html 用TensorFlow搭建DCGAN,https://www.tensorflow.org/tutorials/generative/dcgan
  • 深度 | 生成對抗網絡初學入門:一文讀懂GAN的基本原理(附資源)
    不僅如此,對於幾乎任何給定的圖像分類器,都可以通過圖像變形的方式,在新圖像看起來和原圖像基本毫無差別的情況下,讓網絡得到有很高置信度的錯誤分類結果!這個過程被稱為對抗攻擊(adversarial attack),而這種生成方式的簡單性能夠給 GAN 提供很多解釋。對抗樣本(adversarial example)是指經過精心計算得到的旨在誤導分類器的樣本。
  • Github 2.2K星的超全PyTorch資源列表
    項目地址:https://github.com/lium-lst/nmtpytorch13.pytorch-wavenet:快速語音生成 WaveNet 的實現。其中第 4 個項目可以用於將你的定製圖像分類模型和當前最佳模型進行對比,快速知道你的項目到底有沒有希望,作者戲稱該項目為「Project Killer」。1.pytorch vision:計算機視覺領域的數據集、轉換和模型。
  • 用GAN來做圖像生成,這是最好的方法
    前言在我們之前的文章中,我們學習了如何構造一個簡單的 GAN 來生成 MNIST 手寫圖片。對於圖像問題,卷積神經網絡相比於簡單地全連接的神經網絡更具優勢,因此,我們這一節我們將繼續深入 GAN,通過融合卷積神經網絡來對我們的 GAN 進行改進,實現一個深度卷積 GAN。
  • GAN生成式對抗網絡及應用詳解
    從本節開始,我們將討論如何將生成對抗網絡(GAN)應用於深度學習的某個領域。
  • 精準生成Fake人臉!Amazon全新GAN模型給你全方位無死角美顏
    Amazon One團隊最近提出了一個可以對生成的圖像進行顯式屬性控制的GAN訓練框架,能夠通過設置確切的屬性來控制生成的圖像,如年齡、姿勢、表情等。這篇論文目前已經發布在arxiv上,並且在Google網盤中有相應的補充說明。目前大多數編輯GAN生成的圖像的方法都是通過利用隱空間解構屬性來實現部分控制,這些屬性是在標準GAN訓練後隱式獲得的。
  • 18種熱門GAN的PyTorch開原始碼 | 附論文地址
    TA匯總了18種熱門GAN的PyTorch實現,還列出了每一種GAN的論文地址,可謂良心資源。在這類GAN變體中,生成器生成的每張圖像,都帶有一個類別標籤,鑑別器也會同時針對來源和類別標籤給出兩個概率分布。論文中描述的模型,可以生成符合1000個ImageNet類別的128×128圖像。