Deep Daze - ノートPCで実行(GPUなし)

Big SleepDeep Dazeを使って、テキストから画像を生成する処理を試してみました。

ただGoogle Colaboratoryの制限のために、処理の途中でセッションが切られてしまい最後まで画像を生成することができませんでした。

Google Colaboratoryの有料版を使ってテストしたいところですが、とりあえずローカル実行でどこまでできるかを確認してみます。

ローカルPCのスペック

実行するノートパソコンのスペックは下記の通りです。

  • CPU
    Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz 1.99 GHz
  • GPU
    なし
  • メモリ
    16GB
  • Pythonバージョン
    3.8.3

Big SleepはGPUなしでは実行できなかったので、Deep Dazeの方でローカル実行してみます。

Deep Dazeのインストール

次のコマンドを実行し、Deep Dazeをインストールします。

[コンソール]

1
pip install deep-daze

[実行結果]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Collecting deep-daze
Downloading deep_daze-0.10.3-py3-none-any.whl (1.4 MB)
|████████████████████████████████| 1.4 MB 6.4 MB/s
Requirement already satisfied: fire in c:\util\anaconda3\lib\site-packages (from deep-daze) (0.4.0)
Collecting siren-pytorch>=0.0.8
Downloading siren_pytorch-0.1.5-py3-none-any.whl (3.9 kB)
Requirement already satisfied: regex in c:\util\anaconda3\lib\site-packages (from deep-daze) (2020.6.8)
Collecting torch-optimizer
Downloading torch_optimizer-0.1.0-py3-none-any.whl (72 kB)
|████████████████████████████████| 72 kB ...
Requirement already satisfied: torchvision>=0.8.2 in c:\util\anaconda3\lib\site-packages (from deep-daze) (0.9.1)
Requirement already satisfied: einops>=0.3 in c:\util\anaconda3\lib\site-packages (from deep-daze) (0.3.2)
Requirement already satisfied: imageio>=2.9.0 in c:\util\anaconda3\lib\site-packages (from deep-daze) (2.9.0)
Requirement already satisfied: torch>=1.7.1 in c:\util\anaconda3\lib\site-packages (from deep-daze) (1.8.1)
Requirement already satisfied: tqdm in c:\util\anaconda3\lib\site-packages (from deep-daze) (4.57.0)
Requirement already satisfied: ftfy in c:\util\anaconda3\lib\site-packages (from deep-daze) (6.0.3)
Requirement already satisfied: six in c:\util\anaconda3\lib\site-packages (from fire->deep-daze) (1.15.0)
Requirement already satisfied: termcolor in c:\util\anaconda3\lib\site-packages (from fire->deep-daze) (1.1.0)
Collecting pytorch-ranger>=0.1.1
Downloading pytorch_ranger-0.1.1-py3-none-any.whl (14 kB)
Requirement already satisfied: pillow>=4.1.1 in c:\util\anaconda3\lib\site-packages (from torchvision>=0.8.2->deep-daze) (7.2.0)
Requirement already satisfied: numpy in c:\util\anaconda3\lib\site-packages (from torchvision>=0.8.2->deep-daze) (1.18.5)
Requirement already satisfied: typing-extensions in c:\util\anaconda3\lib\site-packages (from torch>=1.7.1->deep-daze) (3.7.4.2)
Requirement already satisfied: wcwidth in c:\util\anaconda3\lib\site-packages (from ftfy->deep-daze) (0.2.5)
Installing collected packages: siren-pytorch, pytorch-ranger, torch-optimizer, deep-daze
Successfully installed deep-daze-0.10.3 pytorch-ranger-0.1.1 siren-pytorch-0.1.5 torch-optimizer-0.1.0

インストールは問題なく終了しました。

テキストから画像生成

テキストから画像を生成します。

指定するテキストは“shattered plates on the grass”(草の上に粉々になったプレート)としました。

[コンソール]

1
imagine "shattered plates on the grass"

15:00スタート
とりあえず18時間後に生成されている画像は下記の通りです。

(まだ処理が終了していません・・・😥😥😥)


それっぽい画像になっていると思います。

GPUなしだとかなり時間はかかってしまいますが、Google Colaboratoryのように途中でセッションを切られてしまうことはないので安心です。


ちなみに、途中で動画編集ソフトを立ち上げたらメモリ不足エラーになって進捗94%のところで終了してしまいました😥😥😥

