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買え)って・・・・そんなログ始めて見ました😭😭😭