1. 程式人生 > >風格遷移專案實戰教程

風格遷移專案實戰教程

風格遷移專案實戰教程

標籤: 機器學習


先來看看對比圖:
對比圖

需要:

(配置環境應該是最麻煩的一步)

1.作業系統:ubuntu(沒有安裝的找百度安裝吧,這裡就不詳細說明了)

2.其他需要:TensorFlow 0.11.0、Python 2.7.9、Pillow 3.4.2、scipy 0.18.1 和 numpy 1.11.2.
(在終端裡面入以下程式碼)

conda create -n style-transfer python=3.5
activate style-transfer
pip install tensorflow
conda install scipy pillow

第一行建立一個新的環境,其中儲存了格式遷移程式碼所需的程式包。第二行 (source activate style-transfer) 進入該環境,你應該會在提示符視窗的開頭看到環境名稱。接下來的兩行負責安裝 TensorFlow、Scipy 和 Pillow(一種影象處理庫)。

3..安裝Anaconda (文末有介紹)
參照這篇部落格

2.風格遷移實現

  1. fast-style-transfer資源庫中下載 Zip 歸檔檔案並解壓。你可以通過點選右側的亮綠色按鈕進行下載。
  2. 下載檢查點檔案(後面有附連結),將其放在 fast-style-transfer
    資料夾中。檢查點檔案是已經調諧引數的模型。使用此檢查點檔案後我們不需要再訓練該模型,可以直接使用。
    將你要調整格式的圖片放到 fast-style-transfer

    資料夾。

  3. 進入你之前建立的 Conda 環境(如果不在裡面的話)。

  4. 在終端裡,轉到 fast-style-transfer 資料夾並輸入
    python evaluate.py --checkpoint ./rain-princess.ckpt --in-path <path_to_input_file> --out-path ./output_image.jpg

注意:你的檢查點檔案可能名稱為rain_princess.ckpt,注意是下劃線,而不是上面的連字元。

注意:替換為自己想訓練圖片的路徑,而./output_image.jpg的意思是把生成圖片放到當前資料夾中,而rain-princess.ckpt

替換為自己想訓練的檢查點檔案
注意:可能會提示No module named moviepy.video.io.VideoFIleclip,參照此處連結

備註

1.檢查點連結

1.Rain Princesss作者:Leonid Afremov
2.La Muse作者:Pablo Picasso
3.Udnie作者:Francis Picabia
4.Scream作者:Edvard Munch
5.The Great Wave off Kanagawa作者:Hokusai
6.The Shipwreck of the Minotaur作者:J.M.W. Turner

2.關於Anaconda

1.Anaconda

Anaconda 能讓你在資料科學的工作中輕鬆安裝經常使用的程式包。你還將使用它建立虛擬環境,以便更輕鬆地處理多個專案。Anaconda 簡化了工作流程,並且解決了多個包和 Python 版本之間遇到的大量問題。

Anaconda 實際上是一個軟體發行版,它附帶了 conda、Python 和 150 多個科學包及其依賴項。應用程式 conda 是包和環境管理器。Anaconda 的下載檔案比較大(約 500 MB),因為它附帶了 Python 中最常用的資料科學包。如果只需要某些包,或者需要節省頻寬或儲存空間,也可以使用 Miniconda 這個較小的發行版(僅包含 conda 和 Python)。但你仍可以使用 conda 來安裝任何可用的包,它只是自身沒有附帶這些包而已。

conda 只能通過命令列來使用。因此,如果你覺得它很難用,可以參考面向 Windows 的命令提示符教程,或者學習面向 OSX/Linux 使用者的 Linux 命令列基礎知識課程。

你可能已經安裝了 Python,並且想知道為何還需要 Anaconda。首先, Anaconda 附帶了一大批常用資料科學包,因此你可以立即開始處理資料。其次,使用 conda 來管理包和環境能減少將來在處理資料過程中使用到的各種庫與版本時遇到的問題。

管理包

包管理器用於在計算機上安裝庫和其他軟體。你可能已經熟悉 pip,它是 Python 庫的預設包管理器。conda 與 pip 相似,不同之處是可用的包以資料科學包為主,而 pip 適合一般用途。與此同時,conda 並非 像 pip 那樣專門適用於 Python,它也可以安裝非 Python 的包。它是支援 任何 軟體的包管理器。也就是說,雖然並非所有的 Python 庫都能通過 Anaconda 發行版和 conda 獲得,但同時它也支援非 Python 庫的獲得。在使用 conda 的同時,你仍可以使用 pip 來安裝包。