[メモリー不足のログ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
image updated at "./shattered_plates_on_the_grass.000001.jpg"
image updated at "./shattered_plates_on_the_grass.000002.jpg"
image updated at "./shattered_plates_on_the_grass.000003.jpg"
image updated at "./shattered_plates_on_the_grass.000004.jpg"
image updated at "./shattered_plates_on_the_grass.000005.jpg"
image updated at "./shattered_plates_on_the_grass.000006.jpg"
image updated at "./shattered_plates_on_the_grass.000007.jpg"
image updated at "./shattered_plates_on_the_grass.000008.jpg"
image updated at "./shattered_plates_on_the_grass.000009.jpg"
loss: -46.64: 94%|█████████████████████████████████████████████████████████████████████████████▍ | 991/1050 [15:15:47<54:31, 55.45s/it]
epochs: 0%| | 0/20 [15:15:47<?, ?it/s]
Traceback (most recent call last):
File "c:\util\anaconda3\lib\runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\util\anaconda3\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Util\anaconda3\Scripts\imagine.exe\__main__.py", line 7, in <module>
File "c:\util\anaconda3\lib\site-packages\deep_daze\cli.py", line 151, in main
fire.Fire(train)
File "c:\util\anaconda3\lib\site-packages\fire\core.py", line 141, in Fire
component_trace = _Fire(component, args, parsed_flag_args, context, name)
File "c:\util\anaconda3\lib\site-packages\fire\core.py", line 466, in _Fire
component, remaining_args = _CallAndUpdateTrace(
File "c:\util\anaconda3\lib\site-packages\fire\core.py", line 681, in _CallAndUpdateTrace
component = fn(*varargs, **kwargs)
File "c:\util\anaconda3\lib\site-packages\deep_daze\cli.py", line 147, in train
imagine()
File "c:\util\anaconda3\lib\site-packages\torch\nn\modules\module.py", line 889, in _call_impl
result = self.forward(*input, **kwargs)
File "c:\util\anaconda3\lib\site-packages\deep_daze\deep_daze.py", line 584, in forward
_, loss = self.train_step(epoch, i)
File "c:\util\anaconda3\lib\site-packages\deep_daze\deep_daze.py", line 508, in train_step
self.scaler.scale(loss).backward()
File "c:\util\anaconda3\lib\site-packages\torch\tensor.py", line 245, in backward
torch.autograd.backward(self, gradient, retain_graph, create_graph, inputs=inputs)
File "c:\util\anaconda3\lib\site-packages\torch\autograd\__init__.py", line 145, in backward
Variable._execution_engine.run_backward(
RuntimeError: [enforce fail at ..\c10\core\CPUAllocator.cpp:75] data. DefaultCPUAllocator: not enough memory: you tried to allocate 268435456 bytes. Buy new RAM!

Buy new RAM!(新しいRAM買え)って・・・・そんなログ始めて見ました😭😭😭

Deep Daze - テキストから画像生成②

Deep Daze も、Big Sleepと同じようにテキストから画像を生成するモデルです。

画像生成の深層学習モデルとして CLIP + Deep SIRENを使用しています。


Deep Dazeで生成した画像サンプルは下記のサイトで確認できます。

Deep Daze - https://github.com/lucidrains/deep-daze

PyTorchのインストール

Deep Dazeは、PyTorch 1.7.1であれば高速な画像生成が可能です。

PyTorch 1.7.1をインストールするためには、CUDAの情報が必要です。

以下のコマンドでCUDAのバージョンを表示します。

[Google Colaboratory]

1
2
# CUDAのバージョンの確認
!nvcc --version

[実行結果]

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Mon_Oct_12_20:09:46_PDT_2020
Cuda compilation tools, release 11.1, V11.1.105
Build cuda_11.1.TC455_06.29190527_0>

CUDA11であることが分かりました。


以下のサイトから、「v1.7.1」⇒「Wheel」⇒「Linux and Windows」⇒「CUDA 11.0」のコマンドを確認し、実行します。

Previou PyTorch Versions | PyTorch - https://pytorch.org/get-started/previous-versions/

[Google Colaboratory]

1
2
# PyTorch1.7.1のインストール
!pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html

[実行結果]

・・・(途中略)・・・
Successfully installed torch-1.7.1+cu110 torchaudio-0.7.2 torchvision-0.8.2+cu110

最後に上記のようなログが表示されていればインストールは完了です。

Deep Dazeのインストール

次のコマンドを実行し、Deep Dazeをインストールします。

[Google Colaboratory]

1
2
# DeepDazeのインストール
!pip install deep-daze

[実行結果]

・・・(途中略)・・・
Successfully installed deep-daze-0.10.3 einops-0.3.2 fire-0.4.0 ftfy-6.0.3 imageio-2.9.0 pytorch-ranger-0.1.1 siren-pytorch-0.1.5 torch-optimizer-0.1.0

最後に上記のようなログが表示されていればインストールは完了です。

テキストから画像生成

テキストから画像を生成してみます。

今回はサンプル画像にある”life during the plague”(疫病の間の生活)を少し変更して“life during the war”(戦争の間の生活)というテキストを指定してみました。

[Google Colaboratory]

1
2
# テキストからの画像生成
!imagine "life during the war"

Google Colaboratoryの制限のため、途中でセッションが切られてしまい最後まで実行できませんでしたが、次のような画像が生成されていました。

life_during_the_war.000010.jpg


砂ぼこりか爆発のようなものがあるような気がしますが、もうちょっと認識しやすいものが生成されてほしいところです。

(有料プランにしないと最後まで実行させるのは難しいのかもしれません。)


Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×