譯者:bdqforkgit
做者: Alexis Jacqgithub
簡介
本教程主要講解如何實現由Leon A. Gatys,Alexander S. Ecker和Matthias Bethge提出的 Neural-Style 算法。Neural-Style或者叫Neural-Transfer,能夠讓你使用一種新的風格將指定的圖片進行重構。這個算法使用三張圖片,一張輸入圖片,一張內容圖片和一張風格圖片,並將輸入的圖片變得與內容圖片類似,且擁有風格圖片的優美風格。算法
基本原理
原理很簡單:咱們定義兩個間距,一個用於內容D_C
,另外一個用於風格D_S
。D_C
測量兩張圖片內容的不一樣,而D_S
用來測量兩張圖片風格的不一樣。而後,咱們輸入第三張圖片,並改變這張圖片,使其與內容圖片的內容間距和風格圖片的風格間距最小化。如今,咱們能夠導入必要的包,開始圖像風格轉換。apache
導包並選擇設備
下面是一張實現圖像風格轉換所需包的清單。url
torch
,torch.nn
,numpy
(使用PyTorch進行風格轉換必不可少的包)torch.optim
(高效的梯度降低)PIL
,PIL.Image
,matplotlib.pyplot
(加載和展現圖片)torchvision.transforms
(將PIL圖片轉換成張量)torchvision.models
(訓練或加載預訓練模型)copy
(對模型進行深度拷貝;系統包)
from __future__ import print_function import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optim
閱讀全文/改進本文spa