Conda 安裝了預編譯的包。例如,Anaconda 發行版附帶了使用 MKL 庫編譯的 Numpy、Scipy 和 Scikit-learn,從而加快了各種數學運算的速度。這些包由發行版的貢獻者維護,這意味著它們通常滯後於最新版本。但是,由於有人需要利用這些包來進行系統構建,因此它們往往更為穩定,而且也更便於你使用。

安裝了 Anaconda 之後,管理包是相當簡單的。要安裝包,請在終端中鍵入 conda install package_name。例如,要安裝 numpy,請鍵入 conda install numpy。

你還可以同時安裝多個包。類似 conda install numpy scipy pandas 的命令會同時安裝所有這些包。還可以通過新增版本號(例如 conda install numpy=1.10)來指定所需的包版本。

Conda 還會自動為你安裝依賴項。例如,scipy 依賴於 numpy,因為它使用並需要 numpy。如果你只安裝 scipy (conda install scipy),則 conda 還會安裝 numpy(如果尚未安裝的話)。

大多數命令都是很直觀的。要解除安裝包,請使用 conda remove package_name。要更新包,請使用 conda update package_name。如果想更新環境中的所有包(這樣做常常很有用),請使用 conda update –all。最後,要列出已安裝的包,請使用前面提過的 conda list。

如果不知道要找的包的確切名稱,可以嘗試使用 conda search search_term 進行搜尋。例如,我知道我想安裝 Beautiful Soup,但我不清楚確切的包名稱。因此,我嘗試執行 conda search beautifulsoup。**

環境

除了管理包之外,conda 還是虛擬環境管理器。它類似於另外兩個很流行的環境管理器,即 virtualenv 和 pyenv。

環境能讓你分隔用於不同專案的包。你常常要使用依賴於某個庫的不同版本的程式碼。例如,你的程式碼可能使用了 Numpy 中的新功能,或者使用了已刪除的舊功能。實際上,不可能同時安裝兩個 Numpy 版本。你要做的應該是,為每個 Numpy 版本建立一個環境,然後專案的對應環境中工作。

在應對 Python 2 和 Python 3 時,此問題也會常常發生。你可能會使用在 Python 3 中不能執行的舊程式碼,以及在 Python 2 中不能執行的新程式碼。同時安裝兩個版本可能會造成許多混亂和錯誤,而建立獨立的環境會好很多。

你也可以將環境中的包列表匯出為檔案,然後將該檔案與程式碼包括在一起。這能讓其他人輕鬆載入程式碼的所有依賴項。pip 提供了類似的功能,即 pip freeze > requirements.txt。

要建立環境,請在終端中使用 conda create -n env_name list of packages。在這裡,-n env_name 設定環境的名稱(-n 是指名稱),而 list of packages 是要安裝在環境中的包的列表。例如,要建立名為 my_env 的環境並在其中安裝 numpy,請鍵入 conda create -n my_env numpy。

建立環境時,可以指定要安裝在環境中的 Python 版本。這在你同時使用 Python 2.x 和 Python 3.x 中的程式碼時很有用。要建立具有特定 Python 版本的環境,請鍵入類似於 conda create -n py3 python=3 或 conda create -n py2 python=2 的命令。實際上,我在我的個人計算機上建立了這兩個環境。我將它們用作與任何特定專案均無關的通用環境,以處理普通的工作(可輕鬆使用每個 Python 版本)。這些命令將分別安裝 Python 3 和 Python 2 的最新版本。要安裝特定版本(例如 Python 3.3),請使用 conda create -n py python=3.3。

進入環境

建立了環境後,在 OSX/Linux 上使用 source activate my_env 進入環境。在 Windows 上,請使用 activate my_env。

進入環境後,你會在終端提示符中看到環境名稱,它類似於 (my_env) ~ $。環境中只安裝了幾個預設的包,以及你在建立它時安裝的包。你可以使用 conda list 檢查這一點。在環境中安裝包的命令與前面一樣:conda install package_name。不過,這次你安裝的特定包僅在你進入環境後才可用。要離開環境,請鍵入 source deactivate(在 OSX/Linux 上)。在 Windows 上,請使用 deactivate。

NOTE:如果有其他問題,歡迎留言交流