質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

解決済

1回答

2418閲覧

Google Colaboratoryでstyleganを実行した際のModuleNotFoundError

xeno

総合スコア16

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

1グッド

0クリップ

投稿2021/03/05 14:16

styleganをGoogle Colaboratoryで動かしてみようと思っているのですが、エラーが発生していて解決できません。
ModuleNotFoundErrorなので、モジュールがインストールされていないのだろうとは分かるのですが、Google Colaboratoryでどのようにインストールするのかわかりません。

import os import pickle import numpy as np import PIL.Image import dnnlib import dnnlib.tflib as tflib import config from datetime import datetime def main(): # Initialize TensorFlow. tflib.init_tf() # ダウンロードしたpickelファイルを指定 with open("2019-02-26-stylegan-faces-network-02048-016041.pkl", "rb") as f: _, _, Gs = pickle.load(f) # Print network details. Gs.print_layers() # Pick latent vector. # 潜在変数を作成 rnd = np.random.RandomState(5) latents = rnd.randn(1, Gs.input_shape[1]) # Generate image. fmt = dict(func=tflib.convert_images_to_uint8, nchw_to_nhwc=True) images = Gs.run(latents, None, truncation_psi=0.7, randomize_noise=True, output_transform=fmt) # Save image. os.makedirs(config.result_dir, exist_ok=True) filename = datetime.now().strftime('%Y%m%d%H%M%S') + '.png' png_filename = os.path.join(config.result_dir, filename) PIL.Image.fromarray(images[0], 'RGB').save(png_filename) if __name__ == "__main__": main()

下記がエラーです。

--------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) <ipython-input-1-38001375fc9a> in <module>() 3 import numpy as np 4 import PIL.Image ----> 5 import dnnlib 6 import dnnlib.tflib as tflib 7 import config ModuleNotFoundError: No module named 'dnnlib' --------------------------------------------------------------------------- NOTE: If your import is failing due to a missing package, you can manually install dependencies using either !pip or !apt. To view examples of installing some common dependencies, click the "Open Examples" button below. ---------------------------------------------------------------------------
LOTOyamaguchi👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

jbpb0様がすでにコメント回答済かと思いましたが、その回答ではできない特殊なやつなので、あらためて回答します。

とりあえずimport文を全て通すまでを回答範囲とします。

(1) 最初にランタイムのタイプ変更でGPUを選んでおきます。

(2) Tensorflowのバージョンを1.xに設定します。styleganは2.xに対応していないからです。

Python

1%tensorflow_version 1.x

(3) styleganのソースをインストールします。dnnlibとかconfigとかはstylegan付属のライブラリモジュールであり、一般的にPyPIに登録されているものでありません。よって、!pipではインストールできません。

Python

1!git clone https://github.com/NVlabs/stylegan.git 2%cd stylegan

(4) ここまで準備するとimportは通るようになります。

なお、(3)以降は「Google ColaboratoryでStyleGANを使ってみた。」を参考にするとよいでしょう。importの後でつまづいた際にも参考になると思います。

投稿2021/03/05 22:41

編集2021/03/05 22:46
toast-uz

総合スコア3266

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2021/03/05 23:06

toast-uzさん なるほど これはそういうやつなのですね 質問者さん 私が「質問への追記・修正の依頼」に書いた参考Webページには、pipで普通にインストール可能なものを入れる方法が書かれてますので、そういう場合は参考にしてください
xeno

2021/03/08 04:59

https://qiita.com/Phoeboooo/items/12d21916de56d125f0be このサイトを参考に続きを行っているのですが別のエラーが発生してしまいました。 下記の解決方法もわかれば教えてください。 ーーーーーーーーーーーーーーーーーーーー該当部分のコードーーーーーーーーーーーーーーーーーーー import os import pickle import numpy as np import PIL.Image import dnnlib import dnnlib.tflib as tflib import config # Initialize TensorFlow. tflib.init_tf() # Load pre-trained network. url = 'https://drive.google.com/uc?id=1MEGjdvVpUsu1jB4zrXZN7Y4kBBOzizDQ' # karras2019stylegan-ffhq-1024x1024.pkl with dnnlib.util.open_url(url, cache_dir=config.cache_dir) as f: _G, _D, Gs = pickle.load(f) # _G = Instantaneous snapshot of the generator. Mainly useful for resuming a previous training run. # _D = Instantaneous snapshot of the discriminator. Mainly useful for resuming a previous training run. # Gs = Long-term average of the generator. Yields higher-quality results than the instantaneous snapshot. ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー ーーーーーーーーーーーーーーーーーエラー文ーーーーーーーーーーーーーーーーーーーーーーーーーー WARNING:tensorflow:From /content/stylegan/dnnlib/tflib/tfutil.py:34: The name tf.Dimension is deprecated. Please use tf.compat.v1.Dimension instead. WARNING:tensorflow:From /content/stylegan/dnnlib/tflib/tfutil.py:74: The name tf.variable_scope is deprecated. Please use tf.compat.v1.variable_scope instead. WARNING:tensorflow:From /content/stylegan/dnnlib/tflib/tfutil.py:128: The name tf.Session is deprecated. Please use tf.compat.v1.Session instead. WARNING:tensorflow:From /content/stylegan/dnnlib/tflib/tfutil.py:97: The name tf.get_default_session is deprecated. Please use tf.compat.v1.get_default_session instead. WARNING:tensorflow:From /content/stylegan/dnnlib/tflib/tfutil.py:109: The name tf.set_random_seed is deprecated. Please use tf.compat.v1.set_random_seed instead. WARNING:tensorflow:From /content/stylegan/dnnlib/tflib/tfutil.py:132: The name tf.ConfigProto is deprecated. Please use tf.compat.v1.ConfigProto instead. Downloading https://drive.google.com/uc?id=1MEGjdvVpUsu1jB4zrXZN7Y4kBBOzizDQ ............ failed --------------------------------------------------------------------------- OSError Traceback (most recent call last) <ipython-input-3-b8d829c91729> in <module>() 13 # Load pre-trained network. 14 url = 'https://drive.google.com/uc?id=1MEGjdvVpUsu1jB4zrXZN7Y4kBBOzizDQ' # karras2019stylegan-ffhq-1024x1024.pkl ---> 15 with dnnlib.util.open_url(url, cache_dir=config.cache_dir) as f: 16 _G, _D, Gs = pickle.load(f) 17 # _G = Instantaneous snapshot of the generator. Mainly useful for resuming a previous training run. /content/stylegan/dnnlib/util.py in open_url(url, cache_dir, num_attempts, verbose) 376 raise IOError("Google Drive virus checker nag") 377 if "Google Drive - Quota exceeded" in content_str: --> 378 raise IOError("Google Drive quota exceeded") 379 380 match = re.search(r'filename="([^"]*)"', res.headers.get("Content-Disposition", "")) OSError: Google Drive quota exceeded ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
jbpb0

2021/03/08 08:50

元々の質問内容が解決したのだから、これは「解決済み」にして、新たに質問してください 一つ直す毎に新たに出たエラーを次々に(同じ質問の中で)追加質問するのは、あまり良くないと思いますよ
toast-uz

2021/03/08 09:32

jbpb0様からフォローいただきました通り、私も追加質問についての回答は差し控えたいと思います。新規質問をお願いします。なお、ご自分でエラーメッセージを良く読めば解決可能なことも多いと思います。質問する前に考えてみてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問