Google の DeepDream は一時期流行った画像を夢のように奇怪にする技術。Inceptionism: Going Deeper into Neural Networks で解説されている。
Deep Dream Generator のようなサイトもあるが,個人情報を登録しなければならない。自前で実行するには,TensorFlow を使ったミニマルなコードが DeepDream で公開されているので,これを実行するだけである。ローカルマシンで実行した結果(最初はオリジナル,最後は run_deep_dream_with_octaves()
を2巡させ,リサイズを省略したもの):
最新の TensorFlow 2.1 でも問題なく実行できた。GPU がなくても十分速い。InceptionV3
モデルをダウンロードするのに数分かかる(Google Colab では数秒)。
コードは Google Colab で実行できる形で書かれている。Jupyter Notebook でも実行できるはずであるが,それ以外のシェルでは次のように書き換えればよい。
import IPython.display as display
は削除してよい。
display.
を含む行はすべてコメントアウトする。
url = '...'
は適宜書き換える。ローカルファイルの場合は例えば url = 'file:///Users/okumura/hoge.jpg'
のようにすればよい。
def show(img):
のところは次のように直す:
import matplotlib.pyplot as plt
def show(img):
plt.imshow(img)
あるいは,表示された画像に連番を付けて保存するには,次のようにすればよいであろう:
imno = 0
def show(img):
global imno
plt.imshow(img)
plt.imsave(f"deepdream{imno}.jpg", np.array(img))
imno += 1
Last modified: