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

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

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

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

2726閲覧

Google ColaboratoryでStyleGANを実行したい

KentaNakamoto

総合スコア23

Google Colaboratory

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2020/10/01 22:04

編集2020/10/03 02:51

前提・実現したいこと

Google Colaboratoryにおいて、StyleGANを利用しようとしています。

StyleGANの学習済みモデルでサクッと遊んでみるを参考にしながらやってみたのですが、importの部分で'tensorflow' has no attribute 'Dimension'というエラーがでてしまいます(このエラーについてググってみましたが、どうすれば解決するのかよくわかりませんでした)。
ちなみに、Ubuntuのバージョンは、18.04.5で、Pythonのバージョンは3.6.9です。
TensorFlowのバージョンは、2.3.0でして、1.14.0に変更もしてやってみましたが、こちらもNo module named 'dnnlib'というエラーが出てしまっています(こちらも、どのように解決すればいいのかわかりませんでした)。

コードが悪いのかと思いましてGoogle ColaboratoryでStyleGANを使ってみた。も参考にしてみましたが、同じエラーがでました(ライブラリのimportがうまくいっていないので、そりゃ同じエラーが出ますよね)

Python初心者でして、何がいけないのかよくわかっておりません。
申し訳ありませんが、よろしくお願いいたします。

コード

Python

1import os 2import pickle 3import numpy as np 4import PIL.Image 5import dnnlib 6import dnnlib.tflib as tflib 7import config 8 9def main(): 10 # Initialize TensorFlow. 11 tflib.init_tf() 12 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. 18 # _D = Instantaneous snapshot of the discriminator. Mainly useful for resuming a previous training run. 19 # Gs = Long-term average of the generator. Yields higher-quality results than the instantaneous snapshot. 20 21 # Print network details. 22 Gs.print_layers() 23 24 # Pick latent vector. 25 rnd = np.random.RandomState(10) # seed = 10 26 latents0 = rnd.randn(1, Gs.input_shape[1]) 27 latents1 = rnd.randn(1, Gs.input_shape[1]) 28 latents2 = rnd.randn(1, Gs.input_shape[1]) 29 latents3 = rnd.randn(1, Gs.input_shape[1]) 30 latents4 = rnd.randn(1, Gs.input_shape[1]) 31 latents5 = rnd.randn(1, Gs.input_shape[1]) 32 latents6 = rnd.randn(1, Gs.input_shape[1]) 33 34 num_split = 39 # 2つのベクトルを39分割 35 for i in range(40): 36 latents = latents6+(latents0-latents6)*i/num_split 37 # Generate image. 38 fmt = dict(func=tflib.convert_images_to_uint8, nchw_to_nhwc=True) 39 images = Gs.run(latents, None, truncation_psi=0.7, randomize_noise=True, output_transform=fmt) 40 41 # Save image. 42 os.makedirs(config.result_dir, exist_ok=True) 43 png_filename = os.path.join(config.result_dir, 'photo'+'{0:04d}'.format(i)+'.png') 44 PIL.Image.fromarray(images[0], 'RGB').save(png_filename) 45 46if __name__ == "__main__": 47 main()

発生している問題・エラーメッセージ

Python

1AttributeError Traceback (most recent call last) 2<ipython-input-6-ece5f04dab83> in <module>() 3 4 import PIL.Image 4 5 import dnnlib 5----> 6 import dnnlib.tflib as tflib 6 7 import config 7 8 8 9/content/drive/My Drive/stylegan/dnnlib/tflib/__init__.py in <module>() 10 6 # Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. 11 7 12----> 8 from . import autosummary 13 9 from . import network 14 10 from . import optimizer 15 16/content/drive/My Drive/stylegan/dnnlib/tflib/autosummary.py in <module>() 17 29 from tensorboard.plugins.custom_scalar import layout_pb2 18 30 19---> 31 from . import tfutil 20 32 from .tfutil import TfExpression 21 33 from .tfutil import TfExpressionEx 22 23/content/drive/My Drive/stylegan/dnnlib/tflib/tfutil.py in <module>() 24 32 25 33 26---> 34 def shape_to_list(shape: Iterable[tf.Dimension]) -> List[Union[int, None]]: 27 35 """Convert a Tensorflow shape to a list of ints.""" 28 36 return [dim.value for dim in shape] 29 30AttributeError: module 'tensorflow' has no attribute 'Dimension'

また、1.14.0では、以下のようなエラーが出てきます

Python

1ModuleNotFoundError Traceback (most recent call last) 2<ipython-input-1-ece5f04dab83> in <module>() 3 3 import numpy as np 4 4 import PIL.Image 5----> 5 import dnnlib 6 6 import dnnlib.tflib as tflib 7 7 import config 8 9ModuleNotFoundError: No module named 'dnnlib'

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

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

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

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

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

aokikenichi

2020/10/02 03:59

まずは コードについて べた書きだとインデントなど分かりませんので 「コード挿入」 ‘‘‘ ‘‘‘ で括る どちらかで見やすいコードになりますので修正をお願い致します。 基本的には各ライブラリのVerを(参照元の環境と)揃えて必要なライブラリはインストールする ことが必要です
KentaNakamoto

2020/10/03 02:53

ご指摘ありがとうございます!!コードを書き直しましたので、もう一度見ていただければと思います。 参照元ではライブラリのバージョンが記されていないのですが、どのように確認すればよろしいですか?
aokikenichi

2020/10/03 10:12

Tensorflowのバージョンは厄介ですね https://software-data-mining.com/google-colaboratory%E5%8F%8A%E3%81%B3%E5%AD%A6%E7%BF%92%E6%B8%88%E3%81%BFstylegan%E3%81%AB%E3%82%88%E3%82%8B%E4%BA%BA%E7%89%A9%E7%94%BB%E5%83%8F%E7%94%9F%E6%88%90/ の記事が202006みたいなのでいかがでしょうか tensorflow1.15.0にしているようです 「参照元」とはどのページのことでしょうか。たくさんあってわかりません。記事にバージョンが書かれてなければそれ以上は無理かと思います。 大本のソースコードは https://github.com/NVlabs/stylegan かと思いますがこれであればtensorflow1.10.0ですね
KentaNakamoto

2020/10/11 01:27

Tensorflow1.15.0に変えたところ、No module named 'dnnlib'というエラーが出てしまったのですが、このエラーはランタイムを再起動した際にWorking directoryが戻ってしまったためでした。 再度、cd stylegan をやってやると、無事に動きました!
aokikenichi

2020/10/17 02:05

解決なさったとのこと良かったです。 質問を閉じてください。
guest

回答1

0

皆様、ありがとうございました

投稿2020/10/17 05:40

KentaNakamoto

総合スコア23

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